這個問題大概率是所用的編輯器的鍋,具體原理還沒搞清楚,但是隻要在Linux下用VIM重新打開保存一次就會好的。
Category: Linux
JB家的IDE在Linux下無法保存FTP/數據庫的密碼的解決方案
前言
事情的緣由是這樣的——某天我開開心心的打開computer想要碼一會磚,然後萬惡的Phpstorm一直在詢問我sftp的登錄用户名和密碼。即便我輸入的時候選中了記住密碼,在程序重啓之後這貨又會再次詢問。之後發現Datagrip也犯了一樣的毛病,一直詢問我數據庫登錄信息……
這裏必須要吐槽一下JB家IDE的腦殘設計——明知道是缺少依賴軟件包,為啥就不能直接在前端拋一個錯誤呢?搞得我還得一點一點的翻程序日誌,我太難了=_=…
錯誤原因
錯誤原因很簡單,就是前面説的:缺少依賴包。具體缺少的是一個叫做gnome-keyring的包,這個包是用來保存各種密碼的。
解決方案
安裝之。以下列出常見的三個系列發行版下的安裝方式,其他發行版的同學使用各自的包管理器直接安裝就行,這個包通常都是集成在官方源裏的。
Ubuntu/Debian
sudo apt install gnome-keyring
Fedora/CentOS
sudo yum install gnome-keyring
Arch/Manjaro
sudo pacman -S gnome-keyring
整理下我的VIM配置文件
以下是我個人使用的VIM配置文件內容,記錄在這裏,方便日後查閲。
"打開語法高亮 syntax on set t_Co=256 "打開文件類型檢測功能 filetype on "不同文件類型採用不同縮進 filetype indent on "允許使用插件 filetype plugin on filetype plugin indent on "關閉vi模式 set nocp "與windows共享剪貼板 set clipboard+=unnamed "取消VI兼容,VI鍵盤模式不易用 set nocompatible "顯示行號, 或set number set nu "歷史命令保存行數 set history=100 "當文件被外部改變時自動讀取 set autoread "取消自動備份及產生swp文件 set nobackup set nowb set noswapfile "允許使用鼠標點擊定位 set mouse=a "允許區域選擇 set selection=exclusive set selectmode=mouse,key "高亮光標所在行 set cursorline "取消光標閃爍 set novisualbell "總是顯示狀態行 set laststatus=2 "狀態欄顯示當前執行的命令 set showcmd "標尺功能,顯示當前光標所在行列號 set ruler "粘貼時保持格式 set paste "高亮顯示匹配的括號 set showmatch "在搜索的時候忽略大小寫 set ignorecase "高亮被搜索的句子 set hlsearch "在搜索時,輸入的詞句的逐字符高亮(類似firefox的搜索) set incsearch "繼承前一行的縮進方式,特別適用於多行註釋 set autoindent "為C程序提供自動縮進 set smartindent "使用C樣式的縮進 set cindent "製表符為4 set tabstop=4 set expandtab "%retab! "統一縮進為4 set softtabstop=4 set shiftwidth=4 "允許使用退格鍵,或set backspace=2 set backspace=eol,start,indent set whichwrap+=<,>,h,l "取消換行 set nowrap "啓動的時候不顯示那個援助索馬里兒童的提示 set shortmess=atI "在被分割的窗口間顯示空白,便於閲讀 set fillchars=vert:\ ,stl:\ ,stlnc:\ "光標移動到buffer的頂部和底部時保持3行距離, 或set so=3 set scrolloff=3 "設定默認解碼 set fenc=utf-8 set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936 "設定字體 set guifont=Courier_New:h11:cANSI set guifontwide=新宋體:h11:cGB2312 "設定編碼 set enc=utf-8 set fileencodings=ucs-bom,utf-8,chinese set langmenu=zh_CN.UTF-8 language message zh_CN.UTF-8 source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/menu.vim "自動補全 filetype plugin indent on set completeopt=longest,menu "自動補全命令時候使用菜單式匹配列表 set wildmenu autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete autocmd FileType python set omnifunc=pythoncomplete#Complete autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS autocmd FileType html set omnifunc=htmlcomplete#CompleteTags autocmd FileType css set omnifunc=csscomplete#CompleteCSS autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags autocmd FileType java set omnifunc=javacomplete#Complet
CentOS7安裝完後更改字符界面大小(調屏幕分辨率)
前言
使用虛擬機安裝完CentOS7之後,那個超級巨大的字符界面分辨率已經把VMware虛擬機的窗口撐得屏幕都裝不下了,嚴重影響我對系統的配置。
解決方法
在百度上看了很多方法,找到比較靠譜的一種——修改GRUB引導的配置文件。這樣,下次重啓的時候,分辨率就變小啦。
以下是我更改分辨率後的效果(比CentOS6的字符界面還是大了許多)
步驟
1、使用文本編輯器打開/etc/grub2.cfg文件,這文件就是GRUB的配置文件。
[root@localhost ~]# vim /etc/grub2.cfg
2、在配置文件中搜索關鍵字linux16 /vmlinuz
可以找到類似如下內容(其中vmlinuz-3.10.0-123.el7.x86_64為你當前所用的系統內核的版本號,若搜索到多個內核,則要確定你的系統當前所使用的是哪個內核):
linux16 /vmlinuz-3.10.0-123.el7.x86_64 root=UUID=7b8ab34a-2d48-41d0-a20f-63356da5d6f6 ro rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=auto vconsole.keymap=us rhgb quiet LANG=zh_CN.UTF-8
3、編輯配置文件
講光標定位到這一行末尾,加一個空格之後填上vga=32A
,保存並退出。
如圖所示
4、重啓系統
搞定。
BIND為任意長掩碼的網段做反向解析
前言
當初做BIND實驗的時候在網上搜到的資料全部是以24位掩碼來做反向解析實驗的,搞得我一直以為BIND反向解析時只能使用24位掩碼。然而,事實上BIND支持任意長度掩碼的網段的反向解析。
本文將以16位掩碼為例子,演示配置過程。
實驗目的
使BIND可以正確為192.168.0.0/16網段做反向解析,並正確解析出192.168.10.254這個IP地址對應的域“www.ibadboy.net”。
配置方法
1、創建16位掩碼的反向解析區域
2、編輯反向解析數據庫文件
注意,這裏的254.10是10.254的倒寫!!!這裏是重點!必須倒寫!
3、驗證結果
如下圖,已經按照實驗預期通過192.168.10.254解析出了www.ibadboy.net。
Linux下VMware虛擬機報Could not open /dev/vmmon: No such file or directory. Please make sure that the kernel module `vmmon’ is loaded.錯誤的解決方法
問題描述
Linux下的VMware虛擬機在啓動時報Could not open /dev/vmmon: No such file or directory.
Please make sure that the kernel module `vmmon’ is loaded.錯誤。
解決辦法
重新編譯模塊。
$sudo vmware-modconfig --console --install-all
再次運行即可。
Linux下VMware虛擬機啓動時報Kernel headers for version 4.x-xxxx were not found. If you installed them[…]的錯誤的解決方法
問題表現
在Linux下安裝完VMware虛擬機後啓動虛擬機報:Kernel headers for version 4.x-xxxx were not found. If you installed them[…],具體報錯如下圖所示。
解決方法
安裝系統內核對應版本的linux-headers
。
例如,我的系統的內核版本是4.14.19,操作系統是Archlinux,就執行如下命令來安裝。
$ sudo pacman -S linux-headers
之後再根據命令提示選擇與內核版本對應的linux-headers
。
Ubuntu和Fedora用户則使用各自的包管理工具安裝正確的linux-headers
版本
安裝後再次啓動VMware會看到如下提示。
點擊install
並按要求輸入管理員密碼即可。
Fcitx輸入法第二個候選詞顯示為…的解決方法
問題表現
Fcitx輸入法第二個候選詞顯示為…,因為在輸入狀態下給輸入法截屏不太方便,所以這裏就不放圖啦。
產生的原因
這是因為Fcitx啓用了“雲拼音”導致的,“雲拼音”本該是一個非常方便的一個功能,但Fcitx的“雲拼音”默認使用的是谷歌的服務,由於眾所周知的原因,所以在國內是使用不了的。
解決方法
打開Fcitx的配置窗口,選擇“附加組件”,找到並選中“雲拼音”
點擊“配置”,找到“Cloud Pinyin Source”(雲拼音源)選項,將其的值改為“Baidu”,默認是“Google”。
修改後點擊“確定”並關閉FCitx的配置窗口即可。
minicom報Device /dev/ttyS1 lock failed: Operation not permitted.的解決方法
問題表現
啓動minicom時報如下錯誤:
Device /dev/ttyS1 lock failed: Operation not permitted.
問題產生的原因
這是因為minicom程序沒有被正確關閉,導致串口鎖未被解開,解決辦法自然是終止仍在進行的minicom進程。
解決方法
使用ps
命令配合管道命令來查看minicom的進程號。
如上圖,進程ID是20209,使用kill
命令殺死之。
$ sudo kill -9 29209
解決Linux Mint下雙擊文本會刪除的問題
問題表現
在Linux Mint下雙擊選中一段文本後,會自動刪除文本。
解決方法
這個問題是iBus引起的,打開iBus的首選項,取消勾選“在應用程序窗口中啓用內嵌編輯模式”的複選框即可。
推薦一個桌面Linux發行版-Linux Mint
對於學習計算機的同學來講,裝一個Linux來作為日常使用的操作系統是再好不過的事了。但Linux下的發行版本眾多,如何選擇一個適合自己的發行版就成了一門學問。
這裏我個人推薦下Linux Mint,這個發行版基本做到了“開箱即用”,完全不需要像Fedora那樣折騰,又不會時不時出現Ubuntu下惱人的各種系統崩潰,其易用性僅次於deepin而又不似deepin那樣BUG無數。
同時,Linux Mint對筆記本等高分辨率的屏幕支持比較好,這也是我選擇這一發行版的重要原因。
Linux Mint除了集成了大量實用的工具外還自主開發了一些很好用的東西,例如:
一鍵清理軟件包卸載後的殘留配置。
第一次啓動系統時彈出來的“歡迎界面”。
以及算不上美觀,也沒有什麼帥炸了的特效,但足夠方便好用的Cinnamon桌面環境~
簡而言之,Linux Mint是我接觸Linux以來最滿意的一個發行版,我對她的評價是:真正的易用、實用。
2018年3月14日補充:
Linux Mint的軟件倉庫中的軟件包版本簡直是上古時代的。。。
Ubuntu安裝GCC7.2
$sudo add-apt-repository ppa:ubuntu-toolchain-r/test # 添加ppa源 $sudo apt-get update # 更新軟件列表 $sudo apt-get install gcc-7 # 安裝GCC7.2
成功安裝後使用`gcc-7`命令調用GCC7.2編譯器。直接使用`gcc`命令將調用系統原本的GCC編譯器。 如果想將默認編譯器換成GCC7.2則執行如下命令:
$sudo rm -f /usr/bin/gcc # 刪除原本的軟連接 $sudo ln /usr/bin/gcc-7 /usr/bin/gcc # 創建指向gcc-7的軟連接
如果不想保留舊版本的編譯器則執行如下命令:
$sudo apt-get remove gcc-5 && apt-get autoremove # 卸載gcc-5並卸載掉不再需要的依賴包 $sudo ln /usr/bin/gcc-7 /usr/bin/gcc # 因為卸載GCC時會自動刪除/usr/bin/gcc鏈接,所以這裏需要再次創建
解決Win10中Linux子系統的控制枱字體修改後重啓控制枱復原的問題
前言
聽説Win10內置了Linux子系統,這可把我高興壞了————再也不用有事沒事掛着個虛擬機了!
懷着激動的心情在我的電腦上配置好這項功能之後,卻發現Windows控制枱的那令人看着頭皮發麻的噁心字體真是刺的我眼睛疼,毫無Ubuntu原生桌面環境下Shell終端字體的美感。
失敗的嘗試
emmm…改一個字體吧,雖然我不喜歡折騰,但默認的新宋體實在是超出了我的忍耐極限。
but,改完字體後我重啓了下控制枱,為什麼又回到了令人生厭的新宋體?一臉懵逼的我反反覆覆改了三遍。
比較完美的解決方法
不得已只好求助於度娘,找到如下解決辦法:
安裝Microsoft YaHei Mono字體,該字體是微軟雅黑和consolas字體的集合(個人感覺很漂亮哦)。
安裝後的效果圖
下載及安裝Microsoft YaHei Mono字體
下載後解壓壓縮包,雙擊字體文件,點擊“安裝”即可。
補充
Microsoft YaHei Mono字體的英文字符寬度比consolas字體窄了一個像素,如果看着礙眼可以將字體大小從16改成17。
CentOS 7下配置網卡信息
1、編輯網卡配置文件
CentOS 7的網卡命名規則與CentOS 6中的不一樣,下面列出CentOS 7中的網卡命名規則,只要瞭解即可,不必深究。
- 規則1:如果Firmware或者BIOS提供的設備索引信息可用就用此命名。比如eno1。否則使用規則2
- 規則2:如果Firmware或Bios的PCI-E擴展插槽可用就用此命名。比如ens1,否則使用規則3
- 規則3:如果硬件接口的位置信息可用就用此命名。比如enp2s0
- 規則4:根據MAC地址命名,比如enx7d3e9f。默認不開啓。
- 規則5:上述均不可用時迴歸傳統命名方式
- 上面的所有命名規則需要依賴於一個安裝包:biosdevname
使用vim文本編輯器打開網卡配置文件,
[root@localhost home]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
CentOS 7中的網卡配置信息的寫法和CentOS 6中的也稍有不同,主要體現在:新加的各個選項後面都要加上一個“0”,不知為何~
以下為網卡完整配置信息,新增及修改內容已着重標記(寫配置文件的時候請不要把我加的註釋也寫上去=_=…)。
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static //IP獲取方式,由原來的dhcp修改為static(手動指定) DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=enp0s3 UUID=a7b862e4-5d61-468e-a6ab-31c7ee01d790 DEVICE=enp0s3 ONBOOT=yes //開機時是否啓用網卡,由原來的no改為yes -------------------------------------------------------------------------------------------- 以下為添加的配置內容 -------------------------------------------------------------------------------------------- IPADDR0=192.168.162.27 //配置IP地址,注意IPADDR後面有一個0 NETMASK0=255.255.255.0 //配置子網掩碼,注意NETMASK後面有一個0 GATEWAY0=192.168.162.254 //配置網關地址,注意GATEWAY後面有一個0 DNS1=114.114.114.114 //配置首選DNS DNS2=8.8.8.8 //配置備用DNS
2、重啓網絡
[root@localhost ~]# service network restart Restarting network (via systemctl): [ OK ]
3、驗證配置
查看網絡配置信息參考此篇文章。
https://www.ibadboy.net/archives/2099.html
驗證網路是否連通可以嘗試ping一下www.baidu.com。
[root@localhost home]# ping -c 4 www.baidu.com PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data. 64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=1 ttl=54 time=19.3 ms 64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=2 ttl=54 time=19.4 ms 64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=3 ttl=54 time=19.5 ms 64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=4 ttl=54 time=19.6 ms --- www.a.shifen.com ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3033ms rtt min/avg/max/mdev = 19.396/19.508/19.674/0.107 ms
在局域網下則可以嘗試ping一下網關或同網段下的其他計算機,再或者ping自己的本地IP也行。。。
CentOS 7下查看網絡配置信息
導語:
本文中介紹在CentOS 7下查看IP、MAC、DNS、網關等常用網絡配置信息的方法
查看網卡IP及MAC:
CentOS7中默認不提供ifconfig命令,那麼該如何查看網卡信息呢?
可以使用ip addr命令,如下所示:
[root@localhost ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:8d:54:2e brd ff:ff:ff:ff:ff:ff inet 192.168.162.27/24 brd 192.168.162.255 scope global enp0s3 valid_lft forever preferred_lft forever inet6 fe80::26dd:b64f:6c1c:508f/64 scope link valid_lft forever preferred_lft forever
其中,lo為本地迴環網卡,enp0s3為第一塊網卡的名稱。
每塊網卡區域中,link後面跟的是網卡的MAC地址,inet後面跟的是該網卡的IP v4地址,inet6後面跟的是IP v6地址。
查看DNS:
[root@localhost ~]# cat /etc/resolv.conf # Generated by NetworkManager nameserver 114.114.114.114 nameserver 8.8.8.8
其中,每個nameserver關鍵字後面接的都是DNS地址,排在上方的優先級高。
查看網關:
[root@localhost ~]# ip route default via 192.168.162.254 dev enp0s3 proto static metric 100 192.168.162.0/24 dev enp0s3 proto kernel scope link src 192.168.162.41 metric 100
default via後面接的就是網關地址,其後的dev後面接的是該網關所屬的網卡的名稱。