1. 程式人生 > >Linux之基礎bash shell命令

Linux之基礎bash shell命令

lin com 子目錄 軟鏈接 node 並不會 包含 tail命令 linux系統

linux系統構成

技術分享圖片

linux內核主要負責

系統內存管理

軟件程序管理

硬件設備管理

文件系統管理

GNU工具

執行一些標準功能,比如控制文件和程序。又分為核心工具和shell.

大部分Linux發行版的默認shell都是GNU bash shell.

瀏覽文件目錄

常見的linux目錄名稱:

虛擬的根目錄:/ 二進制目錄:/bin root用戶的主目錄: /root …等等

遍歷目錄:cd destination 後面的參數可以使用絕對文件路徑,也可以使用相對文件路徑

絕對路徑輸入

輸入: ~$ cd /usr/bin

結果:/usr/bin$:

~符號用來追蹤當前所在的虛擬目錄結構中的位置,表示shell會話位於你的主目錄中。

pwd命令 可以顯示出shell會話的當前目錄,這個目錄被稱為當前工作目錄。

純cd命令可以從任何一級跳回主目錄

相對路徑輸入

假如你位於home目錄,希望切換到子目錄document,可以直接使用

  1: cd doc

~/doc$

兩個特殊字符

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

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

比如你現在處於主目錄下的doc目錄,想要切換到主目錄的dow下,可以這樣做:

  1: cd ../dow

也可以在其他切換中加多個雙點符比如

  1: cd ../../etc

文件和目錄列表

ls命令顯示當前目錄下的文件和目錄,可以用-F參數命令輕松區分文件和目錄,-a顯示隱藏文件(前面帶點的),-R列出當前目錄下包含的子目錄中的文件。這些參數可以疊加,比如 ls -alF

-l參數產生長列表格式的輸出。按照順序顯示:文件類型,權限,硬鏈接總數,屬主的用戶名,組的組名,大小(單位字節),上次的修改時間,文件名和目錄

過濾輸出列表

只會顯示該文件的信息,文件名放在所有參數後面。

  1: $ls –l my_script

?代表一個任意的字符,*代表0個或多個

  1: $ls –l my_scr?pt
  2: $ls –l my*
  3: $ls –l my_s*t

[ai]代表a或者i,[a-i]字母範圍a-i,[!a]排除a

創建文件

  1: touch filename
  2: touch dir/filename

touch命令創建一個空文件,並將你的用戶名作為文件的屬主。這個命令還可以改變文件的修改時間,並不會改變文件的內容。只想改變訪問時間,可用-a參數。

查看文件的訪問時間,加入--time=atime

復制文件

源對象和目標對象

  1: cp source destination

當兩者都是文件名時,源文件復制成一個全新的文件(destination為名),有新的修改時間。加上-

i強制詢問是否需要覆蓋已有的文件。

也可以將文件復制到現有的目錄中。

  1: cp –i test_one /home/christine/Document/

註意Document後面有一個正斜線,代表這是一個目錄而不是一個文件,否則會創建一個document的文件。這個路徑也可以使用相對路徑。下面這個點代表當前的工作路徑。

  1: cp –i /etc/Network/conf.conf .

-R 參數可以遞歸地復制整個目錄的內容。

  1: cp –R Scripts/ Mod_Scripts

使用通配符

  1: cp *script Mod_Scripts/

可以用man cp來來查看所有的參數。

制表鍵(tab)自動補全目錄名文件名命令名,如

  1: ls really*

如果匹配成功不會顯示任何信息,

輸入cp really直接按tab就會自動補全。

鏈接文件

符號鏈接:一個實實在在的文件,它指向存放在虛擬目錄結構中某個地方的另一個文件。這兩個通過符號鏈接在一起的文件,彼此的內容並不相同。ln命令以及-s選項來創建符號鏈接。

  1: ln –s data_file s1_data_file

ls –i *data_file查看inode的編號可以發現它們是不同的文件。

硬鏈接:會創建獨立的虛擬文件,其中包含了原始文件的信息及位置。但是它們從根本上而言是同一個文件。引用硬鏈接文件等於同於引用了源文件。

  1: ln data_file s2_data_file
  2: ls li *data_file

兩個文件共享inode編號。

說明:想要在不同存儲媒體的文件之間創建鏈接,只能用符號鏈接。不要創建軟鏈接的軟鏈接。

重命名文件

在linux中,重命名文件稱為移動(moving)。mv命令可以將文件和目錄移動到另一個位置或者重命名。

  1: mv  oldfile newfile

inode編號和時間戳不變,只影響文件名。mv也可以移動文件的位置。

  1: mv file_name dir

這兩步可以合為一步

  1: mv olddir/file newdir/file

也可以移動整個目錄

  1: mv old_scripts new_scripts

刪除文件

一般加上-i來強制詢問是否真的刪除。也可以使用通配符來刪除成組的文件。

  1: rm –i f?ll

處理目錄

  1: mkdir New_dir

創建多個目錄和子目錄,需要加入-p參數

  1: mkdir –p New_Dir/Sub_Dir/Under_Dir

刪除目錄

默認情況下,rmdir命令只刪除空目錄.所以首先要刪除目錄裏的文件。

  1: rm -i New_dir/my_file
  2: rmdir New_dir

或者使用-ri命令進入目錄,先刪除文件,再刪除目錄

  1: rm -ri My_Dir

不建議使用-rf直接刪除,這樣不會有任何的提示和反應。

  1: rm -rf New_dir

查看文件

查看文件類型

file命令,探測功能,後面跟文件,目錄,符號鏈接,腳本,二進制文件

  1: file New_dir/my_file
  1: file New_dir
  2: file si_date_file
  3: file my_script
  4: file /bin/ls

查看內容

查看整個文件

cat命令,-n給所有行加上行號,-b只給有文本的行叫上行號,-T用^I代替制表符

more命令,可以手動每頁每頁地顯示。

less命令,more的升級版

查看部分文件

tail命令 默認下顯示文件的末尾10行。-n參數修改所顯示的行數。-f可以查看其它進程使用中的文件

  1: tail -n 2 log_file

head命令 顯示開頭文件的內容,同樣它也支持-n,但不支持-f參數。

Linux之基礎bash shell命令