騰訊雲CentOS 7 服務器之Linux系統詳解

前言

這篇文章作一下Linux系統相關的記錄,後續再深刻學習研究Linux的相關內容。html

Linux 系統目錄結構

[root@hostname ~]# ls /
bin   data  etc   lib    lost+found  mnt  proc  run   srv  tmp  var
boot  dev   home  lib64  media       opt  root  sbin  sys  usr
複製代碼

樹狀目錄結構:

如下是對這些目錄的解釋:

  • /bin:bin是Binary的縮寫, 這個目錄存放着最常用的命令。
  • /boot:這裏存放的是啓動Linux時使用的一些核心文件,包括一些鏈接文件以及鏡像文件。
  • /dev:dev是Device(設備)的縮寫, 該目錄下存放的是Linux的外部設備,在Linux中訪問設備的方式和訪問文件的方式是相同的。
  • /etc:這個目錄用來存放全部的系統管理所須要的配置文件和子目錄。
  • /home:用戶的主目錄,在Linux中,每一個用戶都有一個本身的目錄,通常該目錄名是以用戶的帳號命名的。
  • /lib:這個目錄裏存放着系統最基本的動態鏈接共享庫,其做用相似於Windows裏的DLL文件。幾乎全部的應用程序都須要用到這些共享庫。
  • /lost+found:這個目錄通常狀況下是空的,當系統非法關機後,這裏就存放了一些文件。
  • /media:linux系統會自動識別一些設備,例如U盤、光驅等等,當識別後,linux會把識別的設備掛載到這個目錄下。
  • /mnt:系統提供該目錄是爲了讓用戶臨時掛載別的文件系統的,咱們能夠將光驅掛載在/mnt/上,而後進入該目錄就能夠查看光驅裏的內容了。
  • /opt:這是給主機額外安裝軟件所擺放的目錄。好比你安裝一個ORACLE數據庫則就能夠放到這個目錄下。默認是空的。
  • /proc:這個目錄是一個虛擬的目錄,它是系統內存的映射,咱們能夠經過直接訪問這個目錄來獲取系統信息。這個目錄的內容不在硬盤上而是在內存裏,咱們也能夠直接修改裏面的某些文件,好比能夠經過下面的命令來屏蔽主機的ping命令,使別人沒法ping你的機器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
複製代碼
  • /root:該目錄爲系統管理員,也稱做超級權限者的用戶主目錄。
  • /sbin:s就是Super User的意思,這裏存放的是系統管理員使用的系統管理程序。
  • /selinux:這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,相似於windows的防火牆,可是這套機制比較複雜,這個目錄就是存放selinux相關的文件的。
  • /srv:該目錄存放一些服務啓動以後須要提取的數據。
  • /sys:這是linux2.6內核的一個很大的變化。該目錄下安裝了2.6內核中新出現的一個文件系統 sysfs 。sysfs文件系統集成了下面3種文件系統的信息:針對進程信息的proc文件系統、針對設備的devfs文件系統以及針對僞終端的devpts文件系統。該文件系統是內核設備樹的一個直觀反映。當一個內核對象被建立的時候,對應的文件和目錄也在內核對象子系統中被建立。
  • /tmp:這個目錄是用來存放一些臨時文件的。
  • /usr:這是一個很是重要的目錄,用戶的不少應用程序和文件都放在這個目錄下,相似與windows下的program files目錄。
  • /usr/bin:系統用戶使用的應用程序。
  • /usr/sbin:超級用戶使用的比較高級的管理程序和系統守護程序。
  • /usr/src:內核源代碼默認的放置目錄。
  • /var:這個目錄中存放着在不斷擴充着的東西,咱們習慣將那些常常被修改的目錄放在這個目錄下。包括各類日誌文件。 在linux系統中,有幾個目錄是比較重要的,平時須要注意不要誤刪除或者隨意更改內部文件。
  • /etc: 上邊也提到了,這個是系統中的配置文件,若是你更改了該目錄下的某個文件可能會致使系統不能啓動。
  • /bin, /sbin, /usr/bin, /usr/sbin: 這是系統預設的執行文件的放置目錄,好比 ls 就是在/bin/ls 目錄下的。值得提出的是,/bin, /usr/bin 是給系統用戶使用的指令(除root外的通用戶),而/sbin, /usr/sbin 則是給root使用的指令。
  • /var: 這是一個很是重要的目錄,系統上跑了不少程序,那麼每一個程序都會有相應的日誌產生,而這些日誌就被記錄到這個目錄下,具體在/var/log 目錄下,另外mail的預設放置也是在這裏。

瞭解系統目錄結構,對於咱們安裝管理一些依賴包更加清晰。前端

Linux 文件基本屬性

Linux系統是一種典型的多用戶系統,不一樣的用戶處於不一樣的地位,擁有不一樣的權限。爲了保護系統的安全性,Linux系統對不一樣的用戶訪問同一文件(包括目錄文件)的權限作了不一樣的規定。node

在Linux中咱們可使用ll或者ls –l命令來顯示一個文件的屬性以及文件所屬的用戶和組,如:linux

[root@hostname ~]# ls -l
total 4
-rw-------. 1 root root 2523 Apr 21  2016 anaconda-ks.cfg
複製代碼

實例中,anaconda-ks.cfg文件的第一個屬性用"-"表示,"-"在Linux中表明該文件是一個文件。程序員

在Linux中第一個字符表明這個文件是目錄、文件或連接文件,對應規則以下:數據庫

  • 當爲[ d ]則是目錄
  • 當爲[ - ]則是文件;
  • 如果[ l ]則表示爲連接文檔(link file);
  • 如果[ b ]則表示爲裝置文件裏面的可供儲存的接口設備(可隨機存取裝置);
  • 如果[ c ]則表示爲裝置文件裏面的串行端口設備,例如鍵盤、鼠標(一次性讀取裝置)

Linux 文件與目錄管理

Linux的目錄結構爲樹狀結構,最頂級的目錄爲根目錄 /。編程

絕對路徑:從根目錄 / 寫起,如:/usr/share/applications 相對路徑:使用../或~(/root的簡稱)。vim

處理目錄的經常使用命令:windows

  • ls: 列出目錄
  • cd:切換目錄
  • pwd:顯示目前的目錄
  • mkdir:建立一個新的目錄
  • rmdir:刪除一個空的目錄
  • cp: 複製文件或目錄
  • rm: 移除文件或目錄

注:可使用 man [命令] 來查看各個命令的使用文檔,如 :man cp。緩存

文件內容查看的命令:

  • cat 由第一行開始顯示文件內容
  • tac 從最後一行開始顯示,能夠看出 tac 是 cat 的倒著寫!
  • nl 顯示的時候,順道輸出行號!
  • more 一頁一頁的顯示文件內容
  • less 與 more 相似,可是比 more 更好的是,他能夠往前翻頁!
  • head 只看頭幾行
  • tail 只看尾巴幾行

Linux 磁盤管理

inux磁盤管理經常使用三個命令爲df、du和fdisk。

  • df:列出文件系統的總體磁盤使用量
  • du:檢查磁盤空間使用量
  • fdisk:用於磁盤分區

** df 命令 **

df命令參數功能:檢查文件系統的磁盤空間佔用狀況。能夠利用該命令來獲取硬盤被佔用了多少空間,目前還剩下多少空間等信息。 語法:

df [-ahikHTm] [目錄或文件名]
複製代碼

選項與參數:

  • -a :列出全部的文件系統,包括系統特有的 /proc 等文件系統;
  • -k :以 KBytes 的容量顯示各文件系統;
  • -m :以 MBytes 的容量顯示各文件系統;
  • -h :以人們較易閱讀的 GBytes, MBytes, KBytes 等格式自行顯示;
  • -H :以 M=1000K 取代 M=1024K 的進位方式;
  • -T :顯示文件系統類型, 連同該 partition 的 filesystem 名稱 (例如 ext3) 也列出;
  • -i :不用硬盤容量,而以 inode 的數量來顯示

du命令

Linux du命令也是查看使用空間的,可是與df命令不一樣的是Linux du命令是對文件和目錄磁盤使用的空間的查看,仍是和df命令有一些區別的,這裏介紹Linux du命令。

語法:

du [-ahskm] 文件或目錄名稱
複製代碼

選項與參數:

  • -a :列出全部的文件與目錄容量,由於默認僅統計目錄底下的文件量而已。
  • -h :以人們較易讀的容量格式 (G/M) 顯示;
  • -s :列出總量而已,而不列出每一個各別的目錄佔用容量;
  • -S :不包括子目錄下的總計,與 -s 有點差異。
  • -k :以 KBytes 列出容量顯示;
  • -m :以 MBytes 列出容量顯示;

Linux vim

Vim是從 vi 發展出來的一個文本編輯器。代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被普遍使用。簡單的來講, vi 是老式的字處理器,不過功能已經很齊全了,可是仍是有能夠進步的地方。 vim 則能夠說是程序開發者的一項很好用的工具。

史上最全Vim快捷鍵鍵位圖(入門到進階)

打開文件的命令

基本上 vim 共分爲三種模式,分別是命令模式(Command mode),插入模式(Insert mode)和末行模式(Last line mode)。 這三種模式的做用分別是:命令模式、輸入模式、末行模式。

vi/vim三種模式切換

命令模式

用戶剛剛啓動 vi/vim,便進入了命令模式。此狀態下敲擊鍵盤動做會被Vim識別爲命令,而非輸入字符。好比咱們此時按下i,並不會輸入一個字符,i被看成了一個命令。

如下是經常使用的幾個命令:

  • i 切換到插入模式,以輸入字符。
  • x 刪除當前光標所在處的字符。
  • : 切換到底線命令模式,以在最底一行輸入命令。

若想要編輯文本:啓動Vim,進入了命令模式,按下i,切換到輸入模式。 命令模式只有一些最基本的命令,所以仍要依靠底線命令模式輸入更多命令。

移動光標的位置:

字符串的複製、刪除、粘貼:

輸入模式

在命令模式下按下i、I、a、A、o、O、r和R中的某一個鍵就進入了輸入模式。 在輸入模式中,可使用如下按鍵:

  • 字符按鍵以及Shift組合,輸入字符
  • ENTER,回車鍵,換行
  • BACK SPACE,退格鍵,刪除光標前一個字符
  • DEL,刪除鍵,刪除光標後一個字符
  • 方向鍵,在文本中移動光標
  • HOME/END,移動光標到行首/行尾
  • Page Up/Page Down,上/下翻頁
  • Insert,切換光標爲輸入/替換模式,光標將變成豎線/下劃線
  • ESC,退出輸入模式,切換到命令模式

末行模式

在命令模式下按下:(英文冒號)就進入了底線命令模式。 末行模式能夠輸入單個或多個字符的命令,可用的命令很是多。 在末行模式中,基本的命令有:

  • :q 退出程序
  • :w 保存文件 按ESC鍵可隨時退出底線命令模式。

vim的保存文件和退出命令

  • :w —— 保存編輯後的文件內容,但不退出vim編輯器。這個命令的做用是把內存緩衝區中的數據寫到啓動vim時指定的文件中。
  • :w! —— 強制寫文件,即強制覆蓋原有文件。若是原有文件的訪問權限不容許寫入文件,例如,原有的文件爲只讀文件,則可以使用這個命令強制寫入。可是,這種命令用法僅當用戶是文件的屬主時才適用,而超級用戶則不受此限制。
  • :wq —— 保存文件內容後退出vim編輯器。這個命令的做用是把內存緩衝區中的數據寫到啓動vim時指定的文件中,而後退出vim編輯器。另一種替代的方法是用ZZ命令。
  • :wq! —— 強制保存文件內容後退出vim編輯器。這個命令的做用是把內存緩衝區中的數據強制寫到啓動vim時指定的文件中,而後退出vim編輯器。
  • ZZ —— 使用ZZ命令時,若是文件已經作過編輯處理,則把內存緩衝區中的數據寫到啓動vim時指定的文件中,而後退出vim編輯器。不然只是退出vim而已。注意,ZZ命令前面無需加冒號「:」,也無需按Enter鍵。
  • :q —— 在未作任何編輯處理而準備退出vim時,可使用此命令。若是已作過編輯處理,則vim不容許用戶使用「:q」命令退出,同時還會輸出下列警告信息:No write since last change (:quit! overrides)
  • :q! —— 強制退出vim編輯器,放棄編輯處理的結果。若是確實不須要保存修改後的文件內容,可輸入「:q!」命令,強行退出vim編輯器。
  • :w filename —— 把編輯處理後的結果寫到指定的文件中保存
  • :w! filename —— 把編輯處理後的結果強制保存到指定的文件中,若是文件已經存在,則覆蓋現有的文件。
  • :wq! filename —— 把編輯處理後的結果強制保存到指定的文件中,若是文件已經存在,則覆蓋現有文件,並退出vim編輯器。

Linux Yum 包管理器

Yum(全稱爲 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器。基於RPM包管理,可以從指定的服務器自動下載RPM包而且安裝,能夠自動處理依賴性關係,而且一次安裝全部依賴的軟件包,無須繁瑣地一次次下載、安裝。

yum 語法

yum [options] [command] [package ...]
複製代碼
  • options:可選,選項包括-h(幫助),-y(當安裝過程提示選擇所有爲"yes"),-q(不顯示安裝的過程)等等。
  • command:要進行的操做。
  • package操做的對象。

yum經常使用命令

1.列出全部可更新的軟件清單命令:yum check-update
2.更新全部軟件命令:yum update
3.僅安裝指定的軟件命令:yum install <package_name>
4.僅更新指定的軟件命令:yum update <package_name>
5.列出全部可安裝的軟件清單命令:yum list
6.刪除軟件包命令:yum remove <package_name>
7.查找軟件包 命令:yum search <keyword>
8.清除緩存命令:
    yum clean packages: 清除緩存目錄下的軟件包
    yum clean headers: 清除緩存目錄下的 headers
    yum clean oldheaders: 清除緩存目錄下舊的 headers
    yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除緩存目錄下的軟件包及舊的headers
複製代碼
相關文章
相關標籤/搜索