部分簡單 shell 命令合集

遍歷目錄

  • cd 切換到指定目錄
    cd 命令可接受單個參數(shù) destination ,用以指定想切換到的目錄名。如果沒有為cd 命令指定目標路徑,它將切換到用戶主目錄。

  • pwd 查看當前目錄
    pwd 命令可以顯示出shell會話的當前目錄,這個目錄被稱為當前工作目錄 。
    摘錄來自: ePUBw.COM. “Linux命令行與shell腳本編程大全(第3版)?!?Apple Books.

  • . 單點符(.),表示當前目錄

  • .. 雙點符(..),表示當前目錄的父目錄

christine@server01:~/Documents$ pwd
/home/christine/Documents
christine@server01:~/Documents$ cd ../Downloads
christine@server01:~/Downloads$ pwd
/home/christine/Downloads
christine@server01:~/Downloads$

文件和目錄列表

  • ls 顯示當前目錄下的文件和目錄
  • ls -a 可展示隱藏文件
  • ls -l 展示長列表信息, 會包含了目錄中每個文件的更多相關信息
    • 文件類型,比如目錄(d )、文件(- )、字符型文件(c )或塊設備(b )
    • 文件的權限
    • 文件的硬鏈接總數(shù)
    • 文件屬主的用戶名
    • 文件屬組的組名
    • 文件的大?。ㄒ宰止?jié)為單位)
    • 文件的上次修改時間
    • 文件名或目錄名
$ ls -l
total 48
drwxr-xr-x 2 christine christine 4096 Apr 22 20:37 Desktop
drwxr-xr-x 2 christine christine 4096 Apr 22 20:37 Documents
drwxr-xr-x 2 christine christine 4096 Apr 22 20:37 Downloads
-rw-r--r-- 1 christine christine 8980 Apr 22 13:36 examples.desktop
-rw-rw-r-- 1 christine christine    0 May 21 13:44 fall
-rw-rw-r-- 1 christine christine    0 May 21 13:44 fell
-rw-rw-r-- 1 christine christine    0 May 21 13:44 fill
-rw-rw-r-- 1 christine christine    0 May 21 13:44 full
drwxr-xr-x 2 christine christine 4096 May 21 11:39 Music
-rw-rw-r-- 1 christine christine    0 May 21 13:25 my_file
-rw-rw-r-- 1 christine christine    0 May 21 13:25 my_scrapt
  • ?問號(? )用于過濾器字符串中替代任意位置的單個字符
$ ls -l my_scr?pt
-rw-rw-r-- 1 christine christine  0 May 21 13:25 my_scrapt
-rwxrw-r-- 1 christine christine 54 May 21 11:26 my_script
$
  • *星號(* )代表零個或多個字符
$ ls -l my_s*t
-rw-rw-r-- 1 christine christine  0 May 21 13:25 my_scrapt
-rwxrw-r-- 1 christine christine 54 May 21 11:26 my_script
$

處理文件

  • touch xxx 創(chuàng)建文件
  • cp source destination 復制文件 source 為 destination
  • cp -i source destination 復制文件且問詢是否覆蓋已有同名文件
$ touch test_one
$ ls -l test_one
-rw-rw-r-- 1 christine christine 0 May 21 14:17 test_one

$ cp  test_one test_two   // 復制 test_one  為 test_two
$ cp -i touch test_one test_two // 復制 test_one 為 test_two 且查詢是否由同名文件
“cp: overwrite 'test_two'? n”

$ cp -i /etc/NetworkManager/NetworkManager.conf  . // 復制文件 /etc/NetworkManager/NetworkManager.conf  到當前文件目錄
  • cp -R xxx xxxy 遞歸復制整個文件xxx 為xxxy
  • mv xx xxx 重命名或者移動文件
  • mv -i xx xxx 重命名或者移動文件且詢問是否覆蓋已有同名文件
$ ls  f?ll
296717 -rw-rw-r-- 1 christine christine 0 May 21 13:44 fall // 原文件名稱 fall
$
$ mv fall  fzll  // 重命名文件名 fzll
$ ls  f?ll
296717 -rw-rw-r-- 1 christine christine 0 May 21 13:44 fzll // 重新查看文件,名稱 fzll

// 移動目錄
// fzll 原目錄在 /home/christine/fzll 
現(xiàn)在執(zhí)行
$ mv fzll  Pictures/
$
// 現(xiàn)在fzll 目錄在  /home/christine/Pirctures中

  • rm -i xxx 刪除某個文件且刪除前提示是否確認刪除
$ rm -i fall //執(zhí)行刪除命令,且提示是否真要刪除
rm: remove regular empty file 'fall'? y
$
$ ls -l fall
ls: cannot access fall: No such file or directory
$
  • rm -f xxx 強制刪除(謹慎使用)

處理目錄

“有些命令(比如cp 命令)對文件和目錄都有效,而有些只對目錄有效?!?/p>

  • 創(chuàng)建目錄 mkdir xxx
$ mkdir New_Dir
$ ls -ld New_Dir
drwxrwxr-x 2 christine christine 4096 May 22 09:48 New_Dir
$

系統(tǒng)創(chuàng)建了一個名為New_Dir的新目錄。注意,新目錄長列表是以d開頭的。這表示New_Dir并不是文件,而是一個目錄。

  • 同時創(chuàng)建多個目錄和子目錄 mkdir -p xxx/yyy/zzz
$ mkdir -p New_Dir/Sub_Dir/Under_Dir
  • 刪除目錄 rmdir xxx

rmdir 命令只刪除空目錄, 如果目錄有文件則刪除失敗
rmdir 并沒有-i 選項來詢問是否要刪除目錄
如果目錄內(nèi)有文件需要先刪除內(nèi)部文件才可以刪除目錄

  • rmdir -r xxx

可以在整個非空目錄上使用rm 命令。使用-r 選項使得命令可以向下進入目錄,刪除其中的文件,然后再刪除目錄本身
這種方法雖然可行,但很難用。注意,你依然要確認每個文件是否要被刪除。如果該目錄有很多個文件和子目錄,這將非?,嵥?。

$ ls -l My_Dir
total 0
-rw-rw-r-- 1 christine christine 0 May 22 10:02 another_file
$
$ rm -ri My_Dir
rm: descend into directory 'My_Dir'? y
rm: remove regular empty file 'My_Dir/another_file'? y
rm: remove directory 'My_Dir'? y
$
$ ls -l My_Dir
ls: cannot access My_Dir: No such file or directory
$
  • rm -rf xxx 一次性徹底刪除目錄和內(nèi)部文件

查看文件內(nèi)容

  • file 它能夠探測文件的內(nèi)部,并決定文件是什么類型的
$ file my_file
my_file: ASCII text
$
$ file New_Dir
New_Dir: directory

file 命令不僅能確定文件中包含的文本信息,還能確定該文本文件的字符編碼,ASCII
而且還可以作為一種區(qū)分目錄的方法

查看整個文件
  • cat cat 命令是顯示文本文件中所有數(shù)據(jù)的得力工具。
$ cat test1
hello

This is a test file.


That we'll use to       test the cat command.
$
  • cat -n xxx 會給內(nèi)容打上行號

cat 命令的主要缺陷是:一旦運行,你就無法控制后面的操作,
如果文件很大則一閃而過。
所以:
可以使用 more / less 命令,可以實現(xiàn)上下翻頁

  • more /etc/bash.bashrc
  • less /etc/bash.bashrc

但是如果一個很大文件我們要的信息在文件結尾 / 中間部分,怎么搞,翻頁不翻死了?

  • tail xx會默認現(xiàn)實文件的末尾十行
  • tail - n number xx -n后的數(shù)字可以指定默認展示末尾倒數(shù)的第 number

tail 功能一樣的是 head

  • head xx會默認現(xiàn)實文件的開頭的十行
  • head - n number xx -n后的數(shù)字可以指定默認展示開頭正數(shù)的第 number
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容