Linux經常使用命令


本文記錄一些在Linux系統下比較經常使用的命令。html

首先介紹下Linux下命令生效的順序:java

  1. 第一順位:執行絕對路徑或者相對路徑的命令
  2. 第二順位:執行別名
  3. 第三順位:執行Bash的內部命令
  4. 第四順位:執行按照$PATH環境變量設置定義的目錄順序的第一個命令

cp

該命令用於複製文件,copy之意,它還能夠把多個文件一次性地複製到一個目錄下,它的經常使用參數以下:node

  • -a:將文件的特性一塊兒複製
  • -p:連同文件的屬性一塊兒複製,而非使用默認方式,與-a類似,經常使用於備份
  • -i:若目標文件已經存在時,在覆蓋時會先詢問操做的進行
  • -r:遞歸持續複製,用於目錄的複製行爲
  • -u:目標文件與源文件有差別時纔會複製

例:mysql

  • cp source dest 複製文件
  • cp -r sourceFolder targetFolder 遞歸複製整個文件夾

mv

該命令用於移動文件、目錄或改名,move之意,它的經常使用參數以下:linux

  • -f:force強制的意思,若是目標文件已經存在,不會詢問而直接覆蓋
  • -i:若目標文件已經存在,就會詢問是否覆蓋
  • -u:若目標文件已經存在,且比目標文件新,纔會更新

注:該命令能夠把一個文件或多個文件一次移動一個文件夾中,可是最後一個目標文件必定要是「目錄」。git

例:github

  • mv file1 file2 file3 dir 把文件file一、file二、file3移動到目錄dir中
  • mv file1 file2 把文件file1重命名爲file2

rm

該命令用於刪除文件或目錄,remove之間,它的經常使用參數以下:正則表達式

  • -f :就是force的意思,忽略不存在的文件,不會出現警告消息
  • -i :互動模式,在刪除前會詢問用戶是否操做
  • -r :遞歸刪除,最經常使用於目錄刪除,它是一個很是危險的參數

例如:sql

  • rm -i file 刪除文件file,在刪除以前會詢問是否進行該操做
  • rm -fr dir 強制刪除目錄dir中的全部文件

tar

tar是linux上經常使用的打包、壓縮、解壓縮工具,它的參數不少,這裏列舉經常使用的壓縮與解壓縮參數。shell

參數:

  • -c創建壓縮檔案的參數
  • -x解壓縮壓縮檔案的參數
  • -z: 用gzip壓縮
  • -j: 用bzip2解壓文件
  • -Z: 用compress解壓文件
  • -v: 壓縮的過程當中顯示檔案
  • -f: 置頂文檔名,在-f後面當即接文件名,不能再加參數

打包與解包

  • 將整個/home/www/images 目錄下的文件所有打包
    shell tar -cvf images.tar images ← 僅打包,不壓縮
  • 解包到指定的目錄
    shell tar -xvf filename.tar -C 指定目錄

壓縮與解壓縮

gzip壓縮

  • 打包後,以gzip壓縮,在參數f後面的壓縮文件名是本身取的,習慣上用tar來作,若是加z參數,則以tar.gz 或tgz來表明gzip壓縮過的tar文件
    shell tar -zcvf images.tar.gz images
  • 將 images.tar.gz 解壓
    shell tar -zxvf images.tar.gz
  • 解壓縮到指定的目錄
    shell tar -zxvf images.tar.gz -C 指定的目錄

bzip2壓縮

  • 打包後,以bzip2壓縮
    shell tar -jcvf images.tar.bz2 images
  • 將 images.tar.bz2 解壓
    shell tar -jxvf images.tar.bz2
  • 解壓縮到指定的目錄
    shell tar -jxvf images.tar.bz2 -C 指定的目錄

不一樣壓縮方式的壓縮率比較

  • tar -zcvf test.tar.gz test
  • tar -jcvf test.tar.bz2 test
  • zip -ry test.zip test
    zip命令要加上兩個選項
    • -r:表示遞歸目錄,否則只壓出來一個空目錄。
    • -y:表示保持符號連接,而不用把符號連接指向的文件也壓進來。

結果比較:ll -h test.*

-rw-r--r-- 1 liwenhao staff 45M  8  6 20:12 test.tar.bz2
-rw-r--r-- 1 liwenhao staff 47M  8  6 20:12 test.tar.gz
-rw-r--r-- 1 liwenhao staff 50M  8  6 20:13 test.zip

能夠看到:
壓縮率:bzip2 > gzip > zip

tar打包絕對路徑

備份mysql時,想把以前的文件壓縮,可是用tar czvf /data/backup/test.tar.gz /data/a/b/directory

打開一看,裏面的內容是把整個絕對路徑都放進去了。

若是想實現相對路徑,這樣寫就能夠解決了

tar czvf /data/backup/test.tar.gz /data/a/b/directory
改爲
tar czvf /data/backup/test.tar.gz -C /data/a/b directory

C是臨時切換工做目錄,-P是絕對路徑,在這裏只用到-C參數就好了。

ps

該命令用於將某個時間點的進程運行狀況選取下來並輸出,process之意,它的經常使用參數以下:

  • -A :全部的進程均顯示出來
  • -a :顯示 同一終端下 的全部程序
  • -u :有效用戶的相關進程
  • -x :通常與a參數一塊兒使用,可列出較完整的信息
  • -l :較長,較詳細地將PID的信息列出
  • -e :等於"-A"
  • -f :顯示程序間的關係

其實咱們只要記住ps通常使用的命令參數搭配便可,它們並很少,以下:

  • ps aux 查看系統全部的進程數據
  • ps ax 查看不與terminal有關的全部進程
  • ps -lA 查看系統全部的進程數據
  • ps axjf 查看連同一部分進程樹狀態

查看某個進程:

  • ps –ef|grep tomcat 查看全部有關tomcat的進程
  • ps -ef|grep --color java 高亮要查詢的關鍵字

kill

該命令用於向某個工做(jobnumber)或者是某個PID(數字)傳送一個信號,它一般與ps和jobs命令一塊兒使用,它的基本語法以下:
kill -signal PID
signal的經常使用參數(最前面的數字爲信號的代號,使用時能夠用代號代替相應的信號)以下:

  • 1:SIGHUP,啓動被終止的進程
  • 2:SIGINT,至關於輸入ctrl+c,中斷一個程序的進行
  • 9:SIGKILL,強制中斷一個進程的進行
  • 15:SIGTERM,以正常的結束進程方式來終止進程
  • 17:SIGSTOP,至關於輸入ctrl+z,暫停一個進程的進行

例如:

  • 以正常的結束進程方式來終於第一個後臺工做,可用jobs命令查看後臺中的第一個工做進程
    kill -SIGTERM %1 或者 kill -15 %1
  • 從新改動進程ID爲PID的進程,PID可用ps命令經過管道命令加上grep命令進行篩選得到
    kill -SIGHUP PID 或者 kill -1 PID
  • 終止線程號位19979的進程
    kill -9 19979

killall

該命令用於向一個命令啓動的進程發送一個信號,它的通常語法以下:

killall [-iIe] [command name]
它的參數以下:

  • -i :交互式的意思,若須要刪除時,會詢問用戶
  • -e :表示後面接的command name要一致,但command name不能超過15個字符
  • -I :命令名稱忽略大小寫

例如:
killall -SIGHUP syslogd 從新啓動syslogd

file

該命令用於判斷接在file命令後的文件的基本數據,由於在Linux下文件的類型並非之後綴爲分的,因此這個命令對咱們來講就頗有用了,它的用法很是簡單,基本語法以下:
file filename
例如:
file ./test

ln

ln是linux中又一個很是重要命令,它的功能是爲某一個文件在另一個位置創建一個同步的連接.當咱們須要在不一樣的目錄,用到相同的文件時,咱們不須要在每個須要的目錄下都放一個必須相同的文件,咱們只要在某個固定的目錄,放上該文件,而後在 其它的目錄下用ln命令連接(link)它就能夠,沒必要重複的佔用磁盤空間。

命令格式:

ln [參數][源文件或目錄][目標文件或目錄]

命令功能:

Linux文件系統中,有所謂的連接(link),咱們能夠將其視爲檔案的別名,而連接又可分爲兩種 : 硬連接(hard link)與軟連接(symbolic link),硬連接的意思是一個檔案能夠有多個名稱,而軟連接的方式則是產生一個特殊的檔案,該檔案的內容是指向另外一個檔案的位置。硬連接是存在同一個文件系統中,而軟連接卻能夠跨越不一樣的文件系統。

  • 軟連接
    1. 軟連接,以路徑的形式存在。相似於Windows操做系統中的快捷方式
    2. 軟連接能夠 跨文件系統 ,硬連接不能夠
    3. 軟連接能夠對一個不存在的文件名進行連接
    4. 軟連接能夠對目錄進行連接
  • 硬連接:
    1. 硬連接,以文件副本的形式存在。但不佔用實際空間。
    2. 不容許給目錄建立硬連接
    3. 硬連接只有在同一個文件系統中才能建立

這裏有兩點要注意:

  1. ln命令會保持每一處連接文件的同步性,也就是說,不論你改動了哪一處,其它的文件都會發生相同的變化

  2. ln的連接又分軟連接和硬連接兩種,軟連接就是ln –s 源文件 目標文件,它只會在你選定的位置上生成一個文件的鏡像,不會佔用磁盤空間,硬連接 ln 源文件 目標文件,沒有參數-s, 它會在你選定的位置上生成一個和源文件大小相同的文件,不管是軟連接仍是硬連接,文件都保持同步變化。
    ln指令用在連接文件或目錄,如同時指定兩個以上的文件或目錄,且最後的目的地是一個已經存在的目錄,則會把前面指定的全部文件或目錄複製到該目錄中。若同時指定多個文件或目錄,且最後的目的地並不是是一個已存在的目錄,則會出現錯誤信息。

  3. 命令參數:
    必要參數: -b 刪除,覆蓋之前創建的連接 -d 容許超級用戶製做目錄的硬連接 -f 強制執行 -i 交互模式,文件存在則提示用戶是否覆蓋 -n 把符號連接視爲通常目錄 -s 軟連接(符號連接) -v 顯示詳細的處理過程 選擇參數: -S "-S<字尾備份字符串> "或 "--suffix=<字尾備份字符串>」 -V "-V<備份方式>"或"--version-control=<備份方式>" --help 顯示幫助信息 --version 顯示版本信息

    使用實例

實例1:給文件建立軟連接

命令:

ln -s log2013.log link2013

輸出:

[root@localhost test]# ll

-rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log

[root@localhost test]# ln -s log2013.log link2013

[root@localhost test]# ll

lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log

-rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log

說明:

爲log2013.log文件建立軟連接link2013,若是log2013.log丟失,link2013將失效

實例2:給文件建立硬連接

命令:
ln log2013.log ln2013
輸出:

[root@localhost test]# ll

lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log

-rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log

[root@localhost test]# ln log2013.log ln2013

[root@localhost test]# ll

lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log

-rw-r--r-- 2 root bin      61 11-13 06:03 ln2013

-rw-r--r-- 2 root bin      61 11-13 06:03 log2013.log

說明:

爲log2013.log建立硬連接ln2013,log2013.log與ln2013的各項屬性相同

刪除軟鏈接

目錄的軟鏈接要謹慎刪除,有可能把原文件目錄下的文件給刪除了。

  1. 先創建一個軟鏈接

    [root@rekfan.com test]# ls -il
    總計  0
    1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
    1491139 -rw-r–r– 2  root root 0 07-14 14:17 file2
    1491139 -rw-r–r– 2 root root 0 07-14 14:17  file2hand
    #創建file1和file1soft軟鏈接
    [root@rekfan.com test]# ln -s file1  file1soft
    [root@rekfan.com test]# ls -il
    總計 0
    1491138 -rw-r–r– 1 root  root 48 07-14 14:17 file1
    1491140 lrwxrwxrwx 1 root root 5 07-14 14:24  file1soft -> file1
    1491139 -rw-r–r– 2 root root 0 07-14 14:17  file2
    1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
  2. 刪除上面創建的軟鏈接
    shell [root@rekfan.com test]# ls -il 總計 0 1491138 -rw-r–r– 1 root root 0 07-14 14:17 file1 1491140 lrwxrwxrwx 1 root root 5 07-14 14:24 file1soft -> file1 1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2 1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand #刪除軟鏈接 [root@rekfan.com test]# rm -rf file1soft [root@rekfan.com test]# ls -il 總計 0 1491138 -rw-r–r– 1 root root 0 07-14 14:17 file1 1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2 1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand

刪除軟連接 確實是用rm 可是!!!
rm -fr xxxx/ 加了個/ 這個是刪除文件夾
rm -fr xxxx 沒有/ 這個是刪除軟連接

cat命令

該命令用於查看文本文件的內容,後接要查看的文件名,一般可用管道與more和less一塊兒使用,從而能夠一頁頁地查看數據。例如:

cat text | less 查看text文件中的內容
注:這條命令也可使用less text來代替

chgrp命令

該命令用於改變文件所屬用戶組,它的使用很是簡單,它的基本用法以下:

chgrp [選項] [組] [文件]

  • -R:處理指定目錄以及其子目錄下的全部文件
  • -v:運行時顯示詳細的處理信息
  • --dereference:做用於符號連接的指向,而不是符號連接自己
  • --no-dereference:做用於符號連接自己

例如:
chgrp -vR users ./dir 遞歸地把dir目錄下中的全部文件和子目錄下全部文件的用戶組修改成users

chown命令

該命令用於改變文件的全部者,與chgrp命令的使用方法相同,只是修改的文件屬性不一樣。

chmod命令

該命令用於改變文件的權限,通常的用法以下:

chmod [-R] xyz 文件或目錄
-R:進行遞歸的持續更改,即連同子目錄下的全部文件都會更改
同時,chmod還可使用u(user)、g(group)、o(other)、a(all)和+(加入)、-(刪除)、=(設置)跟rwx搭配來對文件的權限進行更改。

例如:
chmod 755 file 把file的文件權限改變爲-rxwr-xr-x,r表示讀、w表示寫、x表示可執行。
chmod g+w file 向file的文件權限中加入用戶組可寫權限。
chmod +x file 讓文件可執行。

權限代號:

  • r:讀權限,用數字4表示
  • w:寫權限,用數字2表示
  • x:執行權限,用數字1表示

關於搜索的命令

1 find

  1. find是最多見和最強大的查找命令,你能夠用它找到任何你想找的文件。(避免大範圍的搜索,會很是浪費系統資源,建議不在直接在"/"目錄下搜索)
  2. 格式:find [搜索範圍] [搜索條件]
  3. 例:

    • find /home -name 文件名
    • find /home -iname 文件名 (不區分大小寫)
    • find /home -user 文件名 (全部者文件)
    • find /home -nouser 文件名(沒有所屬者的文件,liunx中,每一個文件都有所屬者,若是沒有,那麼通常都是垃圾文件,但仍是有特例的,好比內核產生的文件,就沒有所屬者,通常在proc和sys目錄下;還有外來文件,也就是U盤拷入的文件也會忽略全部者。)
    • find . -type f -mmin -10 搜索當前目錄中,全部過去10分鐘中更新過的普通文件。若是不加-type f參數,則搜索普通文件+特殊文件+目錄。
    • find 目錄 -size 文件大小 (注意:文件大小用小寫k和大寫M。)

若是什麼參數也不加,find默認搜索當前目錄及其子目錄,而且不過濾任何結果(也就是返回全部文件),將它們全都顯示在屏幕上。

2 locate

locate命令實際上是"find -name"的另外一種寫法,可是要比後者快得多,緣由在於它不搜索具體目錄,而是搜索一個數據庫(/var/lib/locatedb),這個數據庫中含有本地全部文件信息。Linux系統自動建立這個數據庫,而且天天自動更新一次,因此使用locate命令查不到最新變更過的文件。爲了不這種狀況,能夠在使用locate以前,先使用updatedb命令,手動更新數據庫。 locate命令的使用實例:

  • locate /etc/sh,搜索etc目錄下全部以sh開頭的文件。
  • locate ~/m,搜索用戶主目錄下,全部以m開頭的文件。
  • locate -i ~/m,搜索用戶主目錄下,全部以m開頭的文件,而且忽略大小寫。

3 whereis

whereis命令只能用於程序名的搜索,並且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。若是省略參數,則返回全部信息。 whereis命令的使用實例: whereis grep

4 which

which命令的做用是,在PATH變量指定的路徑中,搜索某個系統命令的位置,而且返回第一個搜索結果。也就是說,使用which命令,就能夠看到某個系統命令是否存在,以及執行的究竟是哪個位置的命令。 which命令的使用實例: which grep

grep

搜索文件中的信息,通常爲字符串,與正則表達式結合使用 grep [選項] 字符串 文件名 (字符串使用 "" 包圍,結果爲行記錄) -i 忽略大小寫 -v 排除指定字符串

find與grep的區別

  • find:在 系統 中搜索符合條件的 文件名,使用 通配符(徹底)匹配
  • grep:在 文件 當中搜索符合條件的 字符串,使用 正則表達式 (包含)匹配

time

time 能夠統計命令執行的時間,包括程序的實際運行時間(real time),以及程序運行在用戶態的時間(user time)和內核態的時間(sys time)。
例如:time git pull 則是統計更新代碼花費多長時間

alias

alias命令用來設置指令的別名。咱們可使用該命令能夠將一些較長的命令進行簡化。使用alias時,用戶必須使用單引號''將原來的命令引發來,防止特殊字符致使錯誤。

alias命令的做用只侷限於該次登入的操做。若要每次登入都可以使用這些命令別名,則可將相應的alias命令存放到bash的初始化文件/etc/bashrc中。

alias 的基本使用方法爲:alias 新的命令='原命令 -選項/參數'
例如:alias l=‘ls -lsh'將從新定義ls命令,如今只需輸入l就能夠列目錄了。直接輸入 alias 命令會列出當前系統中全部已經定義的命令別名。

要刪除一個別名,可使用 unalias 命令,如 unalias l。

查看系統已經設置的別名:

alias egrep='egrep --color'
alias fgrep='fgrep --color'
alias grep='grep --color'
alias hpush='bash /Users/liwenhao/Desktop/github/hpush.sh'
alias ll='ls -l'
alias ls='ls -F --show-control-chars --color=auto'
alias vi='vim'

tail

tail 命令從指定點開始將文件寫到標準輸出。使用tail命令的-f選項能夠方便的查閱正在改變的日誌文件,tail -f filename會把filename裏最尾部的內容顯示在屏幕上,而且不但刷新,使你看到最新的文件內容.

  1. 命令格式;
    tail[必要參數][選擇參數][文件]
  2. 命令功能:用於顯示指定文件末尾內容,不指定文件時,做爲輸入信息進行處理。經常使用查看日誌文件。
  3. 命令參數:
    -f 循環讀取 -q 不顯示處理信息 -v 顯示詳細的處理信息 -c <數目> 顯示的字節數 -n <行數> 顯示行數 --pid=PID 與-f合用,表示在進程ID,PID死掉以後結束. -q, --quiet, --silent 從不輸出給出文件名的首部 -s, --sleep-interval=S 與-f合用,表示在每次反覆的間隔休眠S秒
  4. 舉例
    # 寫到1.log,且後臺運行 ping www.baidu.com > 1.log 2>&1 & # 循環查看尾部日誌 tail -f 1.log # 殺死 ping進程 killall ping

執行多個命令

  • 後一個命令依賴於前一個命令的輸出,能夠是用管道(|)
    ls | wc -l :當前目錄文件個數
  • 後一個命令必須等前一個命令運行成功後在運行,可使用雙與號(&&)
    aa && ls :只運行aa,ls不運行
  • 後一個命令必須等前一個命令運行完,不關心是否成功,使用單與號(&)
    aa & ls :aa和ls都運行,可是ls必須等aa運行完。
  • 並行執行多個命令,使用兩個豎號(||)
    aa || ls:aa和ls並行執行,互不影響。

執行shell腳本

當咱們寫完一個腳本的時候,它是不能夠被直接運行的。咱們能夠經過:

  1. 經過Bash調用執行腳本 :bash hello.sh
  2. 首先賦予執行權限:chmod 755 hello.sh,而後就能夠經過相對路徑 ./hello.sh 或者經過絕對路徑 /root/hello.sh來執行。

Shell特殊變量:$0, $#, $*, $@, $?, $$和命令行參數

變量名只能包含數字、字母和下劃線,由於某些包含其餘字符的變量有特殊含義,這樣的變量被稱爲特殊變量。

例如,$$ 表示當前Shell進程的ID,即pid,看下面的代碼:

$echo $$

運行結果

29949

特殊變量列表

變量 含義
$0 當前腳本的文件名
$n 傳遞給腳本或函數的參數。n 是一個數字,表示第幾個參數。
$# 傳遞給腳本或函數的參數個數。
$* 傳遞給腳本或函數的全部參數。
$@ 傳遞給腳本或函數的全部參數。被雙引號(" ")包含時,與 \(* 稍有不一樣,下面將會講到。 | | `\)?| 上個命令的退出狀態,或函數的返回值。 | |$$`

命令行參數

運行腳本時傳遞給腳本的參數稱爲命令行參數。命令行參數用 $n 表示,例如,$1 表示第一個參數,$2 表示第二個參數,依次類推。

請看下面的腳本:

#!/bin/bash
echo "File Name: $0"
echo "First Parameter : $1"
echo "First Parameter : $2"
echo "Quoted Values: $@"
echo "Quoted Values: $*"
echo "Total Number of Parameters : $#"

運行結果:

$./test.sh Zara Ali
File Name : ./test.sh
First Parameter : Zara
Second Parameter : Ali
Quoted Values: Zara Ali
Quoted Values: Zara Ali
Total Number of Parameters : 2

$*$@ 的區別

$*$@ 都表示傳遞給函數或腳本的全部參數,不被雙引號(" ")包含時,都以"$1" "$2""$n" 的形式輸出全部參數。

可是當它們被雙引號(" ")包含時,"$*" 會將全部的參數做爲一個總體,以"$1 $2$n"的形式輸出全部參數;"$@" 會將各個參數分開,以"$1" "$2""$n" 的形式輸出全部參數。

下面的例子能夠清楚的看到 $*$@的區別:

#!/bin/bash
echo "\$*=" $*
echo "\"\$*\"=" "$*"
echo "\$@=" $@
echo "\"\$@\"=" "$@"
echo "print each param from \$*"
for var in $*
do
    echo "$var"
done
echo "print each param from \$@"
for var in $@
do
    echo "$var"
done
echo "print each param from \"\$*\""
for var in "$*"
do
    echo "$var"
done
echo "print each param from \"\$@\""
for var in "$@"
do
    echo "$var"
done

執行 ./test.sh "a" "b" "c" "d",看到下面的結果:

$*=  a b c d
"$*"= a b c d
$@=  a b c d
"$@"= a b c d
print each param from $*
a
b
c
d
print each param from $@
a
b
c
d
print each param from "$*"
a b c d
print each param from "$@"
a
b
c
d

退出狀態

$? 能夠獲取上一個命令的退出狀態。所謂退出狀態,就是上一個命令執行後的返回結果。

退出狀態是一個數字,通常狀況下,大部分命令執行成功會返回 0,失敗返回 1。

不過,也有一些命令返回其餘值,表示不一樣類型的錯誤。

下面例子中,命令$./test.sh Zara Ali成功執行輸出:

File Name : ./test.sh
First Parameter : Zara
Second Parameter : Ali
Quoted Values: Zara Ali
Quoted Values: Zara Ali
Total Number of Parameters : 2
$echo $?
0
$

$? 也能夠表示函數的返回值

PATH環境變量

下面的第一種方式關機後會失效,至關於臨時環境變量,後面兩種都是寫進了系統配置,所以會永久生效。

  1. 直接用export命令 export PATH=$PATH:/usr/local/src/node-v0.10.24/node_modules/node-sass/bin
  2. 修改profile文件:
    • vi /etc/profile
    • 而後在文件裏面加入export PATH=$PATH:/usr/local/src/node-v0.10.24/node_modules/node-sass/bin
    • 執行命令 source /etc/profile 生效
  3. 修改.bashrc文件
    • vi /root/.bashrc
    • 在裏面加入 export PATH=$PATH:/usr/local/src/node-v0.10.24/node_modules/node-sass/bin
    • 執行命令source /root/.bashrc 生效

若是修改了/etc/profile,那麼編輯結束後執行source profile(source /etc/profile) 或 執行點命令 . ./profile,PATH的值纔會當即生效,否則就只有等下一次開機。

這個方法的原理就是再執行一次/etc/profile shell腳本,注意若是用sh /etc/profile是不行的,由於sh是在子shell進程中執行的,即便PATH改變了也不會反應到當前環境中,可是source是在當前 shell進程中執行的,因此咱們能看到PATH的改變。

有時咱們可能不當心將PATH環境變量設置錯誤致使命令失效,能夠參考下面兩種方式解決。

  1. 若是是經過命令行設置的,能夠經過重啓或者離開本次登陸(退出本次shell)
  2. 若是是由於修改配置文件致使沒法使用,能夠執行export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin命令暫時使用這些目錄下的命令,如 vi,ls,cd,重新修改配置文件。

命令行快捷鍵

  1. 光標移動
    • Ctrl + f – 向右移動一個字符,固然多數人用→
    • Ctrl + b – 向左移動一個字符, 多數人用←
    • ESC + f – 向右移動一個單詞,MAC下建議用ALT + →
    • ESC + b – 向左移動一個單詞,MAC下建議用ALT + ←
    • Ctrl + a – 跳到行首
    • Ctrl + e – 跳到行尾
  2. 刪除
    • Ctrl + d – 向右刪除一個字符
    • Ctrl + h – 向左刪除一個字符
    • Ctrl + u – 刪除當前位置字符至行首(輸入密碼錯誤的時候多用下這個)
    • Ctrl + k – 刪除當前位置字符至行尾
    • Ctrl + w – 刪除從光標到當前單詞開頭
  3. 命令切換
    • Ctrl + p – 上一個命令,也能夠用↑
    • Ctrl + n – 下一個命令,也能夠用↓
  4. 其餘快捷鍵
    • Ctrl + y – 插入最近刪除的單詞
    • Ctrl + c – 終止操做
    • Ctrl + d – 當前操做轉到後臺
    • Ctrl + l – 清屏 (有時候爲了好看)
    • ctrl + z - 把命令放入後臺,這個命令謹慎使用
    • ctrl + r - 歷史命令搜索
    • Alt + f - 光標向前(Forward)移動到下一個單詞
    • Alt + b - 光標往回(Backward)移動到前一個單詞
    • Ctrl + w - 刪除從光標位置前到當前所處單詞(Word)的開頭
    • Alt + d - 刪除從光標位置到當前所處單詞的末尾
    • Ctrl + y - 粘貼最後一次被刪除的單詞

參考文檔

  1. Linux的五個查找命令
  2. 初窺Linux 之 我最經常使用的20條命令
相關文章
相關標籤/搜索