Linux實驗三: shell 編程(1)
- hell 命令應用練習
① /etc/passwd ‘
etc/passwd 為每個用戶賬戶包含一行,包含使用冒號 (“:”)分隔的七個字段,分別是:登錄名,選的加密後的密碼,字用戶ID ,字組 ID ,戶名和註釋字段, 用戶主目錄,可選的用戶命令解釋器
② /etc/shadow
shadow是一個文件,它包含系統賬戶的密碼信息和可選的年齡信息。 如果沒有維護好密碼安全,此文件絕對不能讓普通用戶可讀。
③ /etc/group
文件是用戶組的配置文件,內容包括用戶和用戶組,並且能顯示出用戶是歸屬哪個用戶組或哪幾個用戶組,因為一個用戶可以歸屬一個或多個不同的用戶組;同一用戶組的用戶之間具有相似的特征。
④ /etc/gshadow 、
/etc/gshadow 包含影子化了的組賬戶信息。如果沒有維護好密碼安全,此文件絕對不能讓普通用戶可讀。
(2)依次輸入如下命令,觀察運行結果。結合 man id 查看到的幫助信息,指出每一條 命令功能
① Id 顯示真實有效的用戶ID(UID)和組ID(GID)
② id -u 顯示用戶id
③ id -u root 顯示root用戶id
④ id -u Jiang 顯示jiang的id
(3)在 shell 命令終端依次輸入以下命令,觀察執行結果,理解每條命令實現的具體功能
① which python which命令的作用是,在PATH變量指定的路徑中,搜索某個系統命令的位置,並且返回第一個搜索結果。
whereis python查看文件的位置
locate python 配合數據庫查看文件位置
find/usr/bin -name python 實際搜尋硬盤查詢文件名稱
③ grep -n -E ‘root|jiang|^user*‘ /etc/passwd
在/etc/passwd 中查找以root或者jiang開頭的行
grep -n -E ‘ [[:digit:]] ‘ /etc/passwd
在/etc/passwd 中查找含有的數字
grep -n -E ‘ [[:alpha:]] ‘ /etc/passwd
在/etc/passwd 中查找含有的字母
grep -n ‘[0-9]\{4,\}‘ /etc/group (提示: 在用戶組文件中查找 GID 是 4
sudo apt install gimp:安裝gimp軟件
which gimp查找gimp 的位置
sudo apt remove gimp 卸載gimp
which gimp 再查找gimp的位置,找不到
④ ls -dl /root --time-style=long-iso
ls -dl /root --time-style=long-iso | cut -d‘ ‘ -f1,8
⑤ ls -l --time-style=long-iso
將文件的時間按long-ios的形式進行列出
ls -l --time-style=long-iso -t
將文件按時間的修改時間順序列出
ls -l --time-style=long-iso -t -r
按上面的時間逆序排列
⑥ ls /usr/share/man 查看該目錄
ls /usr/share/man | grep man[1-8] 搜索該目錄下是否有man1-8
ls /usr/share/man/man1 查看man1目錄
file /usr/share/man/man1/ls.1.gz 查看該文件信息
mkdir ~/temp; cp /usr/share/man/man1/ls.1.gz ~/temp 創建一個temp的目錄,將ls.1.gz復制到該目錄下
cd ~/temp; ls 轉到temp目錄下並查看
sudo gzip -d ls.1.gz; ls 解壓並查看文件目錄
⑦ ls –l /home | grep "^d" | wc –l
⑧ sudo adduser user7 創建user用戶
ls /home | tee users | wc –l 查找用戶並統計數目
(4)根據要求寫出相應的 shell 命令 ① 在目錄/usr/include 下搜索文件 signal.h 是否存在
② 在/usr/include 目錄下的所有文件中查找包含 BUFSIZ 的行,並顯示所在行號。 要求:屏幕上只顯示查找到的結果,過濾錯誤信息。
③ 在用戶名密碼文件/etc/passwd 中查找登錄 shell 為 bash 的用戶信息記錄,並顯 示行號
④ 從/etc/group 文件中截取第 1 列(組名)和第 3 列(組 id),並按照組 id 號的數 值大小由小到大排序。(提示:綜合使用 cut, 管道線及 sort 命令)
(5)體驗 awk, sed 用法:依次執行命令,觀察執行結果
① cp /etc/apt/sources.list t1; less t1
② sed -e "s/#.*//g" t1
③ sed -e "s/#.*//g" t1 | awk ‘{if (length != 0) print $0}‘
④ tail -5 /etc/passwd | awk -F: ‘{print $1}‘
⑤ tail -5 /etc/group | tee t2
awk ‘BEGIN{print "file t2"} {print "line" NR ":" $0} END {print "over"}‘ t2
(6)查閱網絡或幫助,體驗命令 curl 和 wget 用法。
① 命令工具 curl 功能,截圖顯示自己嘗試的練習,並作必要陳述說明
② 命令工具 wget 功能,截圖顯示自己嘗試的練習,並作必要陳述說明
(1) 練習 1
(2) 練習2
Linux實驗三: shell 編程(1)