Table of contents


Processes

查看Run Level

runlevel

關機

Shutdown -h now
init 0 

如果文字模式下無法正常關機,可以用init 0試試

背景執行 &
# ./myService.sh &

但是,這樣登出後,myService.sh的process還是會被kill掉,如果process不想在user登出後被kill,可用 nohup

#nohup ./myService.sh & 

文字模式下的多session模式

使用screen可以在一個登入下,變成多個session操作,有點像視窗模式中的分頁功能

ref:http://blog.roodo.com/albertarea/archives/3358957.html

執行過的指令歷史

History是執行過的指令的歷史,簡單的狀況下,可以用上/下鍵來找出之前執行過的指令,但有時,其他的方式會更適合

history

history會依序列出執行過的指令

# history
  1 cd
  2 ls
  3 ps

history -c可以清掉歷史

!num

使用! + 數字可以執行history相對的號碼的指令

# history
  1 cd
  2 ls
  3 ps
#!3  

!3會執行ps

!command

使用! + command可以執行history相對應的指令,比如說,之前執行過ps aux | grep test 可以使用!ps,這樣會再執行完整的ps aux | grep test

ctrl + r

ctrl + r可以用來快速搜尋hitory中的指令列表,當按下ctrl + r會出現(reverse-i-search),之後可以打要搜尋的指令

#
(reverse-i-search)

User Management

File Management

檔案列表

ls 

更新locate資訊

sudo updatedb

找檔

locate [filename]

cd -

在兩個目錄間切換

/user/home/dir1#cd /user/home/dir2
/user/home/dir2#cd -
/user/home/dir1#cd -
/user/home/dir2#

Packages

文本处理命令

cat

  • 功能說明: 用于從文件頭到文件尾方向滾屏顯示文本文件內容
  • 命令格式: cat [參數] [<文件> …]
  • 常用參數:
    • -n : 由 1 開始對所有輸出的行進行編號
    • -b : 和 -n 相似,只不過對于空行不編號
    • -s : 當遇到有連續兩行以上的空行時,使用一個空行代替
  • 使用舉例:
$ cat file
$ cat -n file

  1. 系統還提供了一個 tac 命令,用于從文件尾到文件頭顯示文件內容。
  2. 系統還提供了一個 rev 命令,與 tac 不同,它并不反轉行序,而是把每行的內容反轉。
  3. 可以使用cat命令連接多個文本文件,如:
$ cat file1 file2 > files

more

  • 功能說明: 從文件頭到文件尾分屏顯示文本文件內容
  • 命令格式: more [參數] [<文件> …]
  • 常用參數:
    • -d : 顯示提示信息“[Press space to continue, ‘q’ to quit.]”
    • -s : 當遇到有連續兩行以上的空行時,使用一個空行代替
    • +num : 從第 num 行開始顯示
  • 使用舉例:
$ more file
$ more +10 file

  1. 系統還提供了一個 less 命令,用于雙向顯示分屏顯示文本文件內容。
  2. less 的功能比 more 豐富的多,可以使用如下命令查看其內置功能
$ less --help

  • 功能說明: 顯示文本文件的前部的若干行
  • 命令格式: head [參數] [<文件> …]
  • 常用參數:
    • -n : 顯示前 n 行,不指定此參數顯示前 10 行
  • 使用舉例:
$ head file
$ head -5 file

tail

  • 功能說明: 顯示文本文件的后部的若干行
  • 命令格式: tail [參數] [<文件> …]
  • 常用參數:
    • -n : 顯示后 n 行,不指定此參數顯示后 10 行
    • +n : 從第 n 行顯示到文件尾
    • -F : 用于跟蹤顯示不斷增長的文件結尾內容(通常用于顯示日志文件)
  • 使用舉例:
$ tail file
$ tail -5 file
$ tail +5 file
$ tail -F /var/log/messages

cut

  • 功能說明: 縱向切割出文本指定的部分并寫到標準輸出
  • 命令格式: cut [參數] [<文件> …]
  • 常用參數:
    • -b<LIST> : 只列出<LIST>指定的字節
    • -c<LIST> : 只列出<LIST>指定的字符
    • -f<LIST> : 只列出<LIST>指定的字段;并打印所有不包含分界符的行,除非 -s 選項被指定
    • -s : 不打印沒有包含分界符的行
    • -d<DELIM> : DELIM是分界符,使用指定<DELIM>代替制表符作為區域分界
    • –complement : 補足選中的字節、字符或字段的占位
    • –output-delimiter=<STRING> : 使用指定<STRING>作為輸出分界符默認時采用輸入的分界符

LIST 的語法

選用 -b、-c 或 -f 中一個或若干個選項時,每個<LIST>都由一個范圍域或是由逗號分隔開的多個范圍域組成。被選中的輸入會被按照和讀入時相同的次序寫到屏幕,每個輸入只會被輸出一次。 每個范圍域可以是以下中的任何一種:

  • N : 第N個字節、字符或字段,從 1 開始計數
  • N- : 從第N個字節、字符或字段,直到行尾
  • N-M : 從第N個到第M個已包含的字符、字符或字段
  • -M : 從第一個到第M個字節、字符或字段

  • 使用舉例:
$ cut -b-10 file
$ cut -c5- file
$ cut -c5-10,15-20 file
$ cut -f1,3,5 file
$ cut -f2-4 file
$ cut -f2-4 -d' ' file
$ cut -f1,2-4,6 -d' ' -s file

paste

  • 功能說明: 縱向合并多個文本并寫到標準輸出
  • 命令格式: paste [參數] [<文件> …]
  • 常用參數:
    • -d<DELIM> : DELIM是分界符,使用指定<DELIM>代替制表符作為區域分界
    • -s : 不使用平行的行目輸出模式,而是每個文件占用一行
  • 使用舉例:
$ paste file1 file2
$ paste -s file1 file2
$ paste -d' ' file1 file2

sort

  • 功能說明: 以行為單位對文件進行排序
  • 命令格式: sort [參數] [<文件> …]
  • 常用參數:
    • -b : 忽略前導的空格
    • -d : 只考慮空格,字母,數字
    • -f : 忽略字母的大小寫
    • -i : 只考慮可打印字符
    • -M : 排序月份,(未知詞)<“JAN”< … <“DEC”
    • -n : 根據字符串的數值進行排序
    • -r : 逆向排序
    • -u : 對相同的行只輸出一行
    • +n : n 為數字,對指定的列進行排序,+0 表示第1列, 以空格或制表符作為列的間隔符
  • 使用舉例:
$ sort file
$ sort -bd file
$ sort -bn file
$ sort -r file
$ sort -u file
$ sort +5 file
$ sort +5 -rb file
$ sort file1 file2
$ sort -br file1 file2

  1. 本地環境變量會影響排序結果。
  2. 如果希望以字節的自然值獲得最傳統的排序結果,請設定 LC_ALL=C。

uniq

  • 功能說明: 刪除文本文件中相鄰的重復的行并寫到標準輸出
  • 命令格式: uniq [參數] [<輸入文件> [<輸出文件>]]
  • 常用參數:
    • -c : 在每行前加上表示相應行目出現次數的前綴編號
    • -d : 只顯示重復的行
    • -i : 略大小寫差異
    • -u : 只顯示出現一次的行
    • -s<N> : <N> 為數字,對各行前<N>個字符不作比較
    • -w<N> : <N> 為數字,對各行第<N>個字符以后的內容不作比較
  • 使用舉例:
$ uniq file
$ uniq -i file
$ uniq -cd file
$ uniq -u file

wc

  • 功能說明: 統計指定文本文件的行數、字數、字符數
  • 命令格式: wc [參數] [<文件> …]
  • 常用參數:
    • -c : 輸出字節數統計
    • -l : 輸出行數統計
    • -L : 輸出最長一行的長度
    • -w : 輸出單詞數統計
  • 使用舉例:
$ wc file
$ wc -l file
$ wc -w file
$ wc -c file
$ wc -L file

expand

  • 功能說明: 將文件中的制表符轉換為空格,寫到標準輸出
  • 命令格式: expand [參數] [<文件> …]
  • 常用參數:
    • -i : 不轉換非空格后的制表符
    • -t<N> : 設定每個制表符為指定<N>的寬度,而不是默認的 8
  • 使用舉例:
$ expand file
$ expand -t4 file

unexpand

  • 功能說明: 將文件中的空格轉換為制表符,寫到標準輸出
  • 命令格式: unexpand [參數] [<文件> …]
  • 常用參數:
    • -a : 轉換所有空格字符而不僅僅是字母首部的空格
    • –first-only : 只轉換首部的空格字符序列 (覆蓋 -a 選項)
    • -t<N> : 設定每個制表符為指定<N>的寬度,而不是默認的 8 (激活 -a 選項)
  • 使用舉例:
$ unexpand file
$ unexpand -t4 file

iconv

  • 功能說明: 將文件從一種編碼轉換成另一種編碼
  • 命令格式: iconv [參數] <輸入文件>
  • 常用參數:
    • -f <encoding> : 指定原始文本編碼
    • -t <encoding> : 指定要轉換的編碼
    • -l : 列出所有已知編碼字符集
    • -c : 忽略輸出中的無效字符
    • -o <output file> : 指定輸出文件,而不是在標準輸出上顯示
  • 使用舉例:
$ iconv -l
$ iconv -f ISO-8859-1 -t UTF-8 -o outputfile inputfile
$ iconv -f GB2312 -t UTF-8 -o outputfile inputfile
$ iconv -f GBK -t UTF-8 -o outputfile inputfile
$ iconv -f BIG5 -t UTF-8 -o outputfile inputfile
$ iconv -f UTF-8 -t GB2312 -o outputfile inputfile

dos2unix

  • 功能說明: 將DOS格式的文本文件轉換成UNIX格式的文本文件
  • 命令格式: dos2unix [參數] <文件> [<輸出文件>]
  • 常用參數:
    • -k : 不改變文件的時間戳
    • -n : 新文件模式,即不改變原文件將轉換結果保存到指定的輸出文件
  • 使用舉例:
$ dos2unix dosfile
$ dos2unix -n dosfile linuxfile
$ dos2unix -k *
$ dos2unix -k -n dosfile linuxfile

  1. 系統還提供了一個 unix2dos 命令,用于將UNIX格式的文本文件轉換成DOS格式的文本文件。使用方法與 dos2unix 命令一樣。