一、shell 命令基礎
命令行格式
$command [option(s)] [argument(s)]
shell
說明
* 在命令行的每兩個部分之間有空格分割
* 每一個命令行可以使用的最多的命令符數是256個
* 命令要區分大小寫
* 不一樣的命令提示符,使用的分割符爲/
* 命令中的參數,選項能夠是多個,而且參數實際上是要傳入命令程序的主函數main的參數
複製代碼
命令行別名
命令 |
命令說明 |
示例 |
示例說明 |
alias alias-name=value |
創建別名 |
alias mypwd="pwd" |
給pwd創建別名 |
alias |
列出全部別名 |
alias |
列出全部已創建的別名 |
unalias alias-name |
刪除別名 |
unalias mypwd |
取消mypwd別名 |
通配符
命令 |
命令說明 |
示例 |
示例說明 |
* |
通配0個或多個 |
ls u* |
列舉出以u開頭的文件目錄 |
? |
通配任意單個字符 |
ls us? |
列出us開頭後面還有一個字符的文件目錄 |
[] |
通配某個範圍內的任意字符 |
[a-z] |
匹配a-z 中間的任意一個字符 |
一行執行多條命令;
命令 |
命令說明 |
示例 |
示例說明 |
; |
一行執行多條命令 |
cd /home;ls |
進入到home 目錄而且查看該目錄下的文件 |
輸入輸出重定向
命令 |
命令說明 |
示例 |
示例說明 |
> |
將輸出放到文件(覆蓋) |
ls > out.txt |
將ls的輸出放到out.txt 中 |
>> |
將輸出追加到文件末尾 |
ls >> out.txt |
將ls的輸出追加到out.txt 中 |
< |
輸入重定向 |
cat < out.txt > out1.txt |
將out.txt 的輸出重定向到out1.txt 中 |
管道符
命令 |
命令說明 |
示例 |
示例說明 |
| |
將一個進程的輸出做爲另外一個進程的輸入 |
ls -l /etc | more |
將/etc 目錄下的文件分頁輸出 |
聯機幫助
命令 |
命令說明 |
示例 |
示例說明 |
man name |
查看命令信息,spacbebar :向下顯示一屏,Enter :向下顯示一行,b :向上一屏,f :向下一屏,q :退出,/string :查找字符串string,n :查找下一個string |
man pwd |
查看pwd 命令的相關信息 |
man -k keyword |
根據關鍵詞查找命令 |
man -k pw |
查找命令中帶有pw 兩字字母的命令 |
清屏
歷史記錄
命令 |
命令說明 |
示例 |
示例說明 |
history |
查看最近500條歷史命令 |
history |
查看最近500條歷史命令 |
history n |
查看最近n 條歷史命令 |
history 2 |
查看最近2條歷史命令 |
!n |
執行歷史記錄中的第n 條 |
!5 |
執行歷史記錄中的第5條 |
!! |
執行上一條命令 |
!! |
執行上一條命令 |
方向上鍵 |
執行上一條歷史命令 |
|
|
二、文件管理
查看文件目錄
命令 |
命令說明 |
示例 |
示例說明 |
pwd |
顯示當前工做目錄 |
|
|
cd |
改變當前工做目錄 |
cd /etc |
切換到etc 目錄 |
ls |
列出當前工做目錄的文件和目錄 |
|
|
ls -a |
列出當前工做目錄全部目錄、子目錄、文件、隱藏文件 |
|
|
ls -R |
一層層的展現當前目錄的子目錄和文件 |
|
|
ls -F |
列出文件、目錄並顯示文件類型 |
|
|
ls -t |
以修改時間爲時間倒序列出文件、子目錄 |
|
|
ls -l |
以長列表格式顯示文件、目錄的詳細信息 |
|
|
file filename |
顯示文件類型 |
file logs |
查看logs 的文件類型 |
建立和刪除文件目錄
命令 |
命令說明 |
示例 |
示例說明 |
touch filename |
建立文件,當filename 不存在時建立一個新的空文件,當filename 存在時,更新該文件的修改時間 |
touch my.txt |
建立my.txt 文件 |
mkdir [-p] dir_name |
建立目錄,-p 參數在父目錄不存在時能夠同時建立子目錄 |
mkdir dir1 ,mkdir -p dir2/dir3 |
建立dir1 目錄,建立dir2 目錄而且建立子目錄dir3 |
rm [-i/f] filename |
刪除一個或多個文件,-i :詢問是否刪除,-f :強制刪除 |
rm -i my.txt |
刪除my.txt 文件 |
rmdir dir_name(s) |
刪除空目錄 |
rmdir dir1 |
刪除空目錄dir1 |
rm -r[i/f] dir_name(s) |
刪除一個或多個目錄,-r :刪除非空目錄,-i :刪除前詢問是否刪除,-f :強制刪除 |
rm -rf dir2 |
強制刪除dir目錄 |
顯示文件內容
命令 |
命令說明 |
示例 |
示例說明 |
cat filename |
不分屏顯示文本內容 |
cat out.txt |
查看out.txt 的文件內容 |
more filename |
分頁展現文件內容,spacbebar :向下顯示一屏,Enter :向下顯示一行,b :向上一屏,f :向下一屏,h :顯示幫助菜單,q :退出,/string :查找字符串string,n :查找下一個string |
|
|
head [-n] filename |
查看文件的前多少行,-n :行數,默認10行 |
head -20 settings.xml |
查看setting.xml 的前20行 |
tail [-n] filename |
查看文件的最後多少行,-n :行數,默認10行 |
tail -20 settings.xml |
查看setting.xml 的最後20行 |
拷貝和移動文件目錄
命令 |
命令說明 |
示例 |
示例說明 |
cp [-i] source_file destination_file |
拷貝文件,-i :若是目標文件存在詢問是否覆蓋,沒有-i 參數則直接覆蓋 |
cp out.txt /data/ |
將out.txt 文件拷貝到/data 目錄下 |
cp -r source_directory destination_directory |
拷貝目錄 |
`cp -r dir1/ logs/ |
|
|將 dir1拷貝到 logs`目錄下 |
|
|
|
mv [i] source_file target_file |
重命名文件 |
`mv -i out.txt myout.txt |
|
|將 out.txt重命名爲 myout.txt` |
|
|
|
mv [i] source_file target_directory |
移動文件到目標文件目錄 |
mv myout.txt logs/ |
將myout.txt 文件移到到logs 目錄下 |
解壓/打包文件
命令 |
命令說明 |
示例 |
示例說明 |
tar -cvzf target_file source_file |
打包文件, |
tar -czvf mydir.tar.gz dir1/ |
將dir1 目錄打包爲mydir.tar.gz |
tar -xvzf source_file |
解壓文件 |
tar -xzvf mydir.tar.gz |
解壓mydir 壓縮包 |
文件目錄權限
命令 |
命令說明 |
示例 |
示例說明 |
chmod |
修改文件目錄的訪問權限,用戶[u :擁有者,g :同組人,o :其餘人,a :全部人],權限操做[= :設置權限,+ :添加權限,- :刪除權限],權限[r :讀權限,w :寫權限,x :執行權限] |
chmod u=rwx,g=rw,o=r myout.txt |
擁有者對myout.txt 有全部權限,跟擁有者同組的用戶有讀寫權限,其餘人只有讀權限 |
chown -[R/v] 用戶或組 file |
更改某個文件或目錄的屬主或屬組,可用於受權 |
chown -R jamal /dir1 |
將dir1 的擁有者改成jamal |
chgrp [-R] group filename |
改動文件所屬的組 |
|
|
查找文件
命令 |
命令說明 |
示例 |
示例說明 |
find path experession |
查找文件和目錄,[-name :按文件名查找,-user :按用戶,-size :按大小,-mtime :按最後一次修改時間,-atime :按最後一次訪問時間,-type :按文件類型,-perm :按權限] |
find . -name di* |
在當前目錄查找以di開頭的文件和目錄 |
過濾與統計
命令 |
命令說明 |
示例 |
示例說明 |
grep [option] string filename |
查找包含某些字符串的結果,對文件或輸出進行過來,區分大小寫,-i :忽略大小寫,-v :反向匹配(查找不包含某字符串的接口) |
grep -i dataid config.log |
忽略大小寫,在config.log 中查找dataid |
wc [option(s)] filename |
統計文件或輸出結果,-l :統計多少行,-w :統計有多少個單詞,-c :統計多少個字符 |
wc -l config.log |
統計config.log 有多少行 |
三、系統管理
時間日期
命令 |
命令說明 |
date |
顯示當前日期 |
cal |
顯示日曆,默認顯示當前月的日曆,cal 月份 年份 :顯示指定年月的日曆,cal 年份 :顯示指定年份的日曆 |
查看進程
命令 |
命令說明 |
ps [options] |
列出當前系統中已在運行的進程,默認列出當前終端相關的進程,options [-e :列出正在運行的進程,-f :列出一個完整的進程列表形式,-u :查找出由某個用戶啓動的進程,-auwx :列出一個完整的進程列表形式] |
結束進程
命令 |
命令說明 |
kill -[信號數字] <進程PID> |
根據進程pid結束進程,信號數字:[9 :發送 kill 信號退出,6 :發送 abort 信號退出,15 :發送 Termination 信號,1 :掛起,2 :從鍵盤中斷,-9 -1 :結束當前用戶的全部進程],通常咱們使用kill -9 pid 便可 |
pkill <進程名> |
結束進程族。若是結束單個進程,請用 kill |
killall <進程名> |
killall和pkill 應用方法差很少,也是直接殺死運行中的程序;若是您想殺掉單 |
個進程,請用kill 來殺掉。 |
|
用戶切換
命令 |
命令說明 |
示例 |
示例說明 |
su 用戶名 |
切換用戶 |
su root |
切換到root 用戶 |
設置普通用戶的超級權限
命令 |
命令說明 |
示例 |
示例說明 |
sudo 命令行 |
將該命令以超級權限運行 |
sudo apt-get install vim |
|
關機重啓
命令 |
命令說明 |
shutdown [-cfFhknr][-t 秒數][時間][警告信息] |
安全的關閉或者重啓Linux 系統,-h :系統關機,-r :系統重啓,-t :設置多久時間後執行shutdown 指令 |
halt |
關機 |
reboot |
重啓 |
四、用戶管理
修改密碼
查找用戶
命令 |
命令說明 |
id |
查看用戶ID,所屬組ID |
users |
查看已經登陸到當前系統中的用戶,只顯示出用戶名 |
who |
查看用戶的詳細信息 |
who am i |
查看當前用戶本身的信息 |
whoami |
查看當前用戶本身的用戶名 |
五、磁盤管理
磁盤信息
命令 |
命令說明 |
du [options] |
顯示磁盤使用摘要信息,options:[-k :以K字節方式顯示,-m :以M字節方式顯示,-s :顯示當前目錄下的內容總佔用磁盤的大小] |
df |
顯示整個文件系統的空間使用磁盤狀況 |
內存信息
命令 |
命令說明 |
free |
查看內存使用狀況,輸出參數說明:[tota l:總計物理內存的大小,used :已使用多大,free :可用有多少,Shared :多個進程共享的內存總額,Buffers/cached :磁盤緩存的大小] |
top |
查看內存使用狀況,輸出參數說明:[PID :進程的ID,USER :進程全部者,PR :進程的優先級別,越小越優先被執行,NInice :值,VIRT :進程佔用的虛擬內存,RES :進程佔用的物理內存,SHR :進程使用的共享內存,S :進程的狀態(S表示休眠,R表示正在運行,Z表示僵死狀態,N表示該進程優先值爲負數),%CPU :進程佔用CPU的使用率,%MEM :進程使用的物理內存和總內存的百分比,TIME+ :該進程啓動後佔用的總的CPU時間,COMMAND :進程啓動命令名稱] |
六、網絡配置
命令 |
命令說明 |
ping 主機IP |
查看當前機器與另外一臺機器的聯調狀況 |
ifconfig -a |
顯示當前機器的IP、Netmask、Gateway等網絡信息 |
ifconfig ethO up(down) |
激活與關閉某個網絡適配卡 |
ifconfig ethO [ipaddress] netmask [address] |
設置IP和子網掩碼 |
七、安裝卸載應用程序
離線包安裝和卸載
命令 |
命令說明 |
dpkg -i <package> |
安裝離線包 |
dpkg -p <package> |
移除包和配置文件 |
在線包安裝和卸載
命令 |
命令說明 |
apt-get install <application> |
ubuntu下安裝應用程序 |
apt-get remove -purge <application> |
卸載應用程序 |
掃碼關注公衆號(搜索公衆號:平頭哥的技術博文)一塊兒交流學習唄