1. 程式人生 > >03-Linux系統基礎命令

03-Linux系統基礎命令

Linux系統基礎命令

系統目錄結構

技術分享圖片

/root       這是系統管理員(root user)的目錄。
/bin       這裏存放了標準的(或者說是缺省的)linux的工具,比如像“ls”、“vi”還有“more”等等。
/etc       系統重要配置文件, 以及常用服務配置文件
/var       存放系統引導啟動時產生的可變文件,文件通常動態更改的,例如: 緩存目錄,日誌文件
/run        系統啟動後, 運行的程序產生的運行時數據, 包括進程的pid文件,鎖文件等
/home       普通用戶的主目錄, 普通用戶的家目錄默認為/HOME/USERNAME
/root       超級管理員的主目錄, 普通用戶無權操作
/tmp        存放臨時文件, 一般存放超過10天以上都會自動刪除,可以更改刪除臨時文件的期限
/boot       存放系統引導時候需要的文件
/dev        存放設備文件
/usr        安裝的軟件, 共享庫, 重要的子目錄有
/usr/bin    用戶命令目錄
/usr/sbin   管理員命令目錄
/usr/local  本地自定義安裝的軟件
 /media       有些linux的發行版使用這個目錄來掛載那些usb接口的移動硬盤(包括U盤)、CD/DVD驅動器等等。
 /mnt      這個目錄一般是用於存放掛載儲存設備的掛載目錄的,比如有cdrom 等目錄。
 /proc     操作系統運行時,進程信息及內核信息(比如cpu、硬盤分區、內存信息等)存放在這裏。

文件路徑定位

1.絕對路徑:

Linux系統采用了目錄樹的文件組織結構, 在Linux下每個目錄或文件都可以從根目錄處開始尋找, 比如: /usr/bin目錄。這種從根目錄開始的全路徑被稱為"絕對路徑", 絕對路徑一定是以 “/” 開頭的。

2.相對路徑

相對路徑, 關鍵點在於當前在什麽路徑下。假設當前目錄在/usr/local下, 那麽它的上層目錄(/usr目錄)可以用../表示, 而/usr/local的下層目錄(src)則可以用./src表示。所謂的(.)和(..)目錄實際上也是屬於相對路徑

3.cd命令常見用法:

.  表示用戶所處的當前目錄
.. 表示上級目錄;
~  表示當前用戶自己的家目錄

cd -    //切換上次所在目錄
cd ~    //切換至當前用戶家目錄
cd       //切換至當前用戶家目錄
cd .    //.代表當前目錄,一般在拷貝、移動等情況下使用
cd ..   //切換至當前目錄的上級目錄

目錄管理命令

1.目錄創建命令mkdir (選項)(參數)
選項

-Z:設置安全上下文,當使用SELinux時有效;
-m<目標屬性>或--mode<目標屬性>建立目錄的同時設置目錄的權限;
-p或--parents 若所要建立目錄的上層目錄目前尚未建立,則會一並建立上層目錄;
--version 顯示版本信息。

實例

在目錄/usr/meng下建立子目錄test,並且只有文件主有讀、寫和執行權限,其他人無權訪問

mkdir -m 700 /usr/meng/test

在當前目錄中建立bin和bin下的os_1目錄,權限設置為文件主可讀、寫、執行,同組用戶可讀和執行,其他用戶無權訪問

mkdir -p-m 750 bin/os_1

文件管理命令

Linux一切皆為文件, 在對Linux進行配置時, 很大程度上就是處理文件的過程, 所以掌握文件的相關操作是非常有必要的。下面我們介紹如何對文件進行, 創建、刪除、移動、重命名, 以及查看文件內容, 至於如何編輯文件, 在後面具體介紹編輯器的時候在做詳細闡述。

選項

-a:或--time=atime或--time=access或--time=use 只更改存取時間;
-c:或--no-create 不建立任何文件;
-d:<時間日期> 使用指定的日期時間,而非現在的時間;
-f:此參數將忽略不予處理,僅負責解決BSD版本touch指令的兼容性問題;
-m:或--time=mtime或--time=modify 只更該變動時間;
-r:<參考文件或目錄> 把指定文件或目錄的日期時間,統統設成和參考文件或目錄的日期時間相同;
-t:<日期時間> 使用指定的日期時間,而非現在的時間;
--help:在線幫助;
--version:顯示版本信息。

1.文件創建命令touch

# touch filename
# touch filename_1 filename_2
# touch file{1..10}
# touch file{a,b,c}
# touch file{a..z}

2.文件時間stat

[root@zabbix ~]# stat 1.txt 
  File: ‘1.txt’
  Size: 25          Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 5773072     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-05-29 09:01:36.529542000 +0800
Modify: 2018-05-29 09:01:34.442542000 +0800
Change: 2018-05-29 09:01:34.442542000 +0800
 Birth: -
 訪問時間:atime,查看內容 
修改時間:mtime,修改內容 
改變時間:ctime,文件屬性,比如權限 
刪除時間:dtime,文件被刪除的時間

3.文件目錄復制命令cp

選項

-a:此參數的效果和同時指定"-dpR"參數相同;
-d:當復制符號連接時,把目標文件或目錄也建立為符號連接,並指向與源文件或目錄連接的原始文件或目錄;
-f:強行復制文件或目錄,不論目標文件或目錄是否已存在;
-i:覆蓋既有文件之前先詢問用戶;
-l:對源文件建立硬連接,而非復制文件;
-p:保留源文件或目錄的屬性;
-R/r:遞歸處理,將指定目錄下的所有文件與子目錄一並處理;
-s:對源文件建立符號連接,而非復制文件;
-u:使用這項參數後只會在源文件的更改時間較目標文件更新時或是名稱相互對應的目標文件並不存在時,才復制文件;
-S:在備份文件時,用指定的後綴“SUFFIX”代替文件的默認後綴;
-b:覆蓋已存在的文件目標前將目標文件備份;
-v:詳細顯示命令執行的操作。

實例

如果把一個文件復制到一個目標文件中,而目標文件已經存在,那麽,該目標文件的內容將被破壞。此命令中所有參數既可以是絕對路徑名,也可以是相對路徑名。通常會用到點.或點點..的形式。例如,下面的命令將指定文件復制到當前目錄下:

將文件file復制到目錄/usr/men/tmp下,並改名為file1

cp file /usr/men/tmp/file1

將目錄/usr/men下的所有文件及其子目錄復制到目錄/usr/zh中

cp -r /usr/men /usr/zh

交互式地將目錄/usr/men中的以m打頭的所有.c文件復制到目錄/usr/zh中

cp -i /usr/men m*.c /usr/zh

我們在Linux下使用cp命令復制文件時候,有時候會需要覆蓋一些同名文件,覆蓋文件的時候都會有提示:需要不停的按Y來確定執行覆蓋。文件數量不多還好,但是要是幾百個估計按Y都要吐血了,於是折騰來半天總結了一個方法:

cp aaa/* /bbb
復制目錄aaa下所有到/bbb目錄下,這時如果/bbb目錄下有和aaa同名的文件,需要按Y來確認並且會略過aaa目錄下的子目錄。

cp -r aaa/* /bbb
這次依然需要按Y來確認操作,但是沒有忽略子目錄。

cp -r -a aaa/* /bbb
依然需要按Y來確認操作,並且把aaa目錄以及子目錄和文件屬性也傳遞到了/bbb。

\cp -r -a aaa/* /bbb
成功,沒有提示按Y、傳遞了目錄屬性、沒有略過目錄。

4.文件目錄移動命令mv

選項

--backup=<備份模式>:若需覆蓋文件,則覆蓋前先行備份;
-b:當文件存在時,覆蓋前,為其創建一個備份;
-f:若目標文件或目錄與現有的文件或目錄重復,則直接覆蓋現有的文件或目錄;
-i:交互式操作,覆蓋前先行詢問用戶,如果源文件與目標文件或目標目錄中的文件同名,則詢問用戶是否覆蓋目標文件。用戶輸入”y”,表示將覆蓋目標文件;輸入”n”,表示取消對源文件的移動。這樣可以避免誤將文件覆蓋。
--strip-trailing-slashes:刪除源文件中的斜杠“/”;
-S<後綴>:為備份文件指定後綴,而不使用默認的後綴;
--target-directory=<目錄>:指定源文件要移動到目標目錄;
-u:當源文件比目標文件新或者目標文件不存在時,才執行移動操作。

//移動文件至tmp目錄
# mv file /tmp/

//移動文件至tmp目錄並修改名稱為file_test
# mv file /tmp/file_test

//移動目錄至/tmp目錄下
# mv dir/ /tmp/

//移動多個文件或多個目錄至同一個目錄
# touch file{1..3}
# mv file1 file2 file3 /opt/

# mkdir dir{1..3}
# mv dir1/ dir2/ dir3/ /opt

5.文件目錄刪除命令rm

rm命令可以刪除一個目錄中的一個或多個文件或目錄,也可以將某個目錄及其下屬的所有文件及其子目錄均刪除掉。對於鏈接文件,只是刪除整個鏈接文件,而原有文件保持不變。

選項

-d:直接把欲刪除的目錄的硬連接數據刪除成0,刪除該目錄;
-f:強制刪除文件或目錄;
-i:刪除已有文件或目錄之前先詢問用戶;
-r或-R:遞歸處理,將指定目錄下的所有文件與子目錄一並處理;
--preserve-root:不對根目錄進行遞歸操作;
-v:顯示指令的詳細執行過程。

//刪除文件, 默認會提醒是否刪除文件
# rm  anan

//強制刪除文件, 不提醒
# rm  anan -f

//刪除目錄,會提醒
# rm -r dir/

//強制刪除目錄,不提醒
# rm -rf dir/

//示例
# mkdir /home/dir10
# touch /home/dir10/{file2,file3,.file4}
# rm -rf /home/dir10/*  //不包括隱藏文件 
# ls /home/dir10/ -a
. .. .file4

//示例2
# touch file{1..10}
# touch {1..10}.pdf
# rm -rf file* 
# rm -rf *.pdf

文件查看命令

cat     //查看文件內容
示例:cat /etc/passwd
示例:cat -n /etc/passwd   //-n參數行號 
示例:cat >> xuliangwei.txt <<EOF  //追加數據
     test
     EOF

head    //查看文件頭部內容,默認前十行
示例:head /etc/passwd    
示例:head -n5  /etc/passwd    //-n參數指定查看頭幾行

tail    //查看文件尾部內容,默認最後十行
示例:tail /etc/passwd    
示例:tail -f /var/log/messages   // -f參數跟隨尾部輸出而變化

more    //按空格可翻頁查看文件內容,按q可推出
示例:more /etc/passwd

less    //和more類似
示例:less /etc/passwd

文件下載命令

wget    //文件下載
-O   //指定下載地址,更改名稱  
-T   //超時時間
-q   //安靜下載(關閉wget輸出)
--spider //網絡爬蟲  

示例:wget http://www.baidu.com

curl    //文件下載
示例:curl -o http://www.baidu.com

yum install lrzsz
rz  //文件上傳

sz  //文件下載
示例:sz filename

命令查找命令

locate //查找文件或者目錄
示例:locate /etc/sh       //搜索etc目錄下所有以sh開頭的文件
示例:locate -i /etc/sh    //搜索etc目錄下,所有以sh開頭的文件,忽略大小寫

which   //查找系統PATH變量目錄下的命令(絕對路徑)
示例:which ls

whereis //查找文件索引數據庫下的命令、源文件、man文件。非PATH變量查找,所以查找的面比which要廣 -b,-m
示例:whereis ls
示例:whereis -b ls

03-Linux系統基礎命令