Linux--2 Linux之文檔與目錄結構、shell基本命令

1、Linux之文檔與目錄結構

一、Linux之文檔與目錄結構

 Linux目錄結構的組織形式和Windows有很大的不一樣。Linux沒有「盤(如C盤、D盤、E盤)」的概念,而是創建一個根"/"文件系統,全部的目錄也都是由根目錄衍生出來。python

  Linux與Windows系統目錄有所不一樣,windows使用反斜槓"\"來做爲目錄分隔符,而Linux使用正斜槓"/"做爲目錄分隔符,以下:mysql

  Windows目錄:linux

  Linux目錄:nginx

  

  登陸linux系統,在終端輸入以下命令:正則表達式

1
[root@localhost ~] # ls /

  查看結果以下:sql

  在Linux系統中,全部的文件與目錄都是由根目錄開始,是目錄與文件的源頭,而後一個個的分支下來,如同樹枝狀,所以稱爲這種目錄配置爲:目錄樹。shell

二、目錄樹架構示意圖

 

 

  /boot:這裏存放的是啓動Linux時使用的一些核心文件,包括一些鏈接文件以及鏡像文件。數據庫

  /bin:bin是Binary的縮寫, 這個目錄存放着最常用的命令。express

  /dev:dev是Device(設備)的縮寫, 該目錄下存放的是Linux的外部設備,在Linux中訪問設備的方式和訪問文件的方式是相同的。vim

  /etc:這個目錄用來存放全部的系統管理所須要的配置文件和子目錄。

  /home:用戶的主目錄,在Linux中,每一個用戶都有一個本身的目錄,通常該目錄名是以用戶的帳號命名的。

  /lib:這個目錄裏存放着系統最基本的動態鏈接共享庫,其做用相似於Windows裏的DLL文件。幾乎全部的應用程序都須要用到這些共享庫。

  /lost+found:這個目錄通常狀況下是空的,當系統非法關機後,這裏就存放了一些文件。

  /media:linux系統會自動識別一些設備,例如U盤、光驅等等,當識別後,linux會把識別的設備掛載到這個目錄下。

  /mnt:系統提供該目錄是爲了讓用戶臨時掛載別的文件系統的,咱們能夠將光驅掛載在/mnt/上,而後進入該目錄就能夠查看光驅裏的內容了。

  /opt:這是給主機額外安裝軟件所擺放的目錄。好比你安裝一個ORACLE數據庫則就能夠放到這個目錄下。默認是空的。

  /proc:這個目錄是一個虛擬的目錄,它是系統內存的映射,咱們能夠經過直接訪問這個目錄來獲取系統信息。

    這個目錄的內容不在硬盤上而是在內存裏,咱們也能夠直接修改裏面的某些文件。

  /root:該目錄爲系統管理員,也稱做超級權限者的用戶主目錄。

  /sbin:s就是Super User的意思,這裏存放的是系統管理員使用的系統管理程序。

  /selinux:這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,相似於windows的防火牆,可是這套機制比較複雜,這個目錄就是存放selinux相關的文件的。

  /srv:該目錄存放一些服務啓動以後須要提取的數據。

  /sys:這是linux2.6內核的一個很大的變化。該目錄下安裝了2.6內核中新出現的一個文件系統 sysfs 。

    sysfs文件系統集成了下面3種文件系統的信息:針對進程信息的proc文件系統、針對設備的devfs 文件系統以及針對僞終端的devpts文件系統。

    該文件系統是內核設備樹的一個直觀反映。

    當一個內核對象被建立的時候,對應的文件和目錄也在內核對象子系統中被建立。

  /tmp:這個目錄是用來存放一些臨時文件的。

  /var:這個目錄中存放着在不斷擴充着的東西,咱們習慣將那些常常被修改的目錄放在這個目錄下。包括各類日誌文件。

  /usr:這是一個很是重要的目錄,用戶的不少應用程序和文件都放在這個目錄下,相似於windows下的program files目錄。

  /usr/bin:系統用戶使用的應用程序。

  /usr/sbin:超級用戶使用的比較高級的管理程序和系統守護程序。

  /usr/src:內核源代碼默認的放置目錄。 

  在linux系統中,有幾個目錄是比較重要的,平時須要注意不要誤刪除或者隨意更改內部文件。

    /etc: 上邊也提到了,這個是系統中的配置文件,若是你更改了該目錄下的某個文件可能會致使系統不能啓動。

    /bin, /sbin, /usr/bin,/usr/sbin: 這是系統預設的執行文件的放置目錄,好比 ls 就是在/bin/ls 目錄下的。

    值得提出的是,/bin, /usr/bin 是給系統用戶使用的指令(除root外的通用戶),而/sbin, /usr/sbin 則是給root使用的指令。

    /var: 這是一個很是重要的目錄,系統上跑了不少程序,那麼每一個程序都會有相應的日誌產生,而這些日誌就被記錄到這個目錄下,具體在/var/log 目錄下,另外mail的預設放置也是在這裏。

三、目錄的相關介紹

  全部目錄下都存在兩個目錄,【.】和【..】,分別表明當前目錄和上級目錄!如何證實它的存在?以下:

  參數: -l   以列表形式顯示文件

     -a  顯示全部隱藏文件(linux中以 . 開頭的文件或者文件夾都是隱藏的)

四、cd命令切換目錄

  咱們知道切換工做目錄的指令是cd(change directory的縮寫),那麼首先要知道都有哪些目錄,以下:

  .       當前工做目錄
  ..      上一級工做目錄
  -       前一個工做目錄
  ~       當前【用戶】所在的家目錄

五、mkdir,創建新目錄

  mkdir命令用來創建新目錄,是make directory的縮寫,默認狀況下,目錄要一級一級的創建,例如要創建/tmp/oldboy/python目錄,就必須有/tmp,而後/tmp/oldboy,最後/tmp/oldboy/python,若是沒有/tmp/oldboy,則不能創建python目錄!

 

  可見高效的建立目錄用上-p參數,能夠直接執行命令【mkdir -p /tmp/oldboy/python】,系統會自動添加上/tmp,/tmp/oldboy,/tmp/oldboy/python依次創建目錄,是否是很方便。

  也能夠一次性建立多個文件,以下:

六、rmdir,刪除空目錄

  rmdir命令用來刪除目錄,是remove directory的縮寫,可是注意rmdir只能刪除空目錄。

1
rm  - r   遞歸刪除文件夾,會詢問是否刪除

  

1
rm  - rf  強制( - f)遞歸( - r)刪除文件夾和文件且沒有提示,炸彈命令,謹慎使用!

  

  VMware虛擬機有快照功能,能夠拍下當前系統的狀態,以便往後回覆。

七、Linux的環境變量PATH

  咱們配置過windows下的環境變量(PATH),知道系統會按照PATH的設定,去每一個PATH定義的目錄下搜索可執行文件。

  那麼如何查看Linux下的PATH環境變量呢?

  PATH必定是大寫的,這個變量是由一堆目錄組成,分隔符是冒號":",而不一樣於windows的分號";"

  echo 至關於python中的print。。

八、絕對路徑與相對路徑

  路徑是Linux中很是重要的概念,它用來定位如何找到某個文件。

  Linux下特別注意文件名/路徑的寫法,能夠將所謂的路徑(path)定義爲絕對路徑(absolute)和相對路徑(relative)。這兩種文件名/路徑的寫法依據是這樣的:

    - 絕對路徑:由根目錄(/)爲開始寫起的文件名或目錄名稱,如/tmp/oldboy/test.py;

    - 相對路徑:相對於當前路徑的文件名寫法,如./tmp/oldboy/exam.py或../../tmp/oldboy/exam.py,簡單來講只要開頭不是/,就是屬於相對路徑;

九、Linux的文件系統

  用戶在硬件存儲設備中執行的文件創建,寫入,讀取,修改,轉存與控制等操做都是依賴文件系統完成的。文件系統的做用是合理規劃硬盤,保證用戶正常使用。

  Linux系統支持數十種文件系統,常見文件系統以下:

    - Ext3 是一款日誌文件系統,可以在系統異常宕機時避免文件系統資料丟失,並能 自動修復數據的不一致與錯誤。

    - Ext4 是Ext3的改進版本,做爲 RHEL 6 系統中的默認文件管理系統,它支持的存儲容 量高達 1EB(1EB=1,073,741,824GB),且可以有無限多的子目錄。另外,Ext4 文件系統可以批量分配 block 塊,從而極大地提升了讀寫效率。

    - XFS 是一種高性能的日誌文件系統,並且是 RHEL 7 中默認的文件管理系統,它的優點在發生意外宕機後尤爲明顯,便可以快速地恢復可能被破壞的文件,並且強大的 日誌功能只用花費極低的計算和存儲性能。而且它最大可支持的存儲容量爲 18EB,這幾乎知足了全部需求。

  如何查看,/etc/fstab是用來存放文件系統的靜態信息文件,命令以下:

1
cat   / etc / fstab

2、shell基本命令

一、Linux命令行的組成結構

二、Linux系統命令操做語法格式

  命令     空格     參數       空格      【文件或路徑】須要處理的內容
  rm               -rf                       /tmp/* 
  ls               -la                       /home 

  1) 通常狀況下,【參數】是可選的,一些狀況下【文件或路徑】也是可選的;

  2) 參數:同一個命令,跟上不一樣的參數執行不一樣的功能;

三、特殊符號

  >        重定向,覆蓋寫入,清空原文件全部內容,而後把文字寫入文件
  >>      追加劇定向,追加寫入,把文字追加到文件的結尾

四、查看文件內容

  cat命令用於查看純文本文件

五、more命令

  more命令用於查看內容較多的文本,例如要看一個很長的配置文件,cat查看內容屏幕會快速翻滾到結尾。more命令查看文本會以百分比形式告知已經看到了多少,使用回車鍵向下讀取內容。

1
more  / etc / passwd         查看passwd文件內容
空格           翻頁
b             上一頁
回車鍵         向下讀取內容 

六、Linux快捷鍵

tab鍵                  用於自動補全命令/文件名/目錄名
ctrl + l或clear或cls  清理終端顯示 
ctrl + c                 終止當前操做

七、複製(拷貝)命令

1
2
cp  xxx.py   / tmp                    複製xxx.py到 / tmp目錄下
cp  xxx.py   / tmp / my.py                複製xxx.py到 / tmp / 目錄下而且更名爲my.py
Linux下面不少命令,通常沒有辦法直接處理文件夾,所以須要加上參數 
cp -r  遞歸,複製目錄以及目錄的子孫後代
注意:cp是個好命令,操做文件前,先備份,以下:
cp  main.py  main.py.bak

八、mv命令

1
2
mv  a.log  b.log         將文件a.log更名爲b.log
mv   / home / test   / tmp   將 / home下的test文件移動到 / tmp目錄下

九、查找命令

find  從哪裏找(目錄)  查找文件的類型  查找的文件名
參數:
  -name 按照文件名查找文件
  -type 查找以下類型的文件,文件類型有如下幾種:
    b     塊設備文件
    d     目錄
    c     字符設備文件
    p     管道文件
    l     符號連接文件
    f     普通文件
    s     socket文件

  示例以下:

1
2
3
find   / tmp /   - type   f   - name   "*.txt"          找出 / tmp全部以 .txt 結尾的文件
find   / etc    - name   'host*'                    找到 / etc下全部名字以host開頭的文件
find   / opt   - name   'settings.py'               找到 / opt上一個名爲settings.py

十、grep命令

  global search regular expression(RE) and print out the line,即全面搜索正則表達式並把行打印出來,grep是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來,以下:

語法:grep [參數] [--color=auto] [字符串] filename
參數詳解:
  -i : 忽略大小寫
  -n : 輸出行號
  -v : 反向選擇
  --color = auto : 給關鍵詞部分添加顏色

  示例:

1
2
grep  "what"  / tmp / test.txt          從 / tmp下的test.txt文件中查找what字符串所在行
grep  - "what"  / tmp / test.txt        - v反向選擇,即查找除上條命令結果以外的其餘全部行

十一、管道符

  Linux提供的管道符「|」將兩條命令隔開,管道符左邊命令的輸出會做爲管道符右邊命令的輸入。

  常見用法以下:

1
2
3
4
5
ps  - ef|grep python           檢查python程序是否啓動
ls  / tmp|grep .txt            找到 / tmp目錄下全部txt文件
netstat  - tunlp |grep nginx    檢查nginx的端口是否存活
cat  / etc / passwd |grep  'mysql'  - n    找到 / etc / passwd的全部與mysql有關行,行號
cat  / etc / passwd |grep  '^root'  - - color = auto  - n   找出 / etc / passwd下root用戶所在行,以及行號,顯示顏色

十二、head、tail命令

  head顯示文件前幾行,默認前10行,tail顯示文件後幾行,默認後10行,示例以下:

1
2
3
4
head  - 2  / tmp / test.txt                 查看前兩行
tail  - 2  / tmp / test.txt                 查看後兩行
tail  - f xx.log                         持續刷新顯示,實時監控,可用於監控日誌文件
head  - 30  / tmp / test.txt |tail  - 21      顯示文件 10 - 30

1三、別名alias命令

1四、爲rm設置別名

1
2
alias rm = 'echo do not use rm'    設置rm別名,當使用rm命令時,讓系統顯示 do  not  use rm
unalias rm      取消別名

1五、which命令

  which命令用於查找並顯示給定命令的絕對路徑,環境變量PATH中保存了查找命令時須要遍歷的目錄。

  which指令會在環境變量$PATH設置的目錄裏查找符合條件的文件。

  也就是說,使用which命令,就能夠看到某個系統命令是否存在,以及執行的究竟是哪個位置的命令。

1
2
which pwd          pwd命令在哪兒,結果爲 / usr / bin / pwd
which python       python命令在哪兒,結果爲 / usr / bin / python

1六、scp命令

  scp是 secure copy的縮寫, scp是linux系統下基於ssh登錄進行安全的遠程文件拷貝命令。用於Linux之間複製文件和目錄。

語法:scp  [可選參數] 本地源文件 遠程文件標記
參數:
  -r:遞歸複製整個目錄
  -v:詳細方式輸出
  -q:不顯示傳輸進度條
  -C:容許壓縮

  示例:

  傳輸本地文件到遠程地址

1
2
scp   / tmp / test.py  root@ 192.168 . 1.155 : / home /
scp   / tmp / test.py  root@ 192.168 . 1.155 : / home / test_python.py

  複製遠程文件到本地

1
2
scp  root@ 192.168 . 1.155 : / home / oldboy.txt   / tmp / oldboy.txt
scp   - r  root@ 192.168 . 1.155 : / home / oldboy   / home /

1七、du命令

  du會顯示指定的目錄或文件所佔用的磁盤空間。

語法:du [參數] [文件或目錄]
參數:
  -s:顯示總計
  -h:以k,M,G爲單位顯示,可讀性強

  示例:

1
2
du                   不加參數,表明顯示當前目錄全部文件大小
du  - sh   / home       顯示 / home的總大小且以k,M,G爲單位顯示

1八、top命令

  top 命令用於動態地監視進程活動與系統負載等信息,輸入命令顯示以下:

  上圖中信息解釋以下:

第一行:(uptime)
  系統時間 主機運行時間 用戶鏈接數(who) 系統1,5,15分鐘的平均負載
第二行:進程信息
  進程總數 正在運行的進程數 睡眠的進程數 中止的進程數 殭屍進程數
第三行:cpu信息
  0.0 us:用戶空間所佔CPU百分比
  0.3 sy:內核空間佔用CPU百分比
  0.0 ni:用戶進程空間內改變過優先級的進程佔用CPU百分比
  99.7 id:空閒CPU百分比
  0.0 wa:等待輸入輸出的CPU時間百分比
  0.0 hi:硬件CPU中斷佔用百分比
  0.0 si:軟中斷佔用百分比
  0.0 st:虛擬機佔用百分比
第四行:內存信息(與第五行的信息相似與free命令)
total:物理內存總量
used:已使用的內存總量
free:空閒的內存總量(free+used=total)
buffers:用做內核緩存的內存量
第五行:swap信息
total:交換分區總量
used:已使用的交換分區總量
free:空閒交換區總量
cached Mem:緩衝的交換區總量,內存中的內容被換出到交換區,而後又被換入到內存,可是使用過的交換區沒有被覆蓋,交換區的這些內容已存在於內存中的交換區的大小,相應的內存再次被換出時可沒必要再對交換區寫入。

 

1九、chattr命令、lsattr命令

  chattr命令能夠給文件加鎖,則文件只能寫入數據,沒法刪除文件,用法以下圖:

20、linux時間同步  

linux的date命令能夠顯示當前時間或者設置系統時間。

  date查看當前時間,以下:

  若是時間不正確,可以使用以下命令進行時間同步:

1
ntpdate  - u ntp.aliyun.comm

2一、wget命令

  wget命令用於在終端下載網絡文件。

語法:wget  [參數]  下載地址

  示例:

1
wget  http: / / pythonav.cn / av / girl.jpg

  遞歸下載路飛全部資源,保存到www.luffycity.com文件中

1
wget  - - p http: / / www.luffycity.com

  補充:

  linux如何與windows傳輸文件?

  經過一個lrzsz(上傳下載)的工具包

  安裝軟件的方式是執行以下命令:

1
yum install lrzsz  - y

2二、其餘命令

1
2
man 命令                   查看命令幫助手冊
ps  - ef                       查看進程

2三、vim

  全部的 Unix Like 系統都會內建 vi 文本編輯器,至關於windows的記事本,其餘的文本編輯器則不必定會存在。可是目前咱們使用比較多的是 vim 編輯器,至關於notepad++。

  vim 具備程序編輯的能力,能夠主動的以字體顏色辨別語法的正確性,方便程序設計。

相關文章
相關標籤/搜索