一、Linux命令行基礎
• Linux命令
– 用來實現某一類功能的指令或程序
在Linux中執行大多數命令時,都要找到命令所對應的程序
]# hostname
]# which hostname #查詢命令對應的程序
]# ls /usr/bin/hostname
]# /usr/bin/hostname
– 命令的執行依賴于解釋器(默認解釋器/bin/bash)
用戶--->解釋器(shell)--->内核--->硬件
綠色:可以執行的程序
shell:殼,解釋器
• 命令行完整格式:
– 命令字 [選項]… [參數1] [參數2]…
]# cat --help #查看命令幫助信息
]# cat -n /etc/shells #顯示行号
]# cat -n /etc/passwd
]# cat -n /etc/redhat-release
]# cat -n /etc/fstab
]# ls -l /etc/passwd #長格式顯示
]# ls -l /etc/fstab #顯示詳細屬性
]# ls -l /etc/shells
]# ls -l /root/ #默認顯示目錄内容的詳細屬性
• Tab鍵自動補全
– 可補齊命令字、選項、參數、文件路徑、軟件名、服務名
]# if(tab) (tab) #列出以if開頭的命令
]# ifco(tab)
]# cat /etc/re(tab) (tab)
]# cat /etc/red(tab)
]# ls /etc/sysconfig/network-scripts/
]# ls /et(tab)/sysco(tab)/netw(tab)- (tab)
• 快捷鍵
– Ctrl c:結束正在運行的命令
– Esc .或Alt .:粘貼上一個命令的參數
[root@localhost ~]# ls /etc/shells
[root@localhost ~]# ls -l Alt .
[root@localhost ~]# cat Alt .
[root@localhost ~]# cat -n Alt .
– Ctrl l:清空整個屏幕
– Ctrl u:從光标處清空至行首
– Ctrl w:往回删除一部分(以空格界定)
利用虛拟光驅設備進行讀取光盤鏡像文件
Linux的光驅設備(一切皆文件)
[root@nb ~]# ls /dev/cdrom
[root@nb ~]# ls -l /dev/cdrom
Windows顯示光盤内容:
光盤---->光驅設備---->DVD驅動器(訪問點)
Linux顯示光盤内容:
光盤---->光驅設備---->訪問點(目錄)
/dev/cdrom
二、mount挂載操作:讓目錄成為設備的訪問點
命令行顯示光盤内容
Windows:
光盤--->光驅設備--->CD驅動器(圖标)
Linux:
光盤--->光驅設備--->訪問點(目錄)
Linux:将光盤鏡像文件放入虛拟光驅設備中
Windows:将光盤鏡像文件放入虛拟光驅設備中
2.查看Linux光驅設備
[root@localhost ~]# ls -l /dev/cdrom
[root@localhost ~]# ls /dev/sr0
3.挂載操作
• 使用mount命令
– 格式:mount 設備路徑 挂載點目錄
[root@localhost ~]# mkdir /dvd
[root@localhost ~]# ls /dvd
[root@localhost ~]# mount /dev/cdrom /dvd
mount: /dev/sr0 寫保護,将以隻讀方式挂載
[root@localhost ~]# ls /dvd/
[root@localhost ~]# ls /dvd/P(tab)
4.卸載操作
[root@localhost ~]# umount /dvd
[root@localhost ~]# ls /dvd/
[root@localhost ~]# mkdir /mydvd
[root@localhost ~]# mount /dev/cdrom /mydvd
mount: /dev/sr0 寫保護,将以隻讀方式挂載
[root@localhost ~]# ls /mydvd
注意事項:
1.卸載:當前所在的路徑是挂載點目錄
[root@localhost mydvd]# umount /mydvd
umount: /mydvd:目标忙。
(有些情況下通過 lsof(8) 或 fuser(1) 可以
找到有關使用該設備的進程的有用信息)
2.挂載允許一個設備,挂載到不同的挂載點目錄
3.挂載不允許一個挂載點目錄,挂載多個設備
4.建議挂載點目錄,最好自行創建
三、目錄與文件管理
u cd的命令使用
. 當前目錄
.. 父目錄(上一層)
~:表示家目錄
家目錄:專門存放用戶個性化信息的目錄
~user:用戶user的家目錄
/root:是Linux管理員的家目錄
/home:存放所有普通用戶的家目錄
]# cd ~root #去往root用戶的家目錄
]# pwd
]# cd ~lisi #去往lisi用戶的家目錄
]# pwd
]# useradd dc #創建用戶dc
]# cd ~dc #去往dc用戶的家目錄
]# pwd
]# useradd tom #創建用戶tom
]# cd ~tom #去往tom用戶的家目錄
]# pwd
• ls — List
– 格式:ls [選項]... [目錄或文件名]
• 常用命令選項
– -l:以長格式顯示,顯示詳細信息
– -h:提供易讀的容量單位(K、M等)
– -d:顯示目錄本身(而不是内容)的屬性
– -A:顯示所有内容包含隐藏數據
[root@localhost /]# ls -ld /home
[root@localhost /]# ls -ld /root
[root@localhost /]# ls -ld /
[root@localhost /]# ls -l /etc/passwd
[root@localhost /]# ls -lh /etc/passwd
[root@localhost /]# ls -A /root
– -R:遞歸顯示内容
[root@localhost /]# ls -A /root
[root@localhost /]# touch /opt/.nsd.txt
[root@localhost /]# ls /opt/
[root@localhost /]# ls -A /opt/
[root@localhost /]# ls -R /opt/
u 使用通配符
• 針對不确定的文檔名稱,以特殊字符表示
– *:任意多個任意字符
– ?:單個字符
[root@localhost /]# ls /root/a*
[root@localhost /]# ls /boot/vm*
[root@localhost /]# ls /etc/*tab
[root@localhost /]# ls /etc/*.conf
[root@localhost /]# ls /etc/r*.conf
[root@localhost /]# ls /dev/tty*
[root@nb ~]# ls /etc/??tab
[root@nb ~]# ls /dev/tty?
[root@nb ~]# ls /dev/tty??
[root@nb ~]# ls /etc/r??
– [a-z]:多個字符或連續範圍中的一個,若無則忽略
– {a,min,xy}:多組不同的字符串,全匹配
[root@localhost /]# ls /dev/tty[3-9]
[root@localhost /]# ls /dev/tty[1-7]
[root@localhost /]# ls /dev/tty{1,17,20}
[root@localhost /]# ls /dev/tty{10,18,22,33}
[root@localhost /]# ls /dev/tty{26,19,21,30,40}
補充内容:顯示/dev/tty10到/dev/tty20
[root@nb ~]# ls /dev/tty{1[0-9],20}
u 别名的定義:簡化複雜的命令
• 查看已設置的别名
– alias [别名名稱]
• 定義新的别名
– alias 别名名稱= '實際執行的命令行'
• 取消已設置的别名
– unalias [别名名稱]
]# hostname
]# alias hn='hostname' #定義别名
]# hn
]# alias #查看系統中有哪些别名
]# unalias hn #删除hn别名
]# hn
bash: hn: 未找到命令...
]# alias myls='ls -ld'
]# myls /etc/
• mkdir — Make Directory
– 格式:mkdir [/路徑/]目錄名…
[-p]:連同父目錄一并創建
[root@localhost /]# mkdir -p /opt/aa/bb/cc/dd
[root@localhost /]# ls -R /opt/aa
[root@localhost /]# mkdir -p /nsd04/test04
[root@localhost /]# ls -R /nsd04
u rm 删除
• rm — Remove
– 格式:rm [選項]... 文件或目錄…
• 常用命令選項
– -r、-f:遞歸删除(含目錄)、強制删除
[root@localhost /]# rm -rf /opt/1.txt
[root@localhost /]# rm -rf /opt/aa
u mv — Move移動:源數據會消失
– 格式:mv 原文件… 目标路徑
[root@localhost /]# rm -rf /opt/*
[root@localhost /]# mkdir /opt/nsd01
[root@localhost /]# touch /opt/1.txt
[root@localhost /]# ls /opt/
[root@localhost/]# mv /opt/1.txt /opt/nsd01
[root@localhost /]# ls /opt/
[root@localhost /]# ls /opt/nsd01/
重命名:路徑不變的移動
]# ls /opt/
]# mv /opt/nsd01 /opt/abc
]# ls /opt/
]# mv /opt/abc/ /opt/student
]# ls /opt/
]# mv /opt/student /mnt/stu01
]# ls /mnt/
u cp — Copy:源數據不會消失
– 格式:cp [選項]... 原文件… 目标路徑
• 常用命令選項
– -r:遞歸,複制目錄時必須有此選項
[root@localhost /]# cp /etc/passwd /opt/
[root@localhost /]# ls /opt/
[root@localhost /]# cp -r /boot/ /opt/
[root@localhost /]# ls /opt/
[root@localhost /]# cp -r /home/ /opt/
[root@localhost /]# ls /opt/
l 重名進行強制覆蓋
]# \cp -r /boot/ /opt/ #本次操作臨時取消别名
]# \cp -r /boot/ /opt/ #本次操作臨時取消别名
l 複制可以支持重新命名,目标路徑下數據的名稱
]# cp -r /home/ /opt/myhome
]# ls /opt/
]# cp /etc/redhat-release /opt/r.txt
]# ls /opt/
]# cp -r /root/ /opt/myroot
]# ls /opt/
]# cp -r /root/ /opt/myroot
]# ls /opt/myroot/
l 複制可以支持兩個以上的參數,永遠把最後一個參數作為目标,其他的所有的參數都作為源數據
]# mkdir /nsd05
]# cp -r /home/ /etc/passwd /boot/ /etc/shells /nsd05
]# ls /nsd05
l 複制與一個點進行連用,将數據複制到當前路徑下
]# cd /etc/sysconfig/network-scripts/
]# pwd
]# cp /etc/passwd .
]# ls
u 重定向操作(重新定向命令的輸出)
作用:将前面命令輸出,寫入到後面文本文件中,作為文本文件的内容
覆蓋重定向:>
追加重定向:>>
]# head -2 /etc/passwd
]# head -2 /etc/passwd > /opt/aa.txt
]# cat /opt/aa.txt
]# hostname
]# hostname > /opt/aa.txt
]# cat /opt/aa.txt
]# head -2 /etc/passwd >> /opt/aa.txt
]# cat /opt/aa.txt
]# > /opt/aa.txt #清空文件内容
]# cat /opt/aa.txt
]# echo 123456 > /opt/aa.txt
]# cat /opt/aa.txt
]# echo hahaxixi >> /opt/aa.txt
]# cat /opt/aa.txt
u 管道操作 |
作用:将前面命令的輸出,傳遞給後面命令,作為後面命令的參數,繼續處理
]# head -2 /etc/passwd
]# head -2 /etc/passwd | tail -1
顯示文件的第二行
]# head -2 /etc/passwd | tail -1 | cat -n
顯示文件的第三行
]# cat -n /etc/passwd | head -3 | tail -1
顯示文件的8到12行内容
]# cat -n /etc/passwd | head -12 | tail -5
]# ifconfig | head -2
]# echo 1 1 | bc #計算1 1
]# echo 2 3 | bc
u 在文本文件中過濾,包含指定字符串的行
– grep [選項] '字符串' 文本文件...
• 常用命令選項
-v,取反匹配(不要包含指定字符串的行)
-i,忽略大小寫
]# grep root /etc/passwd
]# grep -v root /etc/passwd
]# grep ROOT /etc/passwd
]# grep -i ROOT /etc/passwd
^word 以字符串word開頭
word$ 以字符串word結尾
]# grep ^root /etc/passwd
]# grep ^bin /etc/passwd
]# grep root$ /etc/passwd
]# grep bash$ /etc/passwd
^$ 匹配空行
]# cat /etc/default/useradd
]# grep -v ^$ /etc/default/useradd
Linux中大多數配置文件内容,以#開頭的行為注釋行
]# cat /etc/login.defs
]# grep -v ^# /etc/login.defs
顯示文件的有效信息(去掉以#開頭的注釋行并且去掉空行)
]# grep -v ^# /etc/login.defs | grep -v ^$
]# grep -v ^# /etc/login.defs | grep -v ^$ > /opt/bb.txt
]# cat /opt/bb.txt
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!