1、學習教材
2、Linux Shell 簡介
Linux shell指的是一種程序,有了它,用戶就能通過鍵盤輸入指令來操作計算機了。Shell會執行用戶輸入的命令,並且在顯示器上顯示執行結果。這種交互的全過程都是基於文本的,與其他各章介紹的圖形化操作不同。這種面向命令行的用戶界面被稱為CLI(Command Line interface)。在圖形化用戶界面(GUI)出現之前,人們一直是通過命令行界面來操作計算機的。現在,基於圖形界面的工具越來越多,許多工作都不必使用Shell就可以完成了。然而,專業的Linux用戶認為Shell是一個非常有用的工具,學習Linux時一定要學習Shell,至少要掌握一些基礎知識和基本的命令。
3、常用命令
3.1 文件與目錄操作命令
命令 | 解析 |
---|---|
cd /home | 進入 ‘/home’ 目錄 |
cd .. | 返回上一級目錄 |
cd ../.. | 返回上兩級目錄 |
cd - | 返回上次所在目錄 |
cp file1 file2 | 將file1復制為file2 |
cp -a dir1 dir2 | 復制一個目錄 |
cp -a /tmp/dir1 . | 復制一個目錄到當前工作目錄(.代表當前目錄) |
ls | 查看目錄中的文件 |
ls -a | 顯示隱藏文件 |
ls -l | 顯示詳細信息 |
ls -lrt | 按時間顯示文件(l表示詳細列表,r表示反向排序,t表示按時間排序) |
pwd | 顯示工作路徑 |
mkdir dir1 | 創建 ‘dir1’ 目錄 |
mkdir dir1 dir2 | 同時創建兩個目錄 |
mkdir -p /tmp/dir1/dir2 | 創建一個目錄樹 |
mv dir1 dir2 | 移動/重命名一個目錄 |
rm -f file1 | 刪除 ‘file1’ |
rm -rf dir1 | 刪除 ‘dir1’ 目錄及其子目錄內容 |
3.2 文件內容查看命令
命令 | 解析 |
---|---|
cat file1 | 從第一個字節開始正向查看文件的內容 |
head -2 file1 | 查看一個文件的前兩行 |
more file1 | 查看一個長文件的內容 |
tac file1 | 從最后一行開始反向查看一個文件的內容 |
tail -3 file1 | 查看一個文件的最后三行 |
vi file | 打開並瀏覽文件 |
3.3 文件內容處理命令
命令 | 解析 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
grep str /tmp/test | 在文件 ‘/tmp/test’ 中查找 “str” | ||||||||||||
grep ^str /tmp/test | 在文件 ‘/tmp/test’ 中查找以 “str” 開始的行 | ||||||||||||
grep [0-9] /tmp/test | 查找 ‘/tmp/test’ 文件中所有包含數字的行 | ||||||||||||
grep str -r /tmp/* | 在目錄 ‘/tmp’ 及其子目錄中查找 “str” | ||||||||||||
diff file1 file2 | 找出兩個文件的不同處 | ||||||||||||
sdiff file1 file2 | 以對比的方式顯示兩個文件的不同 | ||||||||||||
vi file |
|
3.4 查詢操作
命令 | 解析 |
---|---|
find / -name file1 | 從 ‘/’ 開始進入根文件系統查找文件和目錄 |
find / -user user1 | 查找屬於用戶 ‘user1’ 的文件和目錄 |
find /home/user1 -name *.bin | 在目錄 ‘/ home/user1’ 中查找以 ‘.bin’ 結尾的文件 |
find /usr/bin -type f -atime +100 | 查找在過去100天內未被使用過的執行文件 |
find /usr/bin -type f -mtime -10 | 查找在10天內被創建或者修改過的文件 |
locate *.ps | 尋找以 ‘.ps’ 結尾的文件,先運行 ‘updatedb’ 命令 |
find -name ‘*.[ch]’ | xargs grep -E ‘expr’ | 在當前目錄及其子目錄所有.c和.h文件中查找 ‘expr’ |
find -type f -print0 | xargs -r0 grep -F ‘expr’ | 在當前目錄及其子目錄的常規文件中查找 ‘expr’ |
find -maxdepth 1 -type f | xargs grep -F ‘expr’ | 在當前目錄中查找 ‘expr’ |
3.5 壓縮、解壓
命令 | 解析 |
---|---|
bzip2 file1 | 壓縮 file1 |
bunzip2 file1.bz2 | 解壓 file1.bz2 |
gzip file1 | 壓縮 file1 |
gzip -9 file1 | 最大程度壓縮 file1 |
gunzip file1.gz | 解壓 file1.gz |
tar -cvf archive.tar file1 | 把file1打包成 archive.tar(-c: 建立壓縮檔案;-v: 顯示所有過程;-f: 使用檔案名字,是必須的,是最后一個參數) |
tar -cvf archive.tar file1 dir1 | 把 file1,dir1 打包成 archive.tar |
tar -tf archive.tar | 顯示一個包中的內容 |
tar -xvf archive.tar | 釋放一個包 |
tar -xvf archive.tar -C /tmp | 把壓縮包釋放到 /tmp目錄下 |
zip file1.zip file1 | 創建一個zip格式的壓縮包 |
zip -r file1.zip file1 dir1 | 把文件和目錄壓縮成一個zip格式的壓縮包 |
unzip file1.zip | 解壓一個zip格式的壓縮包到當前目錄 |
unzip test.zip -d /tmp/ | 解壓一個zip格式的壓縮包到 /tmp 目錄 |
3.6 軟件包管理
3.6.1 RPM命令使用
rpm命令是RPM軟件包的管理工具。rpm原本是Red Hat Linux發行版專門用來管理Linux各項套件的程序,由於它遵循GPL規則且功能強大方便,因而廣受歡迎。逐漸受到其他發行版的采用。RPM套件管理方式的出現,讓Linux易於安裝,升級,間接提升了Linux的適用度。
命令 | 解析 |
---|---|
rpm [OPTIONS] PACHAGE_FILE | 命令格式 |
rpm -ivh your-package | 直接安裝 |
rpmrpm --force -ivh your-package.rpm | 忽略報錯,強制安裝 |
rpm -ql | 查詢出所有安裝過的包 |
rpm -q 包名 | 獲得某個軟件包的全名 |
rpm -ql 包名 | 獲得rpm包中文件安裝的位置 |
rpm -e 包名 | 卸載 |
3.6.2 YUM命令
Yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE、CentOS中的Shell前端軟件包管理器。基於rpm包管理,能夠從指定的服務器自動下載rpm包並且安裝,可以自動處理依賴性關系,並且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。
命令 | 解析 |
---|---|
yum -y install [package] | 下載並安裝一個rpm包 |
yum localinstall [package.rpm] | 安裝一個rpm包,使用你自己的軟件倉庫解決所有依賴關系 |
yum -y update | 更新當前系統中安裝的所有rpm包 |
yum update [package] | 更新一個rpm包 |
yum remove [package] | 刪除一個rpm包 |
yum list | 列出當前系統中安裝的所有包 |
yum search [package] | 在rpm倉庫中搜尋軟件包 |
yum clean [package] | 清除緩存目錄(/var/cache/yum)下的軟件包 |
yum clean headers | 刪除所有頭文件 |
yum clean all | 刪除所有緩存的包和頭文件 |
3.7 網絡相關
命令 | 解析 |
---|---|
ifconfig eth0 | 顯示一個以太網卡的配置 |
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 | 配置網卡的IP地址 |
ifdown eth0 | 禁用 ‘eth0’ 網絡設備 |
ifup eth0 | 啟用 ‘eth0’ 網絡設備 |
iwconfig eth1 | 顯示一個無線網卡的配置 |
iwlist scan | 顯示無線網絡 |
ip addr show | 顯示網卡的IP地址 |
3.7.1 網絡服務
-
#查看IP信息
-
ip a
-
#網絡連通性測試
-
ping [選項] 目標主機
-
#設置網絡信息
-
vi /etc/sysconfig/network-scripts/ifcfg-ens33
-
#重啟network網絡服務
-
service network restart
3.7.2 防火牆設置
-
#查看防火牆狀態
-
systemctl status firewalld
-
#打開防火牆
-
systemctl start firewalld
-
#關閉防火牆
-
systemctl stop firewalld
-
#禁止開機啟動
-
systemctl disable firewalld
3.7.3 主機映射文件
-
#修改主機名與IP映射關系
-
vi /etc/hosts
3.8 系統相關
命令 | 解析 |
---|---|
su - | 切換到root權限(與su有區別) |
shutdown -h now | 關機 |
shutdown -r now | 重啟 |
top | 羅列使用CPU資源最多的linux任務 (輸入q退出) |
pstree | 以樹狀圖顯示程序 |
man ping | 查看參考手冊(例如ping 命令) |
passwd | 修改密碼 |
df -h | 顯示磁盤的使用情況 |
cal -3 | 顯示前一個月,當前月以及下一個月的月歷 |
cal 10 1988 | 顯示指定月,年的月歷 |
date –date ‘1970-01-01 UTC 1427888888 seconds’ | 把一相對於1970-01-01 00:00的秒數轉換成時間 |
3.8.1 重啟命令
-
#立刻重啟(root用戶使用)
-
reboot
-
shutdown -r now
-
#10分鍾后自動重啟(root用戶使用)
-
shutdown -r 10
-
#在時間為20:35時候重啟(root用戶使用)
-
shutdown -r 20: 35
-
#如果是通過shutdown命令設置重啟的話,可以取消重啟
-
shutdown -c
3.8.2 關機命令
-
#立刻關機(root用戶使用)
-
halt
-
poweroff
-
shutdown -h now
-
init 0
-
#10分鍾后自動關機
-
shutdown -h 10
3.8.3 hostname命令
-
#查看主機名
-
hostname
-
#設置主機名-臨時修改
-
hostname 主機名
-
#設置主機名-永久修改
-
vi /etc/hostname
4、常用技巧
4.1 窗體快捷鍵
命令 | 解析 |
---|---|
Ctrl + u | 刪除光標之前到行首的字符 |
Ctrl + k | 刪除光標之前到行尾的字符 |
Ctrl + c | 取消當前行輸入的命令,相當於Ctrl + Break |
Ctrl + a | 光標移動到行首(ahead of line),相當於通常的Home鍵 |
Ctrl + e | 光標移動到行尾(end of line) |
Ctrl + f | 光標向前(forward)移動一個字符位置 |
Ctrl + b | 光標往回(backward)移動一個字符位置 |
Ctrl + l | 清屏,相當於執行clear命令 |
Ctrl + r | 顯示:號提示,根據用戶輸入查找相關歷史命令(reverse-i-search) |
Ctrl + w | 刪除從光標位置前到當前所處單詞(word)的開頭 |
Ctrl + t | 交換光標位置前的兩個字符 |
Ctrl + y | 粘貼最后一次被刪除的單詞 |
Ctrl + Alt + d | 顯示桌面 |
Alt + b | 光標往回(backward)移動到前一個單詞 |
Alt + d | 刪除從光標位置到當前所處單詞的末尾 |
Alt + F2 | 運行 |
Alt + F4 | 關閉當前窗口 |
Alt + F9 | 最小化當前窗口 |
Alt + F10 | 最大化當前窗口 |
Alt + Tab | 切換窗口 |
Alt + 左鍵 | 移動窗口(或在最下面的任務欄滾動鼠標滑輪) |
4.2 操作小技巧
鼠標中間鍵:粘貼突出顯示的文本。(使用鼠標左鍵來選擇文本。把光標指向想粘貼文本的地方。點擊鼠標中間鍵來粘貼。)
Tab:命令行自動補全。使用 shell 提示時可使用這一方式。鍵入命令或文件名的前幾個字符,然后按 [Tab] 鍵,它會自動補全命令或顯示匹配鍵入字符的所有命令。
在滾動條的空白處點擊鼠標中鍵:屏幕即滾動到那個地方。
在桌面或文件管理器中直接按 / 就可以輸入位置,打開文件管理器。
在 vi 或 Firefox 中直接按 / 即可進入快速搜索狀態。
網站鏈接和圖片可直接拖放到桌面或者目錄,可以馬上下載。
直接將文件管理器中的文件拖到終端中就可以在終端中得到完整的路徑名。
參考博客:
centos7常用命令與環境安裝:https://blog.csdn.net/anthony_ju/article/details/82078362#_16
CentOS軟件的安裝,更新與卸載命令:https://blog.csdn.net/lxj434368832/article/details/68941753
CentOS 7常用基本命令整理:https://blog.csdn.net/u010993514/article/details/83188197
CentOS 7 常用命令大全:https://blog.csdn.net/qq_40087415/article/details/79367151
Linux rpm命令詳解:https://www.cnblogs.com/ftl1012/p/rpm.html