Shell 命令筆記

交流QQ羣:26651479


各個 shell 可互相切換
ksh:$    sh:$    csh:guangzhou%     bash:bash-3.00$


一、注意事項
    命令和參數之間必需用空格隔開,參數和參數之間也必需用空格隔開。
    一行不能超過256個字符;大小寫有區分。


二、特殊字符含義
    文件名以“.”開頭的都是隱藏文件/目錄,只需在文件/目錄名前加“.”就可隱藏它。
    ~        表示主目錄。
    .        當前目錄(一個點)。
    ..       上一級目錄(兩個點)。
    ;        多個命令一起用。
    >  >>    輸出重定向  。將一個命令的輸出內容寫入到一個文件裏面。如果該文件存在, 就將該文件的內容覆蓋;
             如果不存在就先創建該文件, 然後再寫入內容。
             輸出重定向,意思就是說,將原來屏幕輸出變爲文件輸出,即將內容輸到文件中。
    <  <<    輸入重定向。  本來命令是通過鍵盤得到輸入的,但是用小於號,就能夠使命令從文件中得到輸入。
    \        表示未寫完,回車換行再繼續。
    *        匹配零個或者多個字符。
    ?        匹配一個字符。
    []       匹配中括號裏的內容[a-z][A-Z][0-9]。
    !       事件。
    !!       執行最近一次的命令
    $        取環境變量的值。
    |        管道。把前一命令的輸出作爲後一命令的輸入,把幾個命令連接起來。
             |經常跟tee連用,tee 把內容保存到文檔並顯示出來。
    #        單行註釋


三、通用後接命令符
    -a    所有(all)。
    -e    所有(every),比a更詳細。
    -f    取消保護。
    -i    添加提示。
    -p    強制執行。
    -r    目錄管理。

 分屏顯示的中途操作
    空格<space>       繼續打開下一屏;
    回車<return>      繼續打開下一行;
    b                另外開上一屏;
    f                另外開下一屏;
    h                幫助;
    q或Ctrl+C        退出;
    /字符串           從上往下查找匹配的字符串;
    ?字符串          從下往上查找匹配的字符串;
    n                繼續查找。

四、退出命令
exit    退出; DOS內部命令 用於退出當前的命令處理器(COMMAND.COM)     恢復前一個命令處理器。
Ctrl+d  跟exit一樣效果,表中止本次操作。
logout  當csh時可用來退出,其他shell不可用。

clear   清屏,清除(之前的內容並未刪除,只是沒看到,拉回上面可以看回)。相當與DOS下的cls
    Ctrl + Shift + G 清屏(屏幕內容完全清除,拉不回的)


五、目錄管理命令
pwd   顯示當前所在目錄,查看當前所在目錄的完整路徑(絕對路徑)。
cd    進入某目錄,顯示或改變當前目錄。
      cd回車/cd ~     都是回到自己的主目錄。
      cd .            當前目錄(空格再加一個點)。
      cd ..           回到上一級目錄(空格再加兩個點)。    cd ../..  向上兩級。
      cd /user/s0807  從絕對路徑去到某目錄。
      cd ~/s0807      直接進入主目錄下的某目錄(“cd ~”相當於主目錄的路徑的簡寫)。
ls    查看目錄或者文件的屬性,列舉出任一目錄下面的文件
      用法  ls [-aAbcCdeEfFghHilLmnopqrRstux1@] [file...]
      ls /etc/   顯示某目錄下的所有文件和目錄,如etc目錄下的。
      ls -l      (list)列表顯示文件(默認按文件名排序),
                 顯示文件的權限、硬鏈接數(即包含文件數,普通文件是1,目錄1+)、用戶、組名、大小、修改日期、文件名。
      ls -t      (time)按修改時間排序,顯示目錄和文件。
      ls -lt     是“-l”和“-t”的組合,按時間順序顯示列表。
      ls -F      顯示文件類型,目錄“/ ”結尾;可執行文件“*”結尾;文本文件(none),沒有結尾。
      ls -R      遞歸顯示目錄結構。即該目錄下的文件和各個子目錄下的文件都一一顯示。
      ls -a      顯示所有文件,包括隱藏文件。

    文件權限
        r    讀權限。對普通文件來說,是讀取該文件的權限;對目錄來說,是獲得該目錄下的文件信息。
        w    寫權限。對文件,是修改;對目錄,是增刪文件與子目錄。
            (注 刪除沒有寫權限的文件可以用 rm -f ,這是爲了操作方便,是人性化的設計)。
        x    執行權限;對目錄,是進入該目錄
        -    表示沒有權限
       形式 - rw- r-- r--
    其中 第一個是文件類型(-表普通文件,d表目錄(directory),l表軟鏈接文件(link))
    第2~4個是屬主,生成文件時登錄的人,權限最高,用u表示(user)
    第5~7個是屬組,系統管理員分配的同組的一個或幾個人,用g表示(group)
    第8~10個是其他人,除屬組外的人,用o表示(other)
    所有人,包括屬主、屬組及其他人,用a表示(all)

chmod  更改權限;
    用法    chmod [-fR] <絕對模式> 文件 ...
            chmod [-fR] <符號模式列表> 文件 ...
      其中  <符號模式列表> 是一個用逗號分隔的表     [ugoa]{+|-|=}[rwxXlstugo]
    chmod u+rw  給用戶加權限。同理,u-rw也可以減權限。
    chmod u=rw  給用戶賦權限。與加權限不一樣,賦權限有覆蓋的效果。
    主要形式有如下幾種
    chmod u+rw       chmod u=rw
    chmod u+r, u+w   chmod u+rw,g+w, o+r
 chmod u+x filenmame   # 只想給自己運行,別人只能讀
    chmod 777 (用數字的方式設置權限是最常用的)
    數字表示權限時,各數位分別表示屬主(user)、屬組(group)及其他人(other);
      其中,1是執行權(Execute),2是寫權限(Write),4是讀權限(Read),
      具體權限相當於三種權限的數相加,如7=1+2+4,即擁有讀寫和執行權。
    另外,臨時文件/目錄的權限爲rwt,可寫卻不可刪,關機後自動刪除;建臨時目錄:chmod 777 目錄名,再chmod +t 目錄名。

df 查看文件系統,查看數據區
    用法 df [-F FSType] [-abeghklntVvZ] [-o FSType 特定選項] [目錄 | 塊設備 | 資源]
    df -k   以kbytes顯示文件大小的查看文件系統方式


六、文本操作
more  分屏顯示文件的內容。適合於看大文件。
      用法   more [-cdflrsuw] [-行] [+行號] [+/模式] [文件名 ...]。
      顯示7個信息:用戶名 密碼 用戶id(uid) 組id(gid) 描述信息(一般爲空) 用戶主目錄  login shell(登錄shell)
cat   顯示文件內容,不分屏(一般用在小文件,大文件顯示不下);合併文件,僅在屏幕上合併,並不改變原文件。
      用法 cat [ -usvtebn ] [-|文件] ...
      如:cat>1.c    //就可以把代碼粘帖到1.c文件裏,按ctrl+d 保存代碼。
   cat 1.c 或more 1.c     //都可以查看裏面的內容。
      一般用作將很多小文件連成一個大文件: cat file* >newFile
head  輸出文件的開頭部分的內容
      如: head -3 a.txt # 顯示最上面的3行。缺省是10行
      參數:
       -c, --bytes=[-]K  顯示每個文件的前多少字節; 以“-”開頭,則顯示到後多少字節; 數字後面可帶k等參數表示大小,則顯示多少個(一箇中文算2~3個字節)。
                         如: head -c 10 test.txt # 顯示文件的前10字節
                         head -c -1k test.txt # 顯示到文件的後1K的內容
       -n, --lines=[-]K  顯示每個文件的多少行;以“-”開頭,則顯示到後多少行。
       -q, --quiet, --silent  不顯示文件名(默認)。
       -v, --verbose     總是顯示文件名。即在顯示文件內容前多顯示一行內容: ==> 文件名 <==
       --help 顯示幫助信息
       --version   顯示版本信息
tail  實時監控文件,一般用在日誌文件,可以只看其中的幾行。
      用法 tail [+/-[n][lbc][f]] [文件]
          tail [+/-[n][l][r|f]] [文件]
      如: tail -3 a.txt # 顯示最下面的3行,一般用作查看日誌信息

 

七、文件/目錄的增刪
echo  顯示一行內容。
touch 如果文件/目錄不存在,則創建新文件/目錄;如果文件存在,那麼就是更新該文件的最後訪問時間,
      用法 touch [-acm] [-r ref_file] 文件...
           touch [-acm] [MMDDhhmm[yy]] 文件...
           touch [-acm] [-t [[CC]YY]MMDDhhmm[.SS]] file...
mkdir 創建目錄(必須有創建目錄的權限)
      用法 mkdir [-m 模式] [-p] dirname ...
      mkdir dir1/dir2          在dir1下建dir2
      mkdir dir13 dir4 dir5    連建多個
      mkdir ~/games            用戶主目錄下建(默認在當前目錄下創建)
      mkdir -p dir6/dir7/dir8  強制創建dir8;若沒有前面的目錄,會自動創建dir6和dir7。
                               不用-p時,若沒有dir6/dir7,則創建失敗。

cp   複製文件/目錄
     cp  源文件   目標文件     複製文件;若已有文件則覆蓋
     cp -r 源目錄 目標目錄     複製目錄;若已有目錄則把源目錄複製到目標目錄下,
                               沒有目標目錄時,相當於完全複製源目錄,只是文件名不同。
 如: cp beans apple dir2       把beans、apple文件複製到dir2目錄下
     cp 1.c netseek/2.c        將1.c拷到netseek目錄下並命名爲2.c
     cp -i beans apple         增加是否覆蓋的提示

mv 移動或重命名文件/目錄
    用法 mv [-f] [-i] f1 f2
        mv [-f] [-i] f1 ... fn d1
        mv [-f] [-i] d1 d2
    mv 源文件名 目標文件名   若目標文件名還沒有,則是源文件重命名爲目標文件;若目標文件已存在,則源文件覆蓋目標文件。
    mv 源文件名 目標目錄     移動文件
    mv 源目錄 目標目錄       若目標目錄不存在,則源目錄重命名;若目標目錄已存在,則源目錄移動到目標目錄下。
 如: mv qib.tgz ../qib.tgz   移到上一級目錄

rm  刪除文件/目錄
    用法 rm [-fiRr] 文件 ...
    rm 文件名     刪除文件。
    rm -r 目錄名  刪除目錄。
    rm -f 文件    只要是該文件或者目錄的擁有者,無論是否有權限刪除,都可以用這個命令參數強行刪除。
    rm -rf *     刪除所有文件及目錄
rmdir 刪除空目錄。只可以刪除空目錄。

ln 創建硬鏈接或軟鏈接,硬鏈接=同一文件的多個名字;軟鏈接=快捷方式
    用法   ln [-f] [-n] [-s] f1 [f2]
          ln [-f] [-n] [-s] f1 ... fn d1
          ln [-f] [-n] -s d1 d2
    ln file1 file1.ln      創建硬鏈接。感覺是同一文件,刪除一個,對另一個沒有影響;須兩個都刪除纔算刪除。
    ln -s file1 file1.sln  創建軟鏈接。可跨系統操作,衝破操作權限;也是快捷方式。


八、時間顯示
date 顯示時間,精確到秒
    用法   date [-u] mmddHHMM[[cc]yy][.SS]
    date [-u] [+format]
    date -a [-]sss[.fff]
cal 顯示日曆
    cal 9 2008  顯示2008年9月的日曆;    cal 顯示當月的
    用法 cal [ [月] 年 ]


九、幫助
man 對某命令提供幫助解釋
    幫助( format and display the on-line manual pages)
    用法  man [-] [-adFlrt] [-M 路徑] [-T 宏軟件包] [-s 段] 名稱 ...
          man [-] [-adFlrt] [-M path] [-T macro-package]  [-s section]  name...
    man [-M 路徑] -k 關鍵字 ...
    man [-M 路徑] -f 文件 ...
 如:   man ls 就可以查看ls相關的用法


awk 按一定格式輸出(pattern scanning and processing language)
    用法 awk [-Fc] [-f 源代碼 | 'cmds'] [文件]


十、vi
    底行模式  / ?  命令模式  i a o 輸入模式

vi 的使用方法
 1、光標    h 左    j 下        k 上    l 右
    set nu 顯示行號(set nonu)  21  光標停在指定行
    21G             第N行  (G到文件尾,1G到文件頭) 如果要將光標移動到文件第一行,那麼就按 1G
    H               屏幕頭
    M               屏幕中間
    L               屏幕底
    ^  或 shift+6   行首
    $  或 shift+4   行尾
    Ctrl+f          下翻
    Ctrl+b          上翻

2、輸入 (輸入模式)
    o       光標往下換一行
    O       (大寫字母o)在光標所在行上插入一空行
    i       在光標所在位置的前面插入字母
    a       在光標所在位置的後面插入一個新字母
    <Esc>   退出插入狀態。
    ::      命令模式切換到插入模式

3、修改替換
    r        替換一個字符
    dd       刪除行,剪切行    (5dd刪除5行)
             5,10d  刪除 5 至 10 行(包括第 5行和第 10 行)
    x        刪除一個字符
    dw       刪除詞,剪切詞。 ( 3dw刪除 3 單詞)
    cw       替換一個單詞。 (cw 和 dw 的區別 cw 刪除某一個單詞後直接進入編輯模式,而dw刪除詞後仍處於命令模式)
    cc       替換一行
    C        替換從光標到行尾
    yy       複製行 (用法同下的 Y ,見下行)
    Y        將光標移動到要複製行位置,按yy。當你想粘貼的時候,請將光標移動到你想複製的位置的前一個位置,然後按 p
    yw       複製詞
    p        當前行下粘貼
    1,2co3   複製行1,2在行3之後
    4,5m6    移動行4,5在行6之後
    u        當你的前一個命令操作是一個誤操作的時候,那麼可以按一下 u鍵,即可復原。只能撤銷一次
    r file2  在光標所在處插入另一個文件

    ~        將字母變成大寫
    J        可以將當前行與下一行連接起來
    /字符串   從上往下找匹配的字符串
    ?字符串   從下往上找匹配的字符串
    n        繼續查找
    1,$s/舊串/新串/g   替換全文(或者  %s/舊串/新串/g)
                      (1表示從第一行開始)    沒有g則只替換一次,加g替換所有

4、存盤和退出
     w            存盤
     w newfile    存成新文件
     wq           存盤再退出VI(或者ZZ或 X)
     q!           強行退出不存盤


查看用戶
id 顯示用戶有效的uid(用戶字)和gid(組名)
    用法 id [-ap] [user]
    id 顯示自己的uid和gid。
    id root 顯示root的uid和gid。
    id -a root 顯示用戶所在組的所有組名(如root用戶,是所有組的組員)

users      顯示在線用戶(僅顯示用戶名)。當前系統由哪些用戶登錄了
who        顯示在線用戶,但比users更詳細,包括用戶名、終端號、登錄時間、IP地址。
 who am i  僅顯示自己,(但包括用戶名、端口、登錄時間、IP地址;信息量=who)。
 whoami    也僅顯示自己,但只有用戶名(僅顯示自己的有效的用戶名)。
w          顯示比who更多內容,還包括閒置時間、佔CPU、平均佔用CPU、執行命令。
           用法 w [ -hlsuw ] [ 用戶 ]
whereis    查詢命令所在目錄以及幫助文檔所在目錄
           如: whereis bin   顯示bin所在的目錄,將顯示爲: /usr/local/bin
which      查詢該命令所在目錄(類似whereis)

su         改變用戶,需再輸入密碼。在不退出登陸的情況下,切換到另外一個人的身份
           用法  su [-] [ username [ arg ... ] ]
 su -      相當於退出再重新登錄。
           su -l 用戶名(如果用戶名缺省,則切換到root狀態;將提示輸入密碼)

    分配root用戶管理權限的方法:
           剛開始往往不知道root的密碼,需要先爲root設置一個密碼: $ sudo passwd root
           之後會提示要輸入root用戶的密碼,連續輸入root密碼,再使用:$ su
           就可以切換成超級管理員用戶登陸了!


查找
find   查找文件(文件或者目錄名以及權限屬主等匹配搜索)
    用法 find  [-H | -L] 路徑列表 謂詞列表
    精確匹配: find . –name file1
 模糊匹配: find . –name “file*”  # 使用通配符要用雙引號
 -name     按文件名查找
 -mtime 10 修改時間距今10天那天的文件,-10表10天以內,+10表超過10天的(10天前的)
 -user 0   表userid=0的文件,即root的文件 (按用戶查找)。如: find / -user 0 # 顯示所有root用戶的文件
 -size +400 表文件大小超過400個blok,一個blok是512字節的文件,即200K
 -print    打印
 -perm 777 權限是777的文件 (按文件權限查找)
 -type f   只查普通文件,(按文件類型查找)
 -atime +365 訪問時間超過一年的 (按訪問時間查找)
 -exec rm {} 執行刪除操作,{}表示將前面的結果作爲rm的參數
 如:
    find / -name perl 從根目錄開始查找名爲perl的文件。
    find . -mtime 10 -print 從當前目錄查找距離現在10天時修改的文件,顯示在屏幕上。
           (注 “10”表示第10天的時候;如果是“+10”表示10天以外的範圍;“-10”表示10天以內的範圍。)

finger 可以讓使用者查詢一些其他使用者的資料
       如:finger     查看所用用戶的使用資料
    finger root   查看root的資料

grep 文件中查找字符;有過濾功能,只列出想要的內容
    用法  grep -hblcnsviw 模式 文件 . . .
 -v  尋找所有不匹配字符串的行
 -?   同時顯示匹配行上下的?行,如:grep -2 pattern filename # 同時顯示匹配行的上下2行。
 -b,--byte-offset            打印匹配行前面打印該行所在的塊號碼。
 -c, --count                  只打印匹配的行數,不顯示匹配的內容。
 -f File,--file=File         從文件中提取模板。空文件中包含0個模板,所以什麼都不匹配。
 -h,--no-filename            當搜索多個文件時,不顯示匹配文件名前綴。
 -i,--ignore-case            忽略大小寫差別。
 -q,--quiet                  取消顯示,只返回退出狀態。0則表示找到了匹配的行。
 -l,--files-with-matches     打印匹配模板的文件清單。
 -L,--files-without-match    打印不匹配模板的文件清單。
 -n,--line-number            在匹配的行前面打印行號。
 -s,--silent                 不顯示關於不存在或者無法讀取文件的錯誤信息。
 -v,--revert-match           反檢索,只顯示不匹配的行。
 -w,--word-regexp            如果被\<和\>引用,就把表達式做爲一個單詞搜索。
 -V,--version                顯示軟件版本信息。

    如 grep abc /etc/passwd  在passwd文件下找abc字符
 grep success *           # 查找當前目錄下面所有文件裏面含有success字符的文件
    grep -ins -r "文件內容" *   # 查找文件(進入到文件裏面,查詢包含此內容的文件)


wc 對單詞進行統計
    -l 統計行數
    -w 統計單詞數
    -c 統計字符數
    如  grep wang /etc/passwd|wc -l   # 統計passwd文件含“wang”的行數
    who | wc -l  # 當前登陸的用戶數
    wc -l /etc/passwd # 當前註冊的用戶數

du 統計磁盤容量
    用法 du [-a] [-d] [-h|-k] [-r] [-o|-s] [-H|-L] [文件...]
 df -k 是對文件系統進行統計
 du 單位是512字節
 du -k 單位是K,即1024字節
    du -s blog
    如: du -sk *   # 不加-s會顯示子目錄,-k按千字節排序


進程管理
ps 顯示進程。
    ps 命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程佔用了過多的資源等等.
    用法 ps [ -aAdeflcjLPyZ ] [ -o 格式 ] [ -t 項列表 ]
    [ -u 用戶列表 ] [ -U 用戶列表 ] [ -G 組列表 ]
    [ -p 進程列表 ] [ -g 程序組列表 ] [ -s 標識符列表 ] [ -z 區域列表 ]
    ps 顯示自己的進程。
     -e  顯示所有進程、環境變量,包括空閒進程。
     -f  顯示詳情(全格式)。
     -ef 組合-e和-f,所有進程的詳情。
     -U  uidlist(用戶列表) 具體查看某人的進程。
     -l  長格式
     -w  寬輸出
     a   顯示終端上的所有進程,包括其他用戶地進程
     r   只顯示正在運行的進程
     x   顯示沒有控制終端的進程
     h  不顯示標題
     --help 顯示幫助信息.
     --version 顯示該命令地版本信息.

    列表含義: PID(進程ID)、TTY(終端名稱)、TIME(進程執行時間)、COMMAND(該進程的命令行輸入)、%CPU(cpu佔用率)、%MEM(內存佔用空間)

    例如,查看進程:
    ps aux | grep java  # 表示查看所有進程裏CMD是java的進程信息; grep 是搜索, aux 顯示所有狀態
    ps -ef | grep 進程名 | wc -l # 顯示共有多個這樣的進程,顯示一個int數字


kill  可以殺死某個正在進行或者已經是dest狀態的進程
    用法:  kill [信號代碼] 進程ID
    如:  kill -9 [進程PID]  #-9表示強迫進程立即停止
    通常用ps 查看進程PID ,用kill命令終止進程

   常用控制進程的方法:
    kill -STOP [pid]   # 發送SIGSTOP (17,19,23)停止一個進程,而並不消滅這個進程。
    kill -CONT [pid]   # 發送SIGCONT (19,18,25)重新開始一個停止的進程。
    kill -KILL [pid]   # 發送SIGKILL (9)強迫進程立即停止,並且不實施清理操作。
    kill -9 -1         # 終止你擁有的全部進程。


killall  通過程序的名字,直接殺死所有進程
    用法: killall 正在運行的程序名 # 該命令可以使用 -9 參數來強制殺死進程
    格式: killall [-egiqvw] [-signal] name ...
    如果命令名包括斜槓 (/), 那麼執行該特定文件的進程將被殺掉, 這與進程名無關。
    如果對於所列命令無進程可殺, 那麼 killall 會返回非零值. 如果對於每條命令至少殺死了一個進程, killall 返回 0。
    killall 進程決不會殺死自己 (但是可以殺死其它 killall 進程)。

   PTIONS (選項)
    -e  對於很長的名字, 要求準確匹配. 如果一個命令名長於 15 個字符, 則可能不能用整個名字 (溢出了).
        在這種情況下, killall 會殺死所有匹配名字前 15 個字符的所有進程. 有了 -e 選項,這樣的記錄將忽略.
        如果同時指定了 -v 選項, killall 會針對每個忽略的記錄打印一條消息。
    -g  殺死屬於該進程組的進程. kill 信號給每個組只發送一次, 即使同一進程組中包含多個進程。
    -i  交互方式,在殺死進程之前徵求確認信息。
    -l  列出所有已知的信號名。
    -q  如果沒有進程殺死, 不會提出抱怨。
    -v  報告信號是否成功發送。
    -V  顯示版本信息。
    -w  等待所有殺的進程死去. killall 會每秒檢查一次是否任何被殺的進程仍然存在, 僅當都死光後才返回.
        注意: 如果信號被忽略或沒有起作用, 或者進程停留在殭屍狀態, killall 可能會永久等待。


yes      - 在被終止前反覆打印字符
signal   - 可用信號列表
ps       - 報告當前進程的快照
kill     - 向一個進程發出信號
pkill    - 通過程序的名字,直接殺死所有進程
           用法: pkill 正在運行的程序名
skill    - 發送一個信號或者報告進程狀態
xkill    - 殺死桌面圖形界面的程序
           應用情形實例: firefox出現崩潰不能退出時,運行xkill,哪個圖形程序崩潰一點就OK了。
           如果您想終止xkill ,就按右鍵取消;
           調用方法:  xkill

 

軟件安裝
    在ubuntu上的軟件安裝,有方便的方式,使用 apt
    sudo apt-get install openjdk-6-jdk # 安裝 jdk


sleep

passwd 可以設置口令

history 用戶用過的命令
        如: history  可以顯示用戶過去使用的命令

jobs
    用法  jobs [-l ]
fg %n
bg %n
stop %n 掛起(僅csh能用)
Ctrl+C
Ctrl+Z

網絡鏈接
ping
    usage  ping host [timeout]
    usage  ping -s [-l | U] [adLnRrv] [-A addr_family] [-c traffic_class] [-g gateway [-g gateway ...]] [-F flow_label] [-I interval] [-i interface] [-P tos] [-p port] [-t ttl] host [data_size] [npackets]

ifconfig -a
     /sbin/ifconfig    查看本機的IP地址 (windows 上用 ipconfig)

netstat -rn


rlogin

ftp


mount 加載一個硬件設備
      用法:mount [參數] 要加載的設備 載入點
      如: mount /dev/cdrom
      cd /mnt/cdrom  //進入光盤目錄

    # 掛載到別人機上
    sudo mount //192.168.1.137/PythonProject/led /home/holemar/program/led -o iocharset=utf8 -o programrname="zxp",pa==
    sudo mount //192.168.1.101/Holemar/1.notes /home/holemar/program/notes -o iocharset=utf8 -o programrname="holemar",password="123"

    Mount掛載命令使用方法
    語法: mount -t 類型 -o 掛接方式 源路徑 目標路徑
    -t 詳細選項:
          光盤或光盤鏡像:iso9660
          DOS fat16文件系統:msdos
          Windows 9x fat32文件系統:vfat
          Windows NT ntfs文件系統:ntfs
          Mount Windows文件網絡共享:smbfs(需內核支持)推薦cifs
          UNIX(LINUX) 文件網絡共享:nfs
    -o 詳細選項:
         loop :用來把一個文件當成硬盤分區掛接上系統
         ro :採用只讀方式掛接設備
         rw :採用讀寫方式掛接設備
         iocharset :指定訪問文件系統所用字符集,例如iocharset=utf8
         remount :重新掛載
    使用實例:
        掛載windows文件共享:
          mount -t smbfs -o username=admin,password=888888 //192.168.1.2/c$ /mnt/samba
          mount -t cifs -o username=xxx,password=xxx //IP/sharename /mnt/dirname
        掛載Linux文件nfs共享:
          mount -t nfs -o rw 192.168.1.2:/usr/www /usr/www
        掛載ISO鏡像:
          mount -o loop -t iso9660 /usr/mydisk.iso /home/ping.bao/cd
        掛載USB移動硬盤:
          mount -t ntfs /dev/sdc1 /root/usb
        掛載CDROM:
          mount /dev/cdrom /home/ping.bao/cd
        取消掛載:
          umount /dev/cdrom /home/ping.bao/cd
        單用戶模式重新掛載根分區:
          mount -o remount,rw /


修改用戶名
    sudo usermod -l new_name old_name
    注意: 不允許在當前用戶下修改當前用戶的名字。應該註銷要修改的用戶,用別的用戶登錄,然後執行命令。


壓縮
tar 解壓命令
    tar -zxvf nmap-3.45.tgz    將這個解壓到nmap-3.45這個目錄裏

 

查看系統信息
    uname [選項]...
    輸出一組系統信息。如果不跟隨選項,則視爲只附加-s 選項。

      -a, --all   以如下次序輸出所有信息。其中若-p 和 -i 的探測結果不可知則被省略。
                        如: Linux holemar 2.6.38-11-generic #48-Ubuntu SMP Fri Jul 29 19:05:14 UTC 2011 i686 i686 i386 GNU/Linux
      -s, --kernel-name  輸出內核名稱。如:  Linux
      -n, --nodename  輸出網絡節點上的主機名。如:  holemar
      -r, --kernel-release  輸出內核發行號。如:  2.6.38-11-generic
      -v, --kernel-version  輸出內核版本。 如:  #48-Ubuntu SMP Fri Jul 29 19:05:14 UTC 2011
      -m, --machine  輸出主機的硬件架構名稱。 如:  i686
      -p, --processor  輸出處理器類型或"unknown"。 如:  686
      -i, --hardware-platform 輸出硬件平臺或"unknown"。 如:  i386
      -o, --operating-system 輸出操作系統名稱。 如:  GNU/Linux
          --help  顯示此幫助信息並退出。
          --version  顯示版本信息並退出。


nohup
    用nohup命令讓Linux下程序永遠在後臺執行
  用途:不掛斷地運行命令。
  語法:nohup Command [ Arg ... ] [ & ]
  描述:nohup 命令運行由 Command 參數和任何相關的 Arg 參數指定的命令,忽略所有掛斷(SIGHUP)信號。
          在註銷後使用 nohup 命令運行後臺中的程序。要運行後臺中的 nohup 命令,添加 & ( 表示"and"的符號)到命令的尾部。
    如: nohup python ~/projects/ppf/service/run.py &  # 後臺執行,且輸出到執行程序同目錄下的 nohup.out 文件中

    注: 在當shell中提示了nohup成功後還需要按回車鍵退回到shell輸入命令窗口,然後通過在shell中輸入exit來退出終端;
         而在nohup執行成功後直接點關閉程序按鈕關閉終端,會斷掉該命令所對應的session,導致nohup對應的進程被通知需要一起shutdown。
    指定輸出文件: nohup command > myout.file 2>&1 &


關機命令
    shutdown    安全地將系統關機。
   [-t] 在改變到其它runlevel之前,告訴init多久以後關機。指定的範圍爲 0 - 600 秒。如: shutdown -t 100 將在100秒後關機
   [-r] 重啓計算器。如: shutdown -r 5  系統將關機,且在5分鐘後重啓。
   [-k] 並不真正關機,只是送警告信號給每位登錄者〔login〕。
   [-h] 關機後關閉電源〔halt〕。
   [-n] 不用init,而是自己來關機。不鼓勵使用這個選項,而且該選項所產生的後果往往不總是你所預期得到的。
   [-c] cancel current process取消目前正在執行的關機程序。所以這個選項當然沒有時間參數,但是可以輸入一個用來解釋的訊息,而這信息將會送到每位使用者。
   [-f] 在重啓計算器〔reboot〕時忽略fsck。
   [-F] 在重啓計算器〔reboot〕時強迫fsck。
   [-time] 設定關機〔shutdown〕前的時間。

    halt    最簡單的關機命令
   其實halt就是調用shutdown -h。halt執行時,殺死應用進程,執行sync系統調用,文件系統寫操作完成後就會停止內核。
   [-n] 防止sync系統調用,它用在用fsck修補根分區之後,以阻止內核用老版本的超級塊〔superblock〕覆蓋修補過的超級塊。
   [-w] 並不是真正的重啓或關機,只是寫wtmp〔/var/log/wtmp〕紀錄。
   [-d] 不寫wtmp紀錄〔已包含在選項[-n]中〕。
   [-f] 沒有調用shutdown而強制關機或重啓。
   [-i] 關機〔或重啓〕前,關掉所有的網絡接口。
   [-p] 該選項爲缺省選項。就是關機時調用poweroff。

    reboot
     reboot的工作過程差不多跟halt一樣,不過它是引發主機重啓,而halt是關機。它的參數與halt相差不多。

    init
     init是所有進程的祖先,它的進程號始終爲1,所以發送TERM信號給init會終止所有的用戶進程、守護進程等。shutdown 就是使用這種機制。
     init定義了8個運行級別(runlevel),init 0爲關機,init 1爲重啓。關於init可以長篇大論,這裏就不再敘述。
     另外還有telinit命令可以改變init的運行級別,比如,telinit -iS可使系統進入單用戶模式,並且得不到使用shutdown時的信息和等待時間。

    poweroff    部分泛UNIX/LINUX系統才支持,紅旗LINUX亦適用。
     其實是 halt -p 命令。


如果執行一個 sh 文件
    方法一(在ubuntu下的):
        cd sh文件的目錄
        ./名稱.sh   # 執行此文件
    方法二:
        sh 目錄/名稱.sh


10 個最酷的 Linux 單行命令
    1. sudo !!
       以 root 帳戶執行上一條命令。

    2. python -m SimpleHTTPServer
       利用 Python 搭建一個簡單的 Web 服務器,可通過 http://$HOSTNAME:8000 訪問。

    3. :w !sudo tee %
       在 Vim 中無需權限保存編輯的文件。

    4. cd -
       更改到上一次訪問的目錄。

    5. ^foo^bar
       將上一條命令中的 foo 替換爲 bar,並執行。

    6. cp filename{,.bak}
       快速備份或複製文件。

    7. mtr google.com
       traceroute + ping。

    8. !whatever:p
       搜索命令歷史,但不執行。

    9. $ssh-copy-id user@host
       將 ssh keys 複製到 user@host 以啓用無密碼 SSH 登錄。

    10. ffmpeg -f x11grab -s wxga -r 25 -i :0.0 -sameq /tmp/out.mpg
        把 Linux 桌面錄製爲視頻。


 

發佈了34 篇原創文章 · 獲贊 5 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章