一.實驗內容python
(3)在 shell 命令終端依次輸入如下命令,觀察執行結果,理解每條命令實現的具體功
能
① which python 查看可執行文件的位置
whereis python 查看文件的位置
locate python 配合數據庫查看文件位置
find /usr/bin -name python 實際搜尋硬盤查詢文件名稱
(說明: which, whereis, locate, find 都具備檢索的功能,結合執行結果,查找幫 助信息,總結其區別)linux
② grep -n -E 'root|kyo|^user*' /etc/passwd (提示:擴展正則表達式)
grep -n -E ' [[:digit:]] ' /etc/passwd
grep -n -E ' [[:alpha:]] ' /etc/passwd
grep -n '[0-9]{4,}' /etc/group (提示: 在用戶組文件中查找 GID 是 4 位數 及以上的組信息記錄)
(說明:帶選項-E的表示擴展的正則表達式;不帶選項-E的是普通的正則表達式)
[:digit:] 匹配任意一個數字字符
[:alpha:] 匹配任意一個字母字符(包括大小寫字母)
③sudo apt install gimp:安裝軟件gimp
which gimp:查詢gimp的位置
sudo apt remove gimp:卸載gimp
which gimp:查詢gimp的位置,此時已經沒有查詢結果
④ls -dl /root --time-style=long-iso:/root下顯示文件目錄信息,詳細信息,時間按完整的IOS時間格式顯示
ls -dl /root --time-style=long-iso | cut -d' ' -f1,8:以空格爲分隔符,截取上一條指令中的第一和第八個域
(說明:cut命令的選項-d後引導裏有空格;提示:和前一行對比視察)
git
⑤ ls -l --time-style=long-iso,:ls -l 是列出文件的詳細信息,時間設置爲long-iso格式,默認排序
ls -l --time-style=long-iso -t:在前一條命令的基礎上按時間由近到遠排序
ls -l --time-style=long-iso -t -r:在前一條命令的基礎上按時間排序,但變爲由遠到近排序
⑥ ls /usr/share/man:顯示/usr/share/man下的目錄
ls /usr/share/man | grep man[1-8]:在上一條命令的基礎上搜索man1~man8
ls /usr/share/man/man1:顯示/usr/share/man/man1下的目錄
file /usr/share/man/man1/ls.1.gz (結合執行結果,review2.8.1 節 gzip命令內容)
mkdir ~/temp; cp /usr/share/man/man1/ls.1.gz ~/temp:根目錄下建立temp
文件夾,把ls.1.gz複製到temp下
cd ~/temp; ls:轉到temp目錄下,查看全部文件目錄,此時有後綴.gz
sudo gzip -d ls.1.gz; ls:解壓並查看目錄,此時.gz消失,說明已經解壓並刪除了壓縮包
正則表達式
⑦
統計home目錄下以d開頭的檔的行數
⑧
添加用戶
統計home目錄下的用戶行數
(4)根據要求寫出相應的shell命令
① 在目錄/usr/include 下搜索檔 signal.h 是否存在
② 在/usr/include 目錄下的全部檔中查找包含 BUFSIZ 的行,並顯示所在行號。
③ 在用戶名密碼檔/etc/passwd 中查找登陸 shell 爲 bash 的用戶信息記錄,並顯示行號
④ 從/etc/group 檔中截取第 1 列(組名)和第 3 列(組 id),並按照組 id 號的數值大小由小到大排序。
(5)
① 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
3.編寫個shell腳本並用四種方式分別執行
(1)方式1: bash < filename
方式2: bash filename [ arguments ]
方式3: filename
方式4: . filename
shell
(2)
三.總結
這次試驗瞭解到了編輯命令時缺乏或者多出一個空格會形成大相徑庭的結果,讓我明白了編寫代碼時要十分細心,不可粗枝大葉。另外在練習2中沒有找到major_code文件,對此不明因此,但願往後學習能夠解決。數據庫