linux介紹、命令(基本命令、經常使用命令、使用方法、基本格式)

操做系統(科普章節)

目標

  • 瞭解操做系統及做用

1. 操做系統(Operation System,OS)

一個例子說明操做系統html

一個例子說明操做系統

操做系統做爲接口的示意圖python

001_OS做爲接口的示意圖

沒有安裝操做系統的計算機,一般被稱爲 裸機linux

  • 若是想在 裸機 上運行本身所編寫的程序,就必須用機器語言書寫程序
  • 若是計算機上安裝了操做系統,就能夠在操做系統上安裝支持的高級語言環境,用高級語言開發程序

1.1 操做系統的做用

  • 是現代計算機系統中 最基本和最重要 的系統軟件
  • 是 配置在計算機硬件上的第一層軟件,是對硬件系統的首次擴展
  • 主要做用是管理好硬件設備,併爲用戶和應用程序提供一個簡單的接口,以便於使用
  • 而其餘的諸如編譯程序、數據庫管理系統,以及大量的應用軟件,都直接依賴於操做系統的支持

1.2 不一樣應用領域的主流操做系統

  • 桌面操做系統
  • 服務器操做系統
  • 嵌入式操做系統
  • 移動設備操做系統

1> 桌面操做系統

  • Windows 系列
    • 用戶羣體大
  • macOS
    • 適合於開發人員
  • Linux
    • 應用軟件少

2> 服務器操做系統

  • Linux
    • 安全、穩定、免費
    • 佔有率高
  • Windows Server
    • 付費
    • 佔有率低

002_機房照片

3> 嵌入式操做系統

  • Linux

4> 移動設備操做系統

  • iOS
  • Android(基於 Linux

1.3 虛擬機

虛擬機(Virtual Machine)指經過軟件模擬的具備完整硬件系統功能的、運行在一個徹底隔離環境中的完整計算機系統正則表達式

  • 虛擬系統經過生成現有操做系統的全新虛擬鏡像,具備真實操做系統徹底同樣的功能
  • 進入虛擬系統後,全部操做都是在這個全新的獨立的虛擬系統裏面進行,能夠獨立安裝運行軟件,保存數據,擁有本身的獨立桌面,不會對真正的系統產生任何影響
  • 並且可以在現有系統與虛擬鏡像之間靈活切換的一類操做系統

操做系統的發展史(科普章節)

目標

  • 瞭解操做系統的發展歷史
  • 知道 Linux 內核及發行版的區別
  • 知道 Linux 的應用領域

01. 操做系統的發展歷史

1.1 Unix

1965 年以前的時候,電腦並不像如今同樣廣泛,它可不是通常人能碰的起的,除非是軍事或者學院的研究機構,並且當時大型主機至多能提供30臺終端(30個鍵盤、顯示器),鏈接一臺電腦數據庫

001_大型機

爲了解決數量不夠用的問題ubuntu

  • 1965 年左後由 貝爾實驗室 加入了 麻省理工學院 以及 通用電氣 合做的計劃 —— 該計劃要創建一套多使用者(multi-user)、多任務(multi-processor)、多層次(multi-level) 的 MULTICS 操做系統,想讓大型主機支持 300 臺終端
  • 1969 年先後這個項目進度緩慢,資金短缺,貝爾實驗室退出了研究
  • 1969 年從這個項目中退出的 Ken Thompson 當時在實驗室無聊時,爲了讓一臺空閒的電腦上可以運行 "星際旅行(Space Travel)" 遊行,在 8 月份左右趁着其妻子探親的時間,用了 1 個月的時間,使用匯編寫出了 Unix 操做系統的原型
  • 1970 年,美國貝爾實驗室的 Ken Thompson,以 BCPL 語言爲基礎,設計出很簡單且很接近硬件的 B 語言(取BCPL的首字母),而且他用 B 語言 寫了第一個 UNIX 操做系統
  • 1971 年,一樣酷愛 "星際旅行(Space Travel)" 的 Dennis M.Ritchie 爲了能早點兒玩上游戲,加入了Thompson 的開發項目,合做開發 UNIX,他的主要工做是改造 B 語言,由於B 語言 的跨平臺性較差
  • 1972 年,Dennis M.Ritchie 在 B 語言 的基礎上最終設計出了一種新的語言,他取了 BCPL 的第二個字母做爲這種語言的名字,這就是 C 語言
  • 1973 年初,C 語言的主體完成,Thompson 和 Ritchie 火燒眉毛地開始用它徹底重寫了如今大名鼎鼎的 Unix 操做系統

002_unix之父

肯·湯普遜(左)和丹尼斯·裏奇(右)windows

1.2 Minix

  • 由於 AT&T(通用電氣) 的政策改變,在 Version 7 Unix 推出以後,發佈新的使用條款,將 UNIX 源代碼私有化,在大學中不能再使用 UNIX 源代碼
  • Andrew S. Tanenbaum(塔能鮑姆) 教授爲了能 在課堂上教授學生操做系統運做的細節,決定在不使用任何 AT&T 的源代碼前提下,自行開發與 UNIX 兼容的操做系統,以免版權上的爭議
  • 以 小型 UNIX(mini-UNIX)之意,將它稱爲 MINIX

1.3 Linux

  • 1991 年 林納斯(Linus) 就讀於赫爾辛基大學期間,對 Unix 產生濃厚興趣,嘗試着在Minix 上作一些開發工做
  • 由於 Minix 只是教學使用,所以功能並不強,林納斯 常常要用他的終端 仿真器(Terminal Emulator) 去訪問大學主機上的新聞組和郵件,爲了方便讀寫和下載文件,他本身編寫了磁盤驅動程序和文件系統,這些在後來成爲了 Linux 第一個內核的雛形,當時,他年僅 21 歲!
  • 林納斯 利用 GNU 的 bash 當作開發環境,gcc 當作編譯工具,編寫了 Linux 內核,一開始 Linux 並不能兼容 Unix
    • 即 Unix 上跑的應用程序不能在 Linux 上跑,即應用程序與內核之間的接口不一致
    • 一開始 Linux 只適用於 386,後來通過全世界的網友的幫助,最終可以兼容多種硬件

004_林納斯

C 語言

  • 在把 UNIX 移植到其餘類型的計算機上使用時,C 語言強大的移植性(Portability)在此顯現
    • 機器語言和彙編語言都不具備移植性,爲 x86 開發的程序,不可能在 Alpha,SPARC 和 ARM 等機器上運行
  • 而 C 語言程序則可使用在任意架構的處理器上,只要那種架構的處理器具備對應的 C 語言編譯器和庫,而後將 C 源代碼編譯、鏈接成目標二進制文件以後便可運行

Unix 家譜

003_unix家譜

02. Linux 內核及發行版

2.1 Linux 內核版本

  • 內核(kernel)是系統的心臟,是運行程序和管理像磁盤和打印機等硬件設備的核心程序,它提供了一個在裸設備與應用程序間的抽象層
  • Linux 內核版本又分爲 穩定版 和 開發版,兩種版本是相互關聯,相互循環
    • 穩定版:具備工業級強度,能夠普遍地應用和部署。新的穩定版相對於較舊的只是修正一些 bug 或加入一些新的驅動程序
    • 開發版:因爲要試驗各類解決方案,因此變化很快
  • 內核源碼網址:http://www.kernel.org

全部來自全世界的對 Linux 源碼的修改最終都會彙總到這個網站,由 Linus 領導的開源社區對其進行甄別和修改最終決定是否進入到 Linux 主線內核源碼中安全

2.2 Linux 發行版本

  • Linux 發行版(也被叫作 GNU/Linux 發行版)一般包含了包括桌面環境、辦公套件、媒體播放器、數據庫等應用軟件
  • 常見的發行版本以下:bash

    • Ubuntu
    • Redhat
    • Fedora
    • openSUSE
    • Linux Mint
    • Debian
    • Manjaro
    • Mageia
    • CentOS
    • Arch
  • 十大 Linux 服務器發行版排行榜:http://os.51cto.com/art/201612/526126.htm服務器

在幾乎每一份與 Linux 有關的榜單上,基於 Debian 的 Ubuntu 都佔有一席之位。Canonical 的Ubuntu 賽過其餘全部的 Linux 服務器發行版 ―― 從簡單安裝、出色的硬件發現,到世界級的商業支持,Ubuntu確立了難以企及的嚴格標準

03. Linux 的應用領域

3.1 服務器領域

  • Linux 在服務器領域的應用是其重要分支
  • Linux 免費、穩定、高效等特色在這裏獲得了很好的體現
    • 早期由於維護、運行等緣由一樣受到了很大的限制
    • 近些年來 Linux 服務器市場獲得了飛速的提高,尤爲在一些高端領域尤其普遍

3.2 嵌入式領域

  • 近些年來 Linux 在嵌入式領域的應用獲得了飛速的提升
  • Linux 運行穩定、對網絡的良好支持性、低成本,且能夠根據須要進行軟件裁剪,內核最小能夠達到幾百 KB 等特色,使其近些年來在嵌入式領域的應用獲得很是大的提升

主要應用:機頂盒、數字電視、網絡電話、程控交換機、手機、PDA、等都是其應用領域,獲得了 Google、三星、摩托羅拉、NEC 等公司的大力推廣

機頂盒

3.3 我的桌面領域

  • 此領域是傳統 Linux 應用最薄弱的環節
  • 傳統 Linux 因爲界面簡單、操做複雜、應用軟件少的缺點,一直被 Windows 所壓制
  • 近些年來隨着 Ubuntu、Fedora 等優秀桌面環境的興起,同時各大硬件廠商對其支持的加大,Linux 在我的桌面領域的佔有率在逐漸的提升

在 Ubuntu 中玩 QQ

005_ubuntu_qq

 

文件和目錄(理解)

目標

  • 理解 Linux 文件目錄的結構

01. 單用戶操做系統和多用戶操做系統(科普)

  • 單用戶操做系統:指一臺計算機在同一時間 只能由一個用戶 使用,一個用戶獨自享用系統的所有硬件和軟件資源

    • Windows XP 以前的版本都是單用戶操做系統
  • 多用戶操做系統:指一臺計算機在同一時間能夠由 多個用戶 使用,多個用戶共同享用系統的所有硬件和軟件資源

    • Unix 和 Linux 的設計初衷就是多用戶操做系統

02. Windows 和 Linux 文件系統區別

2.1 Windows 下的文件系統

  • 在 Windows 下,打開 「計算機」,咱們看到的是一個個的驅動器盤符:

001_Windows下的多個盤

  • 每一個驅動器都有本身的根目錄結構,這樣造成了多個樹並列的情形,如圖所示:

001-Windows下多個盤爲節點的目錄分支

2.2 Linux 下的文件系統

  • 在 Linux 下,咱們是看不到這些驅動器盤符,咱們看到的是文件夾(目錄):

002_Ubuntu文件目錄

  • Ubuntu 沒有盤符這個概念,只有一個根目錄 /,全部文件都在它下面

003-Linux的樹形示意圖

2.3 用戶目錄

位於 /home/user,稱之爲用戶工做目錄或家目錄,表示方式:

/home/user
~

2.4 Linux 主要目錄速查表

  • /:根目錄,通常根目錄下只存放目錄,在 linux 下有且只有一個根目錄,全部的東西都是從這裏開始
    • 當在終端裏輸入 /home,實際上是在告訴電腦,先從 /(根目錄)開始,再進入到 home 目錄
  • /bin、/usr/bin:可執行二進制文件的目錄,如經常使用的命令 ls、tar、mv、cat 等
  • /boot:放置 linux 系統啓動時用到的一些文件,如 linux 的內核文件:/boot/vmlinuz,系統引導管理器:/boot/grub
  • /dev:存放linux系統下的設備文件,訪問該目錄下某個文件,至關於訪問某個設備,經常使用的是掛載光驅mount /dev/cdrom /mnt
  • /etc:系統配置文件存放的目錄,不建議在此目錄下存放可執行文件,重要的配置文件有
    • /etc/inittab
    • /etc/fstab
    • /etc/init.d
    • /etc/X11
    • /etc/sysconfig
    • /etc/xinetd.d
  • /home:系統默認的用戶家目錄,新增用戶帳號時,用戶的家目錄都存放在此目錄下
    • ~ 表示當前用戶的家目錄
    • ~edu 表示用戶 edu 的家目錄
  • /lib、/usr/lib、/usr/local/lib:系統使用的函數庫的目錄,程序在執行過程當中,須要調用一些額外的參數時須要函數庫的協助
  • /lost+fount:系統異常產生錯誤時,會將一些遺失的片斷放置於此目錄下
  • /mnt: /media:光盤默認掛載點,一般光盤掛載於 /mnt/cdrom 下,也不必定,能夠選擇任意位置進行掛載
  • /opt:給主機額外安裝軟件所擺放的目錄
  • /proc:此目錄的數據都在內存中,如系統核心,外部設備,網絡狀態,因爲數據都存放於內存中,因此不佔用磁盤空間,比較重要的文件有:/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等
  • /root:系統管理員root的家目錄
  • /sbin、/usr/sbin、/usr/local/sbin:放置系統管理員使用的可執行命令,如 fdisk、shutdown、mount 等。與 /bin 不一樣的是,這幾個目錄是給系統管理員 root 使用的命令,通常用戶只能"查看"而不能設置和使用
  • /tmp:通常用戶或正在執行的程序臨時存放文件的目錄,任何人均可以訪問,重要數據不可放置在此目錄下
  • /srv:服務啓動以後須要訪問的數據目錄,如 www 服務須要訪問的網頁數據存放在 /srv/www 內
  • /usr:應用程序存放目錄
    • /usr/bin:存放應用程序
    • /usr/share:存放共享數據
    • /usr/lib:存放不能直接運行的,倒是許多程序運行所必需的一些函數庫文件
    • /usr/local:存放軟件升級包
    • /usr/share/doc:系統說明文件存放目錄
    • /usr/share/man:程序說明文件存放目錄
  • /var:放置系統執行過程當中常常變化的文件
    • /var/log:隨時更改的日誌文件
    • /var/spool/mail:郵件存放的目錄
    • /var/run:程序或服務啓動後,其 PID 存放在該目錄下
    • 經常使用 Linux 命令的基本使用

      目標

      • 理解學習 Linux 終端命令的緣由
      • 經常使用 Linux 命令體驗

      01. 學習 Linux 終端命令的緣由

      • 不少人可能在電視或電影中看到過相似的場景,黑客面對一個黑色的屏幕,上面飄着密密麻麻的字符,梆梆一頓敲,就完成了竊取資料的任務。
      • Linux 剛出世時沒有什麼圖形界面,全部的操做全靠命令完成,就如同電視裏的黑客那樣,充滿了神祕與晦澀。近幾年來,儘管 Linux 發展得很是迅速,圖形界面愈來愈友好,可是在真正的開發過程當中,Linux 命令行的應用仍是佔有很是重要的席位,並且許多Linux功能在命令行界面要比圖形化界面下運行的快。能夠說不會命令,就不算會 Linux。
      • 在職場中,大量的 服務器維護工做 都是在 遠程 經過 SSH 客戶端 來完成的,並無圖形界面,全部的維護工做都須要經過命令來完成。如 磁盤操做、文件存取、目錄操做、進程管理、文件權限 設定等
      • Linux 發行版本的命令大概有 200 多個,可是經常使用的命令只有 10 多個而已

      學習終端命令的技巧:

      • 不須要死記硬背,對於經常使用命令,用的多了,天然就記住了
      • 不要嘗試一次學會全部的命令,有些命令是很是不經常使用的,臨時遇到,臨時百度就能夠

      02. 經常使用 Linux 命令的基本使用

      序號 命令 對應英文 做用
      01 ls list 查看當前文件夾下的內容
      02 pwd print wrok directory 查看當前所在文件夾
      03 cd [目錄名] change directory 切換文件夾
      04 touch [文件名] touch 若是文件不存在,新建文件
      05 mkdir [目錄名] make directory 建立目錄
      06 rm [文件名] remove 刪除指定的文件名
      07 clear clear 清屏

      小技巧

      • ctrl + shift + = 放大終端窗口的字體顯示
      • ctrl + - 縮小終端窗口的字體顯示

      03. 自動補全

      • 在敲出 文件目錄命令 的前幾個字母以後,按下 tab 鍵
        • 若是輸入的沒有歧義,系統會自動補全
        • 若是還存在其餘 文件目錄命令,再按一下 tab 鍵,系統會提示可能存在的命令

      小技巧

      • 按  光標鍵能夠在曾經使用過的命令之間來回切換
      • 若是想要退出選擇,而且不想執行當前選中的命令,能夠按 ctrl + c

      Linux 終端命令格式

      目標

      • 瞭解終端命令格式
      • 知道如何查閱終端命令幫助信息

      01. 終端命令格式

      command [-options] [parameter] 

      說明:

      • command:命令名,相應功能的英文單詞或單詞的縮寫
      • [-options]:選項,可用來對命令進行控制,也能夠省略
      • parameter:傳給命令的參數,能夠是 零個、一個 或者 多個

      [] 表明可選

      02. 查閱命令幫助信息(知道)

      提示

      • 現階段只須要 知道 經過如下兩種方式能夠查詢命令的幫助信息
      • 先學習經常使用命令及經常使用參數的使用便可,工做中若是遇到問題能夠藉助網絡搜索命令的中文資料

      2.1 --help

      command --help 

      說明:

      • 顯示 command 命令的幫助信息

      2.2 man

      man command 

      說明:

      • 查閱 command 命令的使用手冊

      man 是 manual 的縮寫,是 Linux 提供的一個 手冊,包含了絕大部分的命令、函數的詳細使用說明

      使用 man 時的操做鍵:

      操做鍵 功能
      空格鍵 顯示手冊頁的下一屏
      Enter 鍵 一次滾動手冊頁的一行
      b 回滾一屏
      f 前滾一屏
      q 退出
      /word 搜索 word 字符串

      Linux基本命令(一)

      目標

      • 熟練使用 Linux經常使用的命令
      • ls
      • clear
      • cd
      • pwd
      • mkdir
      • touch
      • rm
      • cp
      • mv
      • tree
      • chmod
      • find
      • grep
      • 重定向
      • 軟鏈接、硬連接
      • 壓縮
      • shutdown
      • reboot
      • who
      • exit
      • passwd
      • sudo

      1> 查看文件信息:ls

      ls是英文單詞list的簡寫,其功能爲列出目錄的內容,是用戶最經常使用的命令之一,它相似於DOS下的dir命令。

      Linux文件或者目錄名稱最長能夠有265個字符,「.」表明當前目錄,「..」表明上一級目錄,以「.」開頭的文件爲隱藏文件,須要用 -a 參數才能顯示。

      ls經常使用參數:

      參數 含義
      -a 顯示指定目錄下全部子目錄與文件,包括隱藏文件
      -l 以列表方式顯示文件的詳細信息
      -h 配合 -l 以人性化的方式顯示文件大小

      圖中列出的信息含義以下圖所示:

      與DOS下的文件操做相似,在Unix/Linux系統中,也一樣容許使用特殊字符來同時引用多個文件名,這些特殊字符被稱爲通配符。

      通配符 含義
      * 文件表明文件名中全部字符
      ls te* 查找以te開頭的文件
      ls *html 查找結尾爲html的文件
      表明文件名中任意一個字符
      ls ?.c 只找第一個字符任意,後綴爲.c的文件
      ls a.? 只找只有3個字符,前2字符爲a.,最後一個字符任意的文件
      [] [」和「]」將字符組括起來,表示能夠匹配字符組中的任意一個。「-」用於表示字符範圍。
      [abc] 匹配a、b、c中的任意一個
      [a-f] 匹配從a到f範圍內的的任意一個字符
      ls [a-f]* 找到從a到f範圍內的的任意一個字符開頭的文件
      ls a-f 查找文件名爲a-f的文件,當「-」處於方括號以外失去通配符的做用
      \ 若是要使通配符做爲普通字符使用,能夠在其前面加上轉義字符。「?」和「*」處於方括號內時不用使用轉義字符就失去通配符的做用。
      ls \*a 查找文件名爲*a的文件

      2> 清屏:clear

      clear做用爲清除終端上的顯示(相似於DOS的cls清屏功能),也可以使用快捷鍵:Ctrl + l ( 「l」 爲字母 )。

      3> 切換工做目錄: cd

      在使用Unix/Linux的時候,常常須要更換工做目錄。cd命令能夠幫助用戶切換工做目錄。Linux全部的目錄和文件名大小寫敏感

      cd後面可跟絕對路徑,也能夠跟相對路徑。若是省略目錄,則默認切換到當前用戶的主目錄。

      命令 含義
      cd 切換到當前用戶的主目錄(/home/用戶目錄),用戶登錄的時候,默認的目錄就是用戶的主目錄。
      cd ~ 切換到當前用戶的主目錄(/home/用戶目錄)
      cd . 切換到當前目錄
      cd .. 切換到上級目錄
      cd - 可進入上次所在的目錄

      注意:

      • 若是路徑是從根路徑開始的,則路徑的前面須要加上 「 / 」,如 「 /mnt 」,一般進入某個目錄裏的文件夾,前面不用加 「 / 」。

      4> 顯示當前路徑:pwd

      使用pwd命令能夠顯示當前的工做目錄,該命令很簡單,直接輸入pwd便可,後面不帶參數。

      5> 建立目錄:mkdir

      經過mkdir命令能夠建立一個新的目錄。參數-p可遞歸建立目錄。

      須要注意的是新建目錄的名稱不能與當前目錄中已有的目錄或文件同名,而且目錄建立者必須對當前目錄具備寫權限。

      6> 刪除文件:rm

      可經過rm刪除文件或目錄。使用rm命令要當心,由於文件刪除後不能恢復。爲了防止文件誤刪,能夠在rm後使用-i參數以逐個確認要刪除的文件。

      經常使用參數及含義以下表所示:

      參數 含義
      -i 以進行交互式方式執行
      -f 強制刪除,忽略不存在的文件,無需提示
      -r 遞歸地刪除目錄下的內容,刪除文件夾時必須加此參數

      7> 拷貝:cp

      cp命令的功能是將給出的文件或目錄複製到另外一個文件或目錄中,至關於DOS下的copy命令。

      經常使用選項說明:

      選項 含義
      -a 該選項一般在複製目錄時使用,它保留連接、文件屬性,並遞歸地複製目錄,簡單而言,保持文件原有屬性。
      -f 已經存在的目標文件而不提示
      -i 交互式複製,在覆蓋目標文件以前將給出提示要求用戶確認
      -r 若給出的源文件是目錄文件,則cp將遞歸複製該目錄下的全部子目錄和文件,目標文件必須爲一個目錄名。
      -v 顯示拷貝進度

      8> mv:移動、重命名

      用戶可使用mv命令來移動文件或目錄,也能夠給文件或目錄重命名。

      經常使用選項說明:

      選項 含義
      -f 禁止交互式操做,若有覆蓋也不會給出提示
      -i 確認交互方式操做,若是mv操做將致使對已存在的目標文件的覆蓋,系統會詢問是否重寫,要求用戶回答以免誤覆蓋文件
      -v 顯示移動進度

      9> 建立文件: touch

      用戶能夠經過touch來建立一個空的文件,demo以下:

      touch hello.txt

      說明:

      • 則會在當前路徑下建立名字爲hello.txt的空文件
      • Linux系統中沒有嚴格的後綴(格式),因此建立文件時能夠命名爲任意的文

      Linux基本命令(二)

      1. 輸出重定向命令:>

      Linux容許將命令執行結果重定向到一個文件,本應顯示在終端上的內容保存到指定文件中。

      如:ls > test.txt ( test.txt 若是不存在,則建立,存在則覆蓋其內容 )

      注意: >輸出重定向會覆蓋原來的內容,>>輸出重定向則會追加到文件的尾部。

      2. 分屏顯示:more

      查看內容時,在信息過長沒法在一屏上顯示時,會出現快速滾屏,使得用戶沒法看清文件的內容,此時可使用more命令,每次只顯示一頁,按下空格鍵能夠顯示下一頁,按下q鍵退出顯示,按下h鍵能夠獲取幫助。

      3. 管道:|

      管道:一個命令的輸出能夠經過管道作爲另外一個命令的輸入。

      管道咱們能夠理解現實生活中的管子,管子的一頭塞東西進去,另外一頭取出來,這裏「 | 」的左右分爲兩端,左端塞東西(寫),右端取東西(讀)。

      4. 創建連接文件:ln

      Linux連接文件相似於Windows下的快捷方式。

      連接文件分爲軟連接和硬連接。

      軟連接:軟連接不佔用磁盤空間,源文件刪除則軟連接失效。

      硬連接:硬連接只能連接普通文件,不能連接目錄。

      使用格式:

      ln 源文件 連接文件
      ln -s 源文件 連接文件

      若是沒有-s選項表明創建一個硬連接文件,兩個文件佔用相同大小的硬盤空間,即便刪除了源文件,連接文件仍是存在,因此-s選項是更常見的形式。

      注意:若是軟連接文件和源文件不在同一個目錄,源文件要使用絕對路徑,不能使用相對路徑。

      5. 查看或者合併文件內容:cat

      6. 文本搜索:grep

      Linux系統中grep命令是一種強大的文本搜索工具,grep容許對文本文件進行模式查找。若是找到匹配模式, grep打印包含模式的全部行。

      grep通常格式爲:

      grep [-選項] ‘搜索內容串’文件名

      在grep命令中輸入字符串參數時,最好引號或雙引號括起來。

      例如:

      grep 'a' 1.txt

      經常使用選項說明:

      選項 含義
      -v 顯示不包含匹配文本的全部行(至關於求反)
      -n 顯示匹配行及行號
      -i 忽略大小寫

      grep搜索內容串能夠是正則表達式。

      正則表達式是對字符串操做的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個「規則字符串」,這個「規則字符串」用來表達對字符串的一種過濾邏輯。

      grep經常使用正則表達式:

      參數 含義
      ^a 行首,搜尋以 m 開頭的行;grep -n '^a' 1.txt
      ke$ 行尾,搜尋以 ke 結束的行;grep -n 'ke$' 1.txt
      [Ss]igna[Ll] 匹配 [] 裏中一系列字符中的一個;搜尋匹配單詞signal、signaL、Signal、SignaL的行;grep -n '[Ss]igna[Ll]' 1.txt
      . (點)匹配一個非換行符的字符;匹配 e 和 e 之間有任意一個字符,能夠匹配 eee,eae,eve,可是不匹配 ee,eaae;grep -n 'e.e' 1.txt

      7. 查找文件:find

      find命令功能很是強大,一般用來在特定的目錄下搜索符合條件的文件,也能夠用來搜索特定用戶屬主的文件。

      經常使用用法:

      命令 含義
      find ./ -name test.sh 查找當前目錄下全部名爲test.sh的文件
      find ./ -name '*.sh' 查找當前目錄下全部後綴爲.sh的文件
      find ./ -name "[A-Z]*" 查找當前目錄下全部以大寫字母開頭的文件
      find /tmp -size 2M 查找在/tmp 目錄下等於2M的文件
      find /tmp -size +2M 查找在/tmp 目錄下大於2M的文件
      find /tmp -size -2M 查找在/tmp 目錄下小於2M的文件
      find ./ -size +4k -size -5M 查找當前目錄下大於4k,小於5M的文件
      find ./ -perm 777 查找當前目錄下權限爲 777 的文件或目錄

      8. 歸檔管理:tar

      計算機中的數據常常須要備份,tar是Unix/Linux中最經常使用的備份工具,此命令能夠把一系列文件歸檔到一個大文件中,也能夠把檔案文件解開以恢復數據。

      tar使用格式 tar [參數] 打包文件名 文件

      tar命令很特殊,其參數前面可使用「-」,也能夠不使用。

      經常使用參數:

      參數 含義
      -c 生成檔案文件,建立打包文件
      -v 列出歸檔解檔的詳細過程,顯示進度
      -f 指定檔案文件名稱,f後面必定是.tar文件,因此必須放選項最後
      -t 列出檔案中包含的文件
      -x 解開檔案文件

      注意:除了f須要放在參數的最後,其它參數的順序任意。

      9. 文件壓縮解壓:gzip

      tar與gzip命令結合使用實現文件打包、壓縮。 tar只負責打包文件,但不壓縮,用gzip壓縮tar打包後的文件,其擴展名通常用xxxx.tar.gz。

      gzip使用格式以下:

      gzip  [選項]  被壓縮文件

      經常使用選項:

      選項 含義
      -d 解壓
      -r 壓縮全部子目錄

      tar這個命令並無壓縮的功能,它只是一個打包的命令,可是在tar命令中增長一個選項(-z)能夠調用gzip實現了一個壓縮的功能,實行一個先打包後壓縮的過程。

      壓縮用法:tar cvzf 壓縮包包名 文件1 文件2 ...

      -z :指定壓縮包的格式爲:file.tar.gz

      解壓用法: tar zxvf 壓縮包包名

      -z:指定壓縮包的格式爲:file.tar.gz

      解壓到指定目錄:-C (大寫字母「C」)

      10. 文件壓縮解壓:bzip2

      tar與bzip2命令結合使用實現文件打包、壓縮(用法和gzip同樣)。

      tar只負責打包文件,但不壓縮,用bzip2壓縮tar打包後的文件,其擴展名通常用xxxx.tar.gz2。

      在tar命令中增長一個選項(-j)能夠調用bzip2實現了一個壓縮的功能,實行一個先打包後壓縮的過程。

      壓縮用法:tar -jcvf 壓縮包包名 文件...(tar jcvf bk.tar.bz2 *.c)

      解壓用法:tar -jxvf 壓縮包包名 (tar jxvf bk.tar.bz2)

      11. 文件壓縮解壓:zip、unzip

      經過zip壓縮文件的目標文件不須要指定擴展名,默認擴展名爲zip。

      壓縮文件:zip [-r] 目標文件(沒有擴展名) 源文件

      解壓文件:unzip -d 解壓後目錄文件 壓縮文件

      12. 查看命令位置:which

      13. 修改文件權限:chmod

      chmod 修改文件權限有兩種使用格式:字母法與數字法。

      字母法:chmod u/g/o/a +/-/= rwx 文件

      [ u/g/o/a ] 含義
      u user 表示該文件的全部者
      g group 表示與該文件的全部者屬於同一組( group )者,即用戶組
      o other 表示其餘之外的人
      a all 表示這三者皆是
      [ +-= ] 含義
      + 增長權限
      - 撤銷權限
      = 設定權限
      rwx 含義
      r read 表示可讀取,對於一個目錄,若是沒有r權限,那麼就意味着不能經過ls查看這個目錄的內容。
      w write 表示可寫入,對於一個目錄,若是沒有w權限,那麼就意味着不能在目錄下建立新的文件。
      x excute 表示可執行,對於一個目錄,若是沒有x權限,那麼就意味着不能經過cd進入這個目錄。

      若是須要同時進行設定擁有者、同組者以及其餘人的權限,參考以下:

      數字法:「rwx」 這些權限也能夠用數字來代替

      字母 說明
      r 讀取權限,數字代號爲 "4"
      w 寫入權限,數字代號爲 "2"
      x 執行權限,數字代號爲 "1"
      - 不具任何權限,數字代號爲 "0"

      如執行:chmod u=rwx,g=rx,o=r filename 就等同於:chmod u=7,g=5,o=4 filename

      chmod 751 file:

      • 文件全部者:讀、寫、執行權限
      • 同組用戶:讀、執行的權限
      • 其它用戶:執行的權限

      注意:若是想遞歸全部目錄加上相同權限,須要加上參數「 -R 」。 如:chmod 777 test/ -R 遞歸 test 目錄下全部文件加 777 權限

      14. 切換到管理員帳號

      Ubuntu下切換到root的簡單命令:

      15. 設置用戶密碼:passwd

      在Unix/Linux中,超級用戶可使用passwd命令爲普通用戶設置或修改用戶密碼。用戶也能夠直接使用該命令來修改本身的密碼,而無需在命令後面使用用戶名。

      16. 退出登陸帳戶: exit

      • 若是是圖形界面,退出當前終端;
      • 若是是使用ssh遠程登陸,退出登錄帳戶;
      • 若是是切換後的登錄用戶,退出則返回上一個登錄帳號。

      17. 查看登陸用戶:who

      who命令用於查看當前全部登陸系統的用戶信息。

      經常使用選項:

      選項 含義
      -q或--count 只顯示用戶的登陸帳號和登陸用戶的數量
      -u或--heading 顯示列標題

      18. 關機重啓:reboot、shutdown、init

      命令 含義
      reboot 從新啓動操做系統
      shutdown –r now 從新啓動操做系統,shutdown會給別的用戶提示
      shutdown -h now 馬上關機,其中now至關於時間爲0的狀態
      shutdown -h 20:25 系統在今天的20:25 會關機
      shutdown -h +10 系統再過十分鐘後自動關機
相關文章
相關標籤/搜索