- 課上測試
- 作業題目:Linux命令實踐
- 學習Linux核心命令
- 作業要求(9‘)
- 作業內容
- 命令演示
- AI提問及驗證(重複命令未列出)
- 總結
- 高頻命令自主學習
- 重要命令推薦
- 深入學習命令示例
- echo
- od
- bc
- 總結
- 作業提交要求 (1')
- 作業題目:Linux命令實踐
課上測試
作業題目:Linux命令實踐
學習Linux核心命令
- ls
- who
- pwd
- cd
- man
- whereis
- which
- find
- locate
- grep
作業要求(9‘)
- 參考課件,針對上面核心命令重複老師的演示內容(3’)
- 選擇自己習慣的 AI 工具, 針對上面核心命令,讓 AI 給自己生成至少例子,然後自己進行驗證,總結(3’)
- 讓 AI工具推薦一些重要命令,然後選擇自己認為會高頻應用的至少 3個命令(重點推薦 echo,od,sort,bc,ls)進行自主深入學習,每個命令不少於 5 個例子,提交驗證,實踐過程和總結(3’)
作業內容
命令演示
- ls
~$ ls
公共的 模板 影片 圖片 文件 下載 音樂 桌面 GmSSL snap
~$ ls -l
總計 40
drwxr-xr-x 2 li li 4096 9月 2 14:08 公共的
drwxr-xr-x 2 li li 4096 9月 2 14:08 模板
drwxr-xr-x 2 li li 4096 9月 2 14:08 影片
drwxr-xr-x 2 li li 4096 9月 2 14:08 圖片
drwxr-xr-x 2 li li 4096 9月 2 14:08 文件
drwxr-xr-x 2 li li 4096 9月 2 14:08 下載
drwxr-xr-x 2 li li 4096 9月 2 14:08 音樂
drwxr-xr-x 2 li li 4096 9月 2 14:08 桌面
drwxrwxr-x 3 li li 4096 9月 6 21:50 GmSSL
drwx------ 4 li li 4096 9月 6 21:08 snap
~$ ls -a
. .lesshst
.. .local
公共的 .profile
模板 snap
影片 .sudo_as_admin_successful
圖片 .vboxclient-clipboard-tty2-control.pid
文件 .vboxclient-clipboard-tty2-service.pid
下載 .vboxclient-draganddrop-tty2-control.pid
音樂 .vboxclient-draganddrop-tty2-service.pid
桌面 .vboxclient-hostversion-tty2-control.pid
.bash_history .vboxclient-seamless-tty2-control.pid
.bash_logout .vboxclient-seamless-tty2-service.pid
.bashrc .vboxclient-vmsvga-session-tty2-control.pid
.cache .vboxclient-vmsvga-session-tty2-service.pid
.config .viminfo
GmSSL
- who
~$ who
li tty2 2024-09-10 11:06 (tty2)
~$ whoami
li
~$ who -a
系統引導 2024-09-10 10:15
執行級別 5 2024-09-10 10:16
li + tty2 2024-09-10 11:06 01:00 2748 (tty2)
pts/1 2024-09-10 11:08 3722 id=ts/1 終止=0 退出=0
- pwd
~$ pwd
/home/li
- cd
~$ cd /
li@li-VirtualBox:/$ ls
bin dev lib libx32 mnt root snap sys var
boot etc lib32 lost+found opt run srv tmp
cdrom home lib64 media proc sbin swapfile usr
/$ cd home
li@li-VirtualBox:/home$
/home$ cd .
li@li-VirtualBox:/home$
/home$ cd ..
li@li-VirtualBox:/$
~/GmSSL$ cd ..
li@li-VirtualBox:~$ cd -
/home/li/GmSSL
li@li-VirtualBox:~/GmSSL$
- man
/$ man man
MAN(1) 手冊分頁顯示工具 MAN(1)
名稱
man - 系統參考手冊的介面
概述
man [man 選項] [[章節] 頁 ...] ...
man -k [apropos 選項] 正規表示式 ...
man -K [man 選項] [章節] 關鍵詞 ...
man -f [whatis 選項] 頁 ...
man -l [man 選項] 檔案 ...
man -w|-W [man 選項] page ...
- whereis
/$ whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
- which
/$ which ls
/usr/bin/ls
- find
~$ find GmSSL
GmSSL
GmSSL/GmSSL-master.zip
GmSSL/GmSSL-master
~$ find 文件 -mtime -1
文件
文件/test.txt
文件/.test.txt.swp
- locate
~$ locate GmSSL
/home/li/GmSSL
/home/li/GmSSL/GmSSL-master
/home/li/GmSSL/GmSSL-master.zip
- grep
~$ grep -nr O_RDWR /usr/include
/usr/include/x86_64-linux-gnu/bits/fcntl-linux.h:45:#define O_RDWR 02
/usr/include/asm-generic/fcntl.h:22:#define O_RDWR 00000002
/usr/include/linux/dma-heap.h:18:/* Valid FD_FLAGS are O_CLOEXEC, O_RDONLY, O_WRONLY, O_RDWR */
/usr/include/scsi/cxlflash_ioctl.h:65: * and O_RDWR flags defined in the fcntl.h header file.
/usr/include/drm/drm.h:839:#define DRM_RDWR O_RDWR
- cheat
~$ cheat ls
# To display everything in <dir>, excluding hidden files:
ls <dir>
# To display everything in <dir>, including hidden files:
ls -a <dir>
# To display all files, along with the size (with unit suffixes) and timestamp:
ls -lh <dir>
# To display files, sorted by size:
ls -S <dir>
# To display directories only:
ls -d */ <dir>
# To display directories only, include hidden:
ls -d .*/ */ <dir>
# To display all files sorted by changed date, most recent first:
ls -ltc
# To display files sorted by create time:
ls -lt
# To display files in a single column:
ls -1
# To show ACLs (MacOS):
# see also `cheat chmod` for `/bin/chmod` options for ACLs
/bin/ls -le
# To show all the subtree files (Recursive Mode):
ls -R
AI提問及驗證(重複命令未列出)
下面我將為您提供這些Linux核心命令的簡要說明以及使用示例。
-
ls
描述:列出目錄內容。
使用示例:
ls # 列出當前目錄下的檔案和目錄
ls -l # 以長格式列出資訊,包括檔案許可權、所有者、大小和最後修改時間
ls -a # 列出所有檔案,包括以點(.)開頭的隱藏檔案
ls -la # 結合-l和-a選項
實踐
~$ ls -la
總計 120
drwxr-x--- 15 li li 4096 9月 10 12:46 .
drwxr-xr-x 3 root root 4096 9月 2 13:50 ..
drwxr-xr-x 2 li li 4096 9月 2 14:08 公共的
drwxr-xr-x 2 li li 4096 9月 2 14:08 模板
drwxr-xr-x 2 li li 4096 9月 2 14:08 影片
drwxr-xr-x 2 li li 4096 9月 2 14:08 圖片
drwxr-xr-x 2 li li 4096 9月 2 14:08 文件
drwxr-xr-x 2 li li 4096 9月 2 14:08 下載
drwxr-xr-x 2 li li 4096 9月 2 14:08 音樂
drwxr-xr-x 2 li li 4096 9月 2 14:08 桌面
-rw------- 1 li li 2431 9月 10 11:31 .bash_history
-rw-r--r-- 1 li li 220 9月 2 13:50 .bash_logout
-rw-r--r-- 1 li li 3771 9月 2 13:50 .bashrc
drwx------ 14 li li 4096 9月 2 17:13 .cache
drwxr-xr-x 15 li li 4096 9月 6 21:41 .config
drwxrwxr-x 3 li li 4096 9月 6 21:50 GmSSL
-rw------- 1 li li 20 9月 10 11:22 .lesshst
drwx------ 3 li li 4096 9月 2 14:08 .local
-rw-r--r-- 1 li li 807 9月 2 13:50 .profile
drwx------ 4 li li 4096 9月 6 21:08 snap
-rw-r--r-- 1 li li 0 9月 2 15:25 .sudo_as_admin_successful
-rw-r----- 1 li li 5 9月 10 12:45 .vboxclient-clipboard-tty2-control.pid
-rw-r----- 1 li li 5 9月 10 12:45 .vboxclient-clipboard-tty2-service.pid
-rw-r----- 1 li li 5 9月 10 12:46 .vboxclient-draganddrop-tty2-control.pid
-rw-r----- 1 li li 5 9月 10 12:46 .vboxclient-draganddrop-tty2-service.pid
-rw-r----- 1 li li 5 9月 10 12:45 .vboxclient-hostversion-tty2-control.pid
-rw-r----- 1 li li 5 9月 10 12:46 .vboxclient-seamless-tty2-control.pid
-rw-r----- 1 li li 5 9月 10 12:46 .vboxclient-seamless-tty2-service.pid
-rw-r----- 1 li li 5 9月 10 12:46 .vboxclient-vmsvga-session-tty2-control.pid
-rw-r----- 1 li li 5 9月 10 12:46 .vboxclient-vmsvga-session-tty2-service.pid
-rw------- 1 li li 858 9月 6 21:36 .viminfo
-
who
描述:顯示當前登入系統的使用者資訊。
使用示例:
who # 顯示當前登入的所有使用者資訊
-
pwd
描述:列印當前工作目錄的絕對路徑。
使用示例:
pwd # 顯示當前工作目錄的路徑
-
cd
描述:更改當前工作目錄。
使用示例:
cd /home/user # 更改到/home/user目錄
cd .. # 更改到上一級目錄
cd - # 切換到上一次所在的目錄
-
man
描述:顯示命令的手冊頁(幫助文件)。
使用示例:
man ls # 顯示ls命令的手冊頁
-
whereis
描述:定位命令的二進位制程式、原始碼和手冊頁的位置。
使用示例:
whereis ls # 顯示ls命令的二進位制、原始碼和手冊頁的位置
-
which
描述:顯示給定命令的絕對路徑。
使用示例:
which ls # 顯示ls命令的絕對路徑
-
find
描述:在目錄樹中搜尋檔案,並執行指定的操作。
使用示例:
find /home -name "*.txt" # 在/home目錄下查詢所有副檔名為.txt的檔案
~/文件$ find /home/li/文件 -name "*.txt"
/home/li/文件/test.txt
-
locate
描述:快速查詢檔案系統中的檔案。使用預先構建的資料庫來查詢檔案,因此比find
快,但可能不是最新的。
使用示例:
locate filename.txt # 查詢所有名為filename.txt的檔案
-
grep
描述:搜尋文字,並將匹配的行列印出來。
使用示例:
grep "error" log.txt # 在log.txt檔案中搜尋包含"error"的行
grep -r "error" /home # 在/home目錄及其子目錄中遞迴搜尋包含"error"的行
~/文件$ grep "123" test2.txt
12346789
~/文件$ grep -r "error" /home
grep: /home/li/GmSSL/GmSSL-master.zip: 匹配到二進位制檔案
/home/li/GmSSL/GmSSL-master/cmake/cert_commands.cmake: message(FATAL_ERROR "generate file error")
/home/li/GmSSL/GmSSL-master/cmake/cert_commands.cmake: message(FATAL_ERROR "generate file error")
...
總結
這些命令是Linux使用者日常工作中非常基礎且強大的工具。掌握它們將極大地提高我在使用Linux系統時的效率和便利性。
高頻命令自主學習
在Linux系統中,有許多重要且常用的命令,這些命令對於日常的系統管理、檔案操作、程式設計開發等任務至關重要。以下是一些重要的命令推薦。
重要命令推薦
ls
:列出目錄內容。cd
:更改當前目錄。pwd
:顯示當前工作目錄的完整路徑。cp
:複製檔案或目錄。mv
:移動或重新命名檔案或目錄。rm
:刪除檔案或目錄。chmod
:更改檔案或目錄的許可權。chown
:更改檔案或目錄的所有者和/或組。grep
:搜尋檔案內容,顯示匹配的行。find
:在目錄樹中搜尋檔案,並執行操作。ps
:顯示當前程序的快照。top
:實時顯示系統程序的動態管理檢視。kill
:傳送訊號到程序,通常用於終止程序。tar
:歸檔工具,用於打包和解包檔案。ssh
:安全地遠端登入到另一臺計算機。
深入學習命令示例
echo
echo
命令用於在終端輸出文字或變數的值。
- 基本用法:
echo Hello, World!
—— 輸出Hello, World!
。 - 輸出變數:
name="Alice"; echo "My name is $name"
—— 輸出My name is Alice
。 - 輸出帶換行符的文字:
echo -e "Line 1\nLine 2"
—— 輸出兩行文字。 - 輸出帶顏色的文字:
echo -e "\e[31mRed Text\e[0m"
—— 輸出紅色文字。 - 抑制換行符:
echo -n "No newline at end"
—— 輸出文字但不換行。
/$ echo Hello, World!
Hello, World!
/$ name="Alice"
li@li-VirtualBox:/$ echo "My name is $name"
My name is Alice
$ echo -e "Line 1\nLine 2"
Line 1
Line 2
$ echo -e "\e[31mRed Text\e[0m"
Red Text
li@li-VirtualBox:/$ echo -n "No newline at end"
No newline at endli@li-VirtualBox:/$
od
od
命令用於將檔案或標準輸入轉換成八進位制、十進位制、十六進位制或其他格式的輸出。
- 以十六進位制格式輸出檔案內容:
od -x filename.bin
。 - 以字元形式輸出檔案內容:
od -c filename.txt
。 - 以無符號單位元組格式輸出二進位制檔案:
od -t u1 filename.bin
。 - 將標準輸入以八進位制格式輸出:
echo "Hello" | od -b
。 - 忽略前導空白字元:
echo -n " Hello" | od -b
(注意,-n
防止echo
自動新增換行符,但od
預設顯示所有字元,包括空格)。
~/文件$ od -x test2.txt
0000000 3231 3433 3736 3938 610a 6362 6564 6766
0000020 000a
0000021
~/文件$ od -c test2.txt
0000000 1 2 3 4 6 7 8 9 \n a b c d e f g
0000020 \n
0000021
~/文件$ od -t u1 test2.txt
0000000 49 50 51 52 54 55 56 57 10 97 98 99 100 101 102 103
0000020 10
0000021
~/文件$ echo "Hello" | od -b
0000000 110 145 154 154 157 012
0000006
~/文件$ echo -n " Hello" | od -b
0000000 040 040 110 145 154 154 157
0000007
bc
bc
命令是一個任意精度的計算器語言,用於數學計算。
- 基礎運算:
echo "2 + 3" | bc
—— 輸出5
。 - 浮點數運算:
echo "scale=2; 10 / 3" | bc
—— 輸出3.33
。 - 變數賦值:
echo "a = 5; a + 3" | bc
—— 輸出8
。 - 使用內建函式:
echo "s(1)" | bc -l
—— 計算正弦值。 - 迴圈和條件判斷(透過指令碼實現):在
bc
的互動模式下或透過編寫指令碼實現更復雜的邏輯。
$ echo "2 + 3" | bc
5
$ echo "scale=2; 10 / 3" | bc
3.33
$ echo "a = 5; a + 3" | bc
8
$ echo "s(1)" | bc -l
.84147098480789650665
以上是對echo
、od
、bc
命令的深入學習和示例展示。
總結
Linux命令列介面是Linux系統的核心。透過學習命令,可以更深入地理解作業系統的內部工作原理,包括檔案系統、程序管理、網路配置等。
提高工作效率:Linux命令提供了強大的文字處理、檔案管理和系統監控工具。熟練使用這些命令可以極大地提高工作效率,尤其是在處理大量檔案、資料分析和系統維護時。
增強問題解決能力:在Linux環境中,很多問題都需要透過命令列來解決。學習Linux命令意味著將學會如何查詢系統日誌、分析程序狀態、除錯程式等,這些技能對於快速定位和解決系統或應用問題至關重要。
作業提交要求 (1')
- 記錄實踐過程和 AI 問答過程,儘量不要截圖,給出文字內容
- (選做)推薦所有作業託管到 gitee或 github 上
- (必做)提交作業 markdown文件,命名為“學號-姓名-作業題目.md”
- (必做)提交作業 markdown文件轉成的 PDF 檔案,命名為“學號-姓名-作業題目.pdf”