如何編寫命令行
– 用來實現某一類功能的指令或程序
總結:執行Linux大多數命令,都要找到對應執行程序
– 命令的執行依賴於解釋器(默認解釋器:/bin/bash)
用戶----->解釋器------>內核----->硬件
綠色:可以執行的程序
####################################################
• Linux命令的分類
– 內部命令:屬於解釋器的一部分
– 外部命令:解釋器之外的其他程序
####################################################
命令行的一般格式
• 基本用法
– 命令字 [選項]… [參數1] [參數2]…
[root@1906 ~]# cat --help #查看命令的幫助信息
[root@1906 ~]# cat /etc/passwd
[root@1906 ~]# cat -n /etc/passwd #顯示行號
[root@1906 ~]# cat -n /etc/redhat-relese
[root@1906 ~]# cat -n /etc/shells
[root@1906 ~]# cat -n /etc/shadow
##################################################
快速編輯技巧
• Tab鍵自動補全
– 可補齊命令字、選項、參數、文件路徑、軟件名、服務名
]# if(tab)(tab)
]# ifco(tab)
]# cat /et(tab)/red(tab)
]# ls /etc/sysconfig/network-scripts/ifcfg-eth0
]# ls /et(tab)/sysco(tab)/netw(tab)-(tab)/ifc(tab)-e(tab)
• 快捷鍵
– Ctrl + l:清空整個屏幕
– Ctrl + c:廢棄當前編輯的命令行(結束正在運行的命令)
– Esc + . 或 Alt + .:粘貼上一個命令的參數
– Ctrl + u:清空至行首
– Ctrl + w:往回刪除一個單詞(以空格界定)
[root@1906 ~]# ls /etc/shells
[root@1906 ~]# cat ALT+.
[root@1906 ~]# cat -n ALT+.
]# ls /etc/sysconfig/network-scripts/ifcfg-eth0
]# cat -n ALT+.
#####################################################
mount掛載操作:讓目錄成爲設備的訪問點
1.系統光盤獲得衆多的軟件包,安裝軟件包
2.系統中顯示光盤內容
Windows:
光盤文件------>光驅設備------->CD驅動器(訪問點)
Linux:
光盤文件------>光驅設備------->訪問點(目錄)
/dev/cdrom
青色:快捷方式
1.圖形將光盤文件放入到虛擬光驅設備
2.查看光驅設備
[root@1906 ~]# ls -l /dev/cdrom #光驅快捷方式
[root@1906 ~]# ls /dev/sr0 #實際光驅設備
3.進行掛載
• 使用mount命令
– 格式:mount 設備路徑 掛載點目錄
[root@1906 ~]# mkdir /dvd
[root@1906 ~]# ls /dvd/
[root@1906 ~]# mount /dev/cdrom /dvd
mount: /dev/sr0 寫保護,將以只讀方式掛載
[root@1906 ~]# ls /dvd/
[root@1906 ~]# ls /dvd/P(tab)
4.卸載
[root@1906 /]# umount /dvd/
[root@1906 /]# ls /dvd
[root@1906 /]# mkdir /nsd1906
[root@1906 /]# mount /dev/cdrom /nsd1906/
mount: /dev/sr0 寫保護,將以只讀方式掛載
[root@1906 /]# ls /nsd1906/
常見的提示:
[root@1906 dvd]# pwd
[root@1906 dvd]# umount /dvd/
umount: /dvd:目標忙。
注意事項:
1.允許一個設備可以具備,多個不同的掛載點目錄
2.不允許一個掛載點目錄,有多個設備
3.建議掛點目錄是一個自己創建的目錄
##################################################
目錄和文件管理
使用pwd、cd
• pwd — Print Working Directory
– 用途:查看當前工作目錄
• cd — Change Directory
– 用途:切換工作目錄
– 格式:cd [目標文件夾位置]
. 表示當前目錄
.. 表示父目錄
~:家目錄
~user表示用戶user的家目錄
/root:管理員的家目錄
/home:存放所有普通用戶的家目錄
[root@1906 /]# cd ~root
[root@1906 ~]# pwd
/root
[root@1906 ~]# cd ~lisi
[root@1906 lisi]# pwd
/home/lisi
[root@1906 lisi]# useradd tom #創建普通用戶tom
[root@1906 lisi]# cd ~tom
[root@1906 tom]# pwd
/home/tom
[root@1906 tom]#
• ls — List
– 格式:ls [選項]… [目錄或文件名]
• 常用命令選項
– -l:以長格式顯示,顯示詳細信息
– -A:包括名稱以 . 開頭的隱藏文檔
– -d:顯示目錄本身(而不是內容)的屬性
– -h:提供易讀的容量單位(K、M等)
[root@1906 ~]# ls -l /etc/passwd
[root@1906 ~]# ls -l -h /etc/passwd
[root@1906 ~]# ls -lh /etc/passwd #顯示文件的詳細屬性
[root@1906 ~]# ls -l /boot/ #顯示目錄內容詳細屬性
[root@1906 ~]# ls -lh /boot/
[root@1906 /]# ls -ld / #顯示目錄本身的詳細屬性
[root@1906 /]# ls -ld /opt
[root@1906 /]# ls -ld /boot
[root@1906 /]# ls -A /root #顯示目錄的所有內容,包括隱藏數據
[root@1906 /]# ls -A /boot
[root@1906 /]#
#################################################
使用通配符
• 針對不確定的文檔名稱,以特殊字符表示
– *:任意多個任意字符
– ?:單個字符
[root@1906 /]# ls /boot/vm* #在/boot目錄顯示vm開頭的數據
[root@1906 /]# ls /dev/tty* #顯示tty開頭的數據
[root@1906 /]# ls /etc/tab #以tab作爲結尾的數據
[root@1906 /]# ls /etc/.conf #以.conf作爲結尾的數據
[root@1906 /]# ls /dev/tty?
[root@1906 /]# ls /dev/tty??
[root@1906 /]# ls /dev/tty???
[root@1906 /]# ls /etc/??tab
• 針對不確定的文檔名稱,以特殊字符表示
– [a-z]:多個字符或連續範圍中的一個,若無則忽略
– {a,min,xy}:多組不同的字符串,全匹配
[root@1906 /]# ls /dev/tty[3-8]
[root@1906 /]# ls /dev/tty[4-7]
[root@1906 /]# ls /dev/tty{1,21,60}
[root@1906 /]# ls /dev/tty{1,3,5,7,9}
###################################################
別名的定義:簡化複雜的命令
• 查看已設置的別名
– alias [別名名稱]
• 定義新的別名
– alias 別名名稱= ‘實際執行的命令行’
• 取消已設置的別名
– unalias [別名名稱]
[root@1906 /]# hostname
1906.tedu.cn
[root@1906 /]# hn
bash: hn: 未找到命令…
[root@1906 /]# alias hn=‘hostname’ #定義別名
[root@1906 /]# alias #顯示當前系統有效別名
[root@1906 /]# hn #運行hn執行成功
[root@1906 /]# unalias hn #刪除別名
[root@1906 /]# hn
bash: hn: 未找到命令…
###################################################
• mkdir — Make Directory
– 格式:mkdir [-p] [/路徑/]目錄名…
[root@1906 /]# mkdir -p /vod/movie/cartoon
#-p表示連父目錄一起創建
[root@1906 /]# ls -R /vod
[root@1906 /]# mkdir /opt/nsd01
[root@1906 /]# ls /opt/
[root@1906 /]# mkdir -p /opt/aa/bb/cc/dd
[root@1906 /]# ls /opt/
[root@1906 /]# ls -R /opt/aa #-R表示遞歸顯示
查找文本內容
• 根據字符串模式提取文本行
– grep [選項] ‘匹配模式’ 文本文件…
• 常用命令選項
– -v,取反匹配
– -i,忽略大小寫
[root@1906 /]# grep root /etc/passwd
[root@1906 /]# grep -v root /etc/passwd #取反查找
[root@1906 /]# grep ROOT /etc/passwd
[root@1906 /]# grep -i ROOT /etc/passwd #忽略大小寫
– ^word 以字符串word開頭
– word$ 以字符串word結尾
[root@1906 /]# grep ^root /etc/passwd #以root開頭
[root@1906 /]# grep bash$ /etc/passwd #以bash結尾
####################################################
rm 刪除
• rm — Remove
– 格式:rm [選項]… 文件或目錄…
• 常用命令選項
– -r、-f:遞歸刪除(含目錄)、強制刪除
[root@1906 /]# mkdir /opt/nsdtest
[root@1906 /]# touch /opt/1.txt
[root@1906 /]# touch /opt/2.txt
[root@1906 /]# ls /opt/
1.txt 2.txt nsdtest
[root@1906 /]# rm -rf /opt/1.txt #強制刪除所有
[root@1906 /]# rm -rf /opt/2.txt
[root@1906 /]# ls /opt/
[root@1906 /]# rm -rf /opt/nsdtest
[root@1906 /]# ls /opt/
###################################################
mv 移動/改名
• mv — Move
– 格式:mv [選項]… 原文件… 目標路徑
[root@1906 /]# mkdir /opt/nsd
[root@1906 /]# touch /opt/a.txt
[root@1906 /]# ls /opt/
[root@1906 /]# mv /opt/a.txt /opt/nsd
[root@1906 /]# ls /opt/nsd
[root@1906 /]# ls /opt/
重命名:路徑不變的移動
[root@1906 /]# mv /opt/nsd/ /opt/haha
[root@1906 /]# ls /opt/
[root@1906 /]# mv /opt/haha/ /opt/student
[root@1906 /]# ls /opt/
###################################################
cp 複製
• cp — Copy
– 格式:cp [選項]… 原文件… 目標路徑
• 常用命令選項
– -r:遞歸,複製目錄時必須有此選項
/etc:存放系統配置文件
/opt:用戶可選擇目錄
[root@1906 /]# cp /etc/passwd /opt/
[root@1906 /]# ls /opt/
[root@1906 /]# cp -r /home /opt/
[root@1906 /]# ls /opt/
[root@1906 /]# cp -r /etc/fstab /opt/
[root@1906 /]# ls /opt/
複製可以支持多個參數:永遠把最後一個參數作爲目標,其他的所有參數都作爲源
]# cp -r /boot/ /etc/shadow /etc/resolv.conf /etc/hosts /opt/
]# ls /opt/
複製經常與點連用: . 表示當前路徑
[root@1906 /]# cd /opt/
[root@1906 opt]# pwd
[root@1906 opt]# ls
[root@1906 opt]# cp /etc/shells .
[root@1906 opt]# ls
[root@1906 /]# cd /etc/sysconfig/network-scripts/
[root@1906 network-scripts]# pwd
[root@1906 network-scripts]# cp /etc/passwd .
[root@1906 network-scripts]# ls
複製出現重名:在本次操作臨時取消別名
[root@1906 /]# ls /opt/
[root@1906 /]# cp -r /boot/ /opt/
[root@1906 /]# \cp -r /boot/ /opt/ #本次操作臨時取消別名
複製:可以重新命名,目標路徑下數據
[root@1906 /]# cp /etc/passwd /opt/pa.txt
[root@1906 /]# ls /opt/
[root@1906 /]# cp -r /boot/ /opt/abc
[root@1906 /]# ls /opt/
以下兩次複製有何不同?
]# rm -rf /opt/* #刪除/opt目錄下所有內容
]# cp -r /home/ /opt/test
#將/home目錄複製到/opt目錄下重命名爲test
]# cp -r /home/ /opt/test
#將/home目錄複製到/opt/test目錄下
[root@1906 /]# ls /opt/
[root@1906 /]# ls /opt/test/
#####################################################