1、常用指令##
命令 參數 描述
ls 顯示文件或者目錄
-l 列出文件詳細信息
-R 遞歸列出遇到的子目錄。
-a 列出所有文件,包括以 "." 開頭的隱含文件。
mkdir mkdir 用指定的名字建立目錄。 缺省時,新建立的目錄模式為0777,即不加保護地對所有人 都可讀、可寫、可執行。
-m mode, --mode=mode 為新建立的目錄設定模式,就象應用命令chmod一樣,以后仍 然使用缺省模式建立新目錄。
-p, --parents 為所給出的目錄建立丟失了的父目錄。所建立的父目錄的模式 相當于用命令 umask 進行了 'u+wx' 的設置。忽略參數對已存 在的目錄的覆蓋。(例如:已存在目錄/a,當用到命令'mkdir /a'
時報錯,而'mkdir -p /a'則不會。)
cd 切換目錄
touch 修改每個指定文件 file 的存取(access)和/或修改(modification)時間戳記.
-a 修改文件 file 的存取時間
-c 不創建文件 file.
-r file, --reference=file 使用參照文件 file 的時間戳記值修改指定文件的時間戳記
echo 在標準輸出上顯示文本。
cat 將文件列表中的文件或標準輸入連接到標準輸出。
cp cp 復制文件(或者目錄等). 可以使用這個命令復制一個文件到一個指定的目的地, 或者復制任意多個文件到一個目的目錄目錄.
cp [選項] 文件路徑
cp [選項] 文件...目錄
-f, --force 刪除存在的目標文件
-r 遞歸地復制目錄,復制任何非目錄和非符號鏈接
-p 保留原文件的所有者、組、權限
mv 改“源文件”名到“目標文件”名, 或移動“源文件”(可以不只一 個)到一個“目錄”。
mv [選項]... 源文件 目標文件
mv [選項]... 源文件... 目錄
-f, --force 覆蓋前永不提示
-i, --interactive 覆蓋前提示
-u, --update 只移動更老的或者標記新的非目錄
rm 移除每個給定的文件。默認情況下,它不能移除目錄。但是當給定了-r或者-R選項時,在指定目錄之下的整個目錄樹都會被移除。
rm [options]file...
-f,--force 忽略不存在的文件,并且從不向用戶提示。
-i,--interactive 提示是否移除每個文件。如果回答是否定的,文件將被跳過。
-r,-R,--recursive 遞歸地移除目錄中的內容
find 遞歸地在層次目錄中查找文件。
find [path...] [expression]
wc 輸出文件中的行數、單詞數、字節數。
wc [選項列表]... [文件名列表]...
grep 搜索以FILE命名的文件輸入(或者是標準輸入如果沒有指定文件名,或者給出的文件名是-的話)尋找含有與給定的模式 PATTERN 相匹配的內容的行。默認情況下, grep將把含有匹配內容的行打印出來。
grep [options] [-e PATTERN | -f FILE] [FILE...]
-a, --text 將一個二進制文件視為一個文本文件來處理
-E, --extended-regexp 將模式 PATTERN 作為一個擴展的正則表達式來解釋
-f FILE, --file=FILE 從文件 FILE 中獲取模式,每行一個。空文件含有0個模式,因此不匹配任何東西。
-n, --line-number 在輸出的每行前面加上它所在的文件中它的行號。
-R, -r, --recursive 遞歸地讀每一目錄下的所有文件。
-B NUM, --before-context=NUM 打印出匹配的行之前的上文 NUM 行。
-C NUM, --context=NUM 打印出匹配的行的上下文前后各 NUM 行。
rmdir 刪除空目錄。如果所給出的目錄不為空,則報錯。
rmdir [options] directory..
-p 如果目錄由多個路徑名組成,從最后一個路徑名開始依次刪除, 直到所有的路徑名都被刪完。例如:命令'rmdir -p a/b/c'按 照'rmdir /a/b/c'; 'rmdir a/b'; 'rmdir a'的順序刪除目錄。
pwd 顯示出當前/活動目錄的名稱.
ln 在文件之間建立連接,在Unix世界里有兩個'link'(連接)概念,一般稱之為硬連接和軟連接。一個硬連接僅僅是一個文件名。
一個文件可以有好幾個文件名,只有將最后一個文件名從
磁盤上刪除,才能把這個文件刪掉。文件名的個數是由ls(1)來確定的。所有的文件名都處于同一個狀態,也就沒有什么“源名字”之說。通常文件系統里的一個文件的所有名字包含著一樣的數據信息,不過這樣也不是必需的。)
一個軟連接(或符號連接)是完全不同的:它是一個包含了路徑信息的小小的指定文件。因此,
軟連接可以指向不同文件系統里的文件(比如由NFS裝載的不同機器文件系統上的文件),甚至可以指向一個不一定確實存在的文件。在軟連接文件被訪問(系統調用 open(2)
或stat(2))的時候,操作系統用該文件所包含的路徑替換該文件的訪問介入點,從而實現對所指文件的訪問。(用命令rm(1)和unlink(2)可以刪除連接,但
不是刪除該文件所指向的文件。系統指定調用lstat(2)和readlink(2)來讀取連接文件與其所指文件的狀態。到底是對軟連接文件操作,還是對被指向文件操作,由
于不同操作系統件存在不同的系統調用,而存在著差異。) ln 在文件間產生連接。缺省時,產生硬連接,有-s選項,則產生符號(軟)連接。
如果僅僅只給出一個文件名,那么ln將在當前目錄里產生這個文件的連接, 也就是說,以該文件(的最后一個)名稱等同的名字在當前目錄里產生一個連接 (GNU范圍內);
如果最后一個參數是一個已存在的目錄名,ln 將在那個目錄里給每一個源文件用以與源文件相同的文件名產生連接,(不同情況見以下--no-dereference的描述);
如果只給出兩個文件名,ln將產生源文件的連接; 如果最后一個參數不是一個目錄名或多于兩個文件名,則報錯。
缺省時,ln不刪除已存在的文件或符號連接。 (因此,它可以被用來鎖定目標文件,即當dest已經不存在時) 但選項-f可以強制執行。
在已存在的實現中,只有超級用戶才能建立目錄的硬連接。 POSIX 禁止系統調用link(2)和ln建立目錄的硬連接 (但是允許在不同的文件系統間建立硬連接)。
ln [options] source [dest]
ln [options] source...directory
-f, --force 刪除已存在的目的文件
-i, --interactive 提示是否刪除已存在的目的文件。
-n, --no-dereference 當所給出的目的文件名是一個目錄的符號連接時,將其視為一般文件處理。當所給出的目的文件名是一個目錄的符號連接時,將其視為一般文件處理。
more、less 分頁顯示文本文件中的內容。
head、tail 顯示文件頭尾內容
系統管理命令##
stat 打印信息節點(inode)內容,顯示指定文件的詳細信息,比ls更詳細
stat filename [filenames ... ]
who 顯示已經登錄的用戶
who [OPTION]... [ FILE | ARG1 ARG2 ]
-H, --heading 顯示 欄目行
-u 增加顯示用戶的空閑時間,格式是:HOURS:MINUTES或old
-q, --count 顯示 全部的 登錄名 和 登錄數。
whoami 顯示當前操作用戶。
hostname 顯示或設置系統的主機名
domainname 顯示或設置系統的NIS/YP域名
dnsdomainname 顯示系統的DNS域名
nisdomainname 顯示或設置系統的NIS/YP域名
ypdomainname 顯示或設置系統的NIS/YP域名
nodename 顯示或設置系統的DECnet節點名
uname 顯示輸出系統信息
-a, --all 顯示所有的信息
-m, --machine 顯示機器(硬件)類型
-n, --nodename 顯示機器的網絡節點主機名
-r, --release 顯示操作系統發行版本
-s, --sysname 顯示操作系統名
-p, --processor 顯示主機處理器(CPU)類型
-v 顯示操作系統版本
top 動態顯示當前耗費資源最多進程信息
ps 顯示進程快照 ps aux
a 顯示現行終端機下的所有程序,包括其他用戶的程序。
-A 顯示所有程序。
c 列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,參數或常駐服務的標示.
-e 此參數的效果和指定"A"參數相同
ps u 以用戶為主的格式來顯示程序狀況。
ps x 顯示所有程序,不以終端機來區分。
ps e 列出程序時,顯示每個程序所使用的環境變量。
du 報告磁盤空間使用情況
du [options] [file...]
-a 顯示對涉及到的所有文件的統計,而不只是包含子目錄。
-k 用1024字節作為計數單位,替代缺省時512字節的計數單位。
-x 只輸出指定參數的實際使用空間,而不包括其下的子目錄。
-s 只統計指定參數的在同一設備上所使用的空間。
-h, --human-readable 為每個數附加一個表示大小單位的字母,象用M表示二進制 的兆字節。
df 報告文件系統磁盤空間的使用情況
df [OPTION]... [FILE]...
-h,--huma-readable 用常見的格式顯示出大小(例如:1K 234M 2G)
-H,--si 同上,但是這里的1k等于1000字節而不是1024字節
-l, --local 只顯示本地文件系統使用狀況
-T, --print-type 輸出每個文件系統的類型
-a, --all 列出包括BLOCK為0的文件系統
ifconfig 配置網絡接口,查看網絡情況
ping 測試網絡連通
netstat 顯示網絡連接,路由表,接口狀態,偽裝連接,網絡鏈路信息和組播成員組。
-a (all)顯示所有選項,默認不顯示LISTEN相關
-t (tcp)僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數字的全部轉化成數字。
-l 僅列出有在 Listen (監聽) 的服務狀態
-p 顯示建立相關鏈接的程序名
-r 顯示路由信息,路由表
-e 顯示擴展信息,例如uid等
-s 按各個協議進行統計
-c 每隔一個固定時間,執行該netstat命令
clear 清除終端屏幕
alias 對命令重命名,比如:alias showmeit="ps -aux" 解除使用unalias showmeit
kill 終止進程,給指定進程發送指定信號. 如果沒有指定信號, 則發送 TERM 信號. TERM 信號會殺死不能俘獲該信號的進程.對于其他進程, 可能需要使用 KILL (9) 信號, 因為該信號不能夠被俘獲。
-s 指定發送的信號. 信號可以以信號名或數字的方式給定.
-p 指定 kill 只打印命名進程的進程標識 (pid) , 而不應發送給它信號。
-l 打印信號名的列表.這可以在 /usr/include/linux/signal.h 中找到.
useradd 創建一個新用戶或更新默認新用戶信息
useradd [選項] 登錄
-b, --base-dirBASE_DIR 如果選項沒有指定,useradd 將使用 /etc/default/useradd 中的 HOME 變量,或者默認的 /home。
-c, --comment 任何字符串。通常是關于登錄的簡短描述,當前用于用戶全名。
-e, --expiredate 用戶賬戶將被禁用的日期。日期以 YYYY-MM-DD 格式指定。如果沒有指定,useradd 將使用 /etc/default/useradd 中 EXPIRE。變量指定的默認過期日期,或者一個空字符串(不過期)。
-f, --inactive 密碼過期后,賬戶被徹底禁用之前的天數。0 表示立即禁用,-1 表示禁用這個功能。
-G, --groups 用戶還屬于的附加組列表。每個組都用逗號隔開,沒有中間的空格。
userdel 刪除用戶賬戶和相關文件
userdel [選項] 登錄
-f, --force 此選項強制刪除用戶賬戶,甚至用戶仍然在登錄狀態。
-r, --remove 用戶主目錄中的文件將隨用戶主目錄和用戶郵箱一起刪除。在其它文件系統中的文件必須手動搜索并刪除。
-Z, --selinux-user 移除用戶登錄的所有 SELinux 用戶映射。
groupadd 創建一個新組
groupadd [選項] group
groupdel 刪除一個組
groupdel [選項] GROUP
passwd 更新用戶口令
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]
su user 運行替換用戶和組標識的shell
chown 修改文件所有者和組別
chown [options] user [:group] file...
-R 遞歸地修改目錄及其下面內容的所有權.
chmod 修改某個目錄或文件的訪問權限
chmod [options] mode file...
chmod [u所屬用戶 g所屬組 o其他用戶 a所有用戶] [+增加權限 -減少權限] [r w x] 目錄名
-R 改變目錄及目錄下的內容的訪問權限.
-c, --changes 只有在文件的權限確實改變時才進行詳細的說明
-v, --verbose 詳細說明權限的變化
有兩種設置方法:[ugoa...][[+-=][rwxX]...][,...],此中u 暗示該檔案的擁有者,g 暗示與該檔案的擁有者屬于統一個群體(group)者,o 暗示其他以外的人,a 暗示這三者皆是。
+ 暗示增添權限、- 暗示打消權限、= 暗示獨一設定權限。
r 暗示可讀取,w 暗示可寫入,x 暗示可實行,X 暗示只有當該檔案是個子目次大概該檔案已經被設定過為可實行。
例子:將1.txt設置為全部人都可以讀取 chmod ugo+r 1.txt 則 chmod a+r 1.txt chmod 444 1.txt
有一個文件filename,權限為“-rw-r----x” ,將權限值改為"-rwxrw-r-x",用數值表示為765
sudo chmod u+x g+w o+r filename 或者 sudo chmod 765 filename
chgrp 改變文件的組所有權
-R 遞歸的改變目錄和它的內容的組所有權 (即使遇到錯誤也繼續.)
/etc/profile 系統環境變量
~/.bash_profile 用戶環境變量
~/.bashrc 用戶環境變量文件
關機、重啟機器#
shutdown 關閉系統
/sbin/shutdown [-t sec] [-arkhncfF] time [warning-message]
-t sec 通知 init(8) 在轉換到其它運行級別前,發送警告 (warning) 信號后延時 (sec) 秒數后再發送關閉 (kill)信號。
-k 并非真正關機,只向所有人顯示警告信息。
-r 重啟。
-h 停機,關閉電源。
-f 重啟時跳過磁盤檢測。
-F 重啟時強制磁盤檢測。
-c 取消運行中的shutdown進程。
time 關機時間。
shutdown -h now 立即關機
halt 、reboot 中止系統運行
/sbin/halt [-n] [-w] [-d] [-f] [-i] [-p]
-n 在關機或重啟之前不對系統緩存進行同步。
-w 不真正重啟或關機,而僅僅將關機信息寫入 wtmp (在 /var/log/wtmp 文件里)
-d 不記錄此次關機情況。當使用 -n 參數時隱含 -d。
-f 強制執行 halt 或 reboot 而不去調用 shutdown(8)。
-i 在關閉或重啟系統之前關閉所有網絡界面。
-p 當關閉系統時執行關閉電源操作。
Linux管道##
將一個命令的標準輸出作為另外一個命令的標準輸入,也就是把幾個命令組合起來使用,后一個命令除以前一個命令的結果。
例如: grep -r "close" /home/* | more 表示在home目錄下所有的文件中查找,包含close的文件,并分頁輸出。
vim使用##
vim三種模式:命令模式、插入模式、編輯模式。使用ESC或i或:來切換模式。
命令模式下:
:q 退出
:q! 強制退出
:wq 保存并退出
:set number 顯示行號
:set nonumber 隱藏行號
/apache 在文檔中查找apache,按n跳到下一個,shif+n上一個
yyp 復制光標所在行,并粘貼。
用戶及用戶管理##
/etc/passwd