Ubuntu常見問題收集
阿新 • • 發佈:2019-06-23
[TOC]
命令比較長的時候命令不會換行
- 特徵: 在命令列輸入的命令比較長的時候(並不是特別長),命令換行的時候並不是另起一行.而是在當前行從頭開始,把當前行的命令覆蓋掉繼續輸入.
原因: PS1變數設定不對,可以通過echo $PS1檢視設定的結果.
# 不僅有PS1,還有PS2,PS3,PS4等待 # 主要是預設提示符用.而PS1配置中 # 這裡僅用PS1做演示, PS2...等知道就行了不做演示也不做深究. # 最初的時候,PS1配置為下面時,命令較長時則無法自動換行,會在同一行的開頭開始覆蓋,雖然還能執行但是很影響視覺和刪除命令的操作 # 而且呼叫vim 的時候vim的視窗也非常非常的小 root@96e6800ffbe4:~# echo $PS1 \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ aaaaaaaaaaaaafbe4:~# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa # PS1 為以下時,這時候命令比較長時也是會正常換行的,只是root@96e6800ffbe4:~#不會高亮而已 # PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' echo PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' >> ~/.bashrc source .bashrc root@96e6800ffbe4:~# ll total 32 drwx------ 1 root root 4096 Aug 25 21:15 ./ drwxr-xr-x 1 root root 4096 Aug 25 20:02 ../ -rw------- 1 root root 1253 Aug 25 20:32 .bash_history -rw-r--r-- 1 root root 3177 Aug 25 21:15 .bashrc -rw-r--r-- 1 root root 148 Aug 17 2015 .profile -rw------- 1 root root 8657 Aug 25 21:15 .viminfo root@96e6800ffbe4:~# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa # PS1 為以下時,這時候命令比較長時也是會正常換行的,只是root@96e6800ffbe4:~#變成了綠色高亮而已 # PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' echo PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' >> ~/.bashrc source ~/.bashrc root@96e6800ffbe4:~# ll total 32 drwx------ 1 root root 4096 Aug 25 21:18 ./ drwxr-xr-x 1 root root 4096 Aug 25 20:02 ../ -rw------- 1 root root 1253 Aug 25 20:32 .bash_history -rw-r--r-- 1 root root 3108 Aug 25 21:18 .bashrc -rw-r--r-- 1 root root 148 Aug 17 2015 .profile -rw------- 1 root root 8914 Aug 25 21:18 .viminfo root@96e6800ffbe4:~# vim .bashrc root@96e6800ffbe4:~# source .bashrc root@96e6800ffbe4:~# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa # 知乎網友Chang Liu提供的PS1配置, 這是我比較喜歡的配置了 export PS1="\[\033[38;5;87m\]\u\[$(tput bold)\]\[$(tput sgr0)\]\[\033[38;5;15m\]@\[$(tput sgr0)\]\[$(tput sgr0)\]\[\033[38;5;119m\]\h\[$(tput sgr0)\]\[\033[38;5;15m\] [\[$(tput sgr0)\]\[\033[38;5;198m\]\t\[$(tput sgr0)\]\[\033[38;5;15m\]] {\[$(tput sgr0)\]\[\033[38;5;81m\]\w\[$(tput sgr0)\]\[\033[38;5;15m\]}\n\[$(tput sgr0)\]\[\033[38;5;2m\]--\[$(tput sgr0)\]\[\033[38;5;118m\]>\[$(tput sgr0)\]\[\033[38;5;15m\]\\$ \[$(tput sgr0)\]" # 當設定為該配置時的效果 root@96e6800ffbe4 [21:30:41] {~} --># ll total 32 drwx------ 1 root root 4096 Aug 25 21:29 ./ drwxr-xr-x 1 root root 4096 Aug 25 20:02 ../ -rw------- 1 root root 1253 Aug 25 20:32 .bash_history -rw-r--r-- 1 root root 3109 Aug 25 21:25 .bashrc -rw-r--r-- 1 root root 148 Aug 17 2015 .profile -rw------- 1 root root 8607 Aug 25 21:28 .viminfo root@96e6800ffbe4 [21:31:33] {~} # 論壇http://forum.ubuntu.org.cn/viewtopic.php?f=180&t=466064使用者<恆河沙數1>提供的PS1配置, 也是我比較喜歡的一種配置 echo 'PS1="\[\033[01m\][\[\033[01;32m\]\t\[\033[00m\]\[\033[01m\]@\[\033[01;34m\]\w\[\033[00m\]\[\033[01m\]]\n\$\[\033[00m\] "' >> ~/.bashrc souce ~/.bashrc [10:35:29@~] $ ll total 36 drwx------ 1 root root 4096 Aug 27 10:33 ./ drwxr-xr-x 1 root root 4096 Aug 25 22:09 ../ -rw------- 1 root root 6814 Aug 27 10:32 .bash_history -rw-r--r-- 1 root root 3894 Aug 27 10:34 .bashrc -rw-r--r-- 1 root root 148 Aug 17 2015 .profile -rw------- 1 root root 8628 Aug 27 10:33 .viminfo [10:35:32@~] $ # 最初出問題的時候通過下面步驟,發現PS1 和~/.bashrc中的64行的配置一致, # 於是將64行的配置換成了別的PS1配置結局了這個問題... # 但是其實後來我單獨測試的時候, 將整個檔案中的所有PS1配置全部刪掉值保留case "$TERM" in xterm*|rxvt*)中的一段後發現也沒問題...MMP # 總而言是如果遇到命令不換行的時候, 換一下PS1 就對了......... aaat@96e6800ffbe4:~# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa root@96e6800ffbe4:~# cat .bashrc | grep -in 'PS1' 6:[ -z "$PS1" ] && return 53: PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' 56: PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' 64: PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" root@96e6800ffbe4:~# echo $PS1 \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ # 檢視系統~/.bashrc中的系統預設PS1 配置 # 這裡可以發現PS1會根據不同的配置選擇不同的配置方式..... 59 if [ "$color_prompt" = yes ]; then 60 PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' 61 else 62 PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' 63 fi 64 unset color_prompt force_color_prompt 65 66 # If this is an xterm set the title to user@host:dir 67 case "$TERM" in 68 xterm*|rxvt*) 69 PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" 70 ;; 71 *) 72 ;; 73 esac
無法使用sudo命令
xxx is not in the sudoers file.This incident will be reported.的解決方法
1.切換到root使用者下,怎麼切換就不用說了吧,不會的自己百度去. 2.新增sudo檔案的寫許可權,命令是: chmod u+w /etc/sudoers 3.編輯sudoers檔案 vim /etc/sudoers 找到這行 root ALL=(ALL) ALL,在他下面新增xxx ALL=(ALL) ALL (這裡的xxx是你的使用者名稱) ps:這裡說下你可以sudoers新增下面四行中任意一條 youuser ALL=(ALL) ALL %youuser ALL=(ALL) ALL youuser ALL=(ALL) NOPASSWD: ALL %youuser ALL=(ALL) NOPASSWD: ALL 第一行:允許使用者youuser執行sudo命令(需要輸入密碼). 第二行:允許使用者組youuser裡面的使用者執行sudo命令(需要輸入密碼). 第三行:允許使用者youuser執行sudo命令,並且在執行的時候不輸入密碼. 第四行:允許使用者組youuser裡面的使用者執行sudo命令,並且在執行的時候不輸入密碼. 4.撤銷sudoers檔案寫許可權,命令: chmod u-w /etc/sudoers 這樣普通使用者就可以使用sudo了.
nginx: error while loading shared libraries: XXXXX: cannot open shared object file: No such file or directory
比如我在安裝NGINX時新增lua擴充套件時, 啟動nginx報錯
nginx: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory
我使用這個命令進行解決
# /usr/local/luajit/lib是我編譯luajit時通過make install PREFIX=/usr/local/luajit指定的目錄 echo "/usr/local/luajit/lib" >> /etc/ld.so.conf # 然後執行如下命令: ldconfig
之所以報這個錯是因為由於編譯時沒有生成動態連結庫,只能手動連結
/etc/ld.so.conf詳解
/etc/ld.so.conf 此檔案記錄了編譯時使用的動態庫的路徑,也就是載入so庫的路徑。
預設情況下,編譯器只會使用/lib和/usr/lib這兩個目錄下的庫檔案,而通常通過原始碼包進行安裝時,如果不指定--prefix會將庫安裝在/usr/local目錄下,而又沒有在檔案/etc/ld.so.conf中新增/usr/local/lib這個目錄>。
這樣雖然安裝了原始碼包,但是使用時仍然找不到相關的.so庫,就會報錯。也就是說系統不知道安裝了原始碼包。
對於此種情況有2種解決辦法:
(1)在用原始碼安裝時,用--prefix指定安裝路徑為/usr/lib。這樣的話也就不用配置PKG_CONFIG_PATH
(2)直接將路徑/usr/local/lib路徑加入到檔案/etc/ld.so.conf檔案的中。在檔案/etc/ld.so.conf中末尾直接新增:/usr/local/lib(這個方法給力!)
然後使用ldconfig 更新動態連結庫的配置資訊
ldconfig
再來看看ldconfig這個程式,位於/sbin下,它的作用是將檔案/etc/ld.so.conf列出的路徑下的庫檔案快取到/etc/ld.so.cache以供使用,因此當安裝完一些庫檔案,或者修改/etc/ld.so.conf增加了庫的新的搜尋路徑,需要運>行一下ldconfig,使所有的庫檔案都被快取到檔案/etc/ld.so.cache中,如果沒做,可能會找不到剛安裝的庫
Ubuntu系列下fcitx系列輸入法突然失效
fcitx輸入法無效,既不能用快捷鍵切換輸入法.又不能選擇輸入法,備選輸入法中一片空白,重灌搜狗輸入法也不行.
檢視 /var/log/syslog系統日誌,發現一堆fcitx的ERROR資訊
其中包括很多,這裡只列舉了一個比價重要的
GDBus.Error: org.freedesktop.DBus.Error.ServiceUnknown: The name org.fcitx.Fcitx-0 was not provided by any .service files
研究了很長時間,現在終於解決了,刪除`/.config資料夾裡面的fcitx即可,
在終端裡面敲fcitx -d如果出現了DBus Service Already Exists的報錯,重新安裝sudo apt-get install --resintall fcitx-fontend-gtk2 fctix-