Linux基礎知識—文件系統和常用命令解讀

一、    計算機組成

        計算機組成(Computer Composition)指的是計算機系統結構(Computer Architecture)的邏輯實現,包括機器機內的數據流和控制流的組成及邏輯設計等。其任務是在指令集系統結構確定分配給硬件系統的功能和概念結構之后,研究各組成部分的內部結構及相互聯系,以實現機器指令集的各種功能和特性。是改進后的馮.諾依曼計算機系統結構的典型實現。*

           根據其功能的劃分,計算機組成主要分為五部分:

1、  控制器(Control):整個計算機的中樞神經,其重要作用是對程序中規定的控制流信息進行解析,根據其要求進行控制,調度程序、數據、地址,協調內存與外設的訪問等

2、  運算器(Datapath):運算器的作用就是對數據進行各種算術運算和邏輯運算

3、  存儲器(Memory):主要用于存儲數據、各種信號及命令等信息,并根據控制器的要求提供相應的信息

4、  輸入設備(Input system):主要用于數據、信號、程序、命令等信息的輸入,

5、  輸出設備(Output system):主要用于將計算機的中間結果或者最終結果,及運算過程中的數據符號、文字或者控制信號等信息輸出出來

             其各個部分之間的作用關系可用下圖表示:

            QQ圖片20160913171739.jpg

             這五部分在我們實際的應用中的具體設備體現如下:

        CPU=運算器+控制器(Inter、AMD)
    
        存儲器=內存(臨時存儲)+硬盤
    
        Input設備=鍵盤、鼠標、掃描儀等
    
        Output設備=顯示器、打印機等

    二、    Linux各發行版本

            如今流行的Linux最早是由Linus Benedict Torvalds在1991年開始編寫,也稱GNU/Linux。因為Linux完全開放源代碼,吸引眾多杰出的程序員和開發者加入到GNU組織中來,對Linux內核不斷的進行修改、完善,便造就了今天GNU/Linux遍地開花、百花齊放的壯觀景象。Linux的發行版本根據其運作模式可以分為兩大類:一類是以商業公司維護的發行版本,比較著名的有Redhat、Novell等;一類是以社區組織維護的發行版本,比較著名的有Debian、Centos等 GNU/Linux有諸多發行分支_

    下面我們介紹幾個流行的分支

    1. Redhat系列

            Redhat Linux是1994年由一個叫Marc Ewing的人發布,1995年被ACC公司收購合并為紅帽軟件公司,該公司是一家提供開源解決方案的供應商,為諸多重要的IT技術(操作系統、存儲、中間件、虛擬化、云計算)提供關鍵任務的軟件與服務,同時也為全球客戶提供技術支持、培訓和咨詢服務,并收取相應的費用。 2002年紅帽公司推出了Linux高級服務器版,也就是后來的RHEL,DELL、IBM、HP、Oracle公司宣布支持該平臺;2007年3月,紅帽公司發布了最為經典的Redhat Enterprise Linux5版本,后續相繼推出RHEL5.5、……RHEL6,直至目前最新的RHEL7.2版本,它每五年左右更新一次,在系統的穩定性,前瞻性和安全性上有著極大的優勢。通過購買其序列號獲得紅帽官方的技術支持服務。

            Fedora Linux是基于Redhat Linux發行的一個針對個人的桌面化Linux版本,是由Fedora Project社區開發、紅帽公司贊助;最早其目標是為Redhat Linux制作并發布第三方的軟件包,Redhat Linux停止發行后,便由Fedora社區集成到Red Hat贊助的Fedora Project,成為Redhat新技術的試驗田;Redhat會將一些新技術寫進Fedora,被認為可用的技術最終會整合到Redhat Enterprise Linux版本中去;Fedora大約每6個月發布新版本,目前最新的版本是Fedora23

            Centos(Community Enterprise Operating System:社區企業操作系統),是根據Redhat Enterprise Linux開放的源代碼編譯而成的,在此基礎上修正了不少已知BUG,完全免費。 RHEL有兩種發行方式:1、以二進制的方式發行;2、以源代碼的方式發行;Centos就是通過重新編譯其源代碼而生成的開源操作系統,所以,CentOS 可以得到 RHEL 的所有功能,甚至是更好的軟件,只要不使用Redhat商標,其就是合法的。CentOS并不向用戶提供商業支持,也就不用負上任何商業責任。CentOS大概每六個月會更新一次,每兩年發行一次新版本。2014年CentOS社區被紅帽公司收購,CentOS繼續免費。

    2. Debian系列

            Debian是由GPL和其他自由軟件許可協議授權的自由軟件組成的操作系統,由Debian項目(Debian Project)組織維護。Debian項目是一個獨立的、分散的組織,由3000人志愿者組成,接受世界多個非盈利組織的資金支持,Software in the Public Interest提供支持并持有商標作為保護機構。 Debian是一個大的系統組織框架,在這個框架下有多種不同操作系統核心的分支計劃,主要為:

    •      采用Linux核心的Debian GNU/Linux系統

    •      采用GNU Hurd核心的Debian GNU/Hurd系統

    •      采用FreeBSD核心的Debian GNU/kFreeBSD系統

    •      采用NetBSD核心的Debian GNU/NetBSD系統。

    •      采用OpenSolaris核心構建而成的Nexenta OS系統。

            在這些Debian系統中,以采用Linux核心的Debian GNU/Linux最為著名。眾多的Linux發行版本,例如:Ubuntn、Knoppix

            Ubuntu是基于Debian發行版和GNOME桌面環境,Ubuntu建基于Debian的不穩定分支,更接近Debian的開發理念,它主要使用自由、開源的軟件。與Debian的不同在于它每6個月會發布一個新版本(即每年的四月與十月),每2年發布一個LTS長期支持版本。目前Ubuntu共有五個長期支持版本(Long Term Support,LTS):Ubuntu 6.06、8.04、10.04、12.04與14.04。Ubuntu 12.04和14.04桌面版與服務器版都有5年支持周期。而之前的長期支持版本為桌面版3年,服務器版5年。Ubuntu所有系統相關的任務均需使用Sudo指令是它的一大特色,這種方式比傳統的以系統管理員賬號進行管理工作的方式更為安全,此為Linux、Unix系統的基本思維之一。Ubuntu計劃強調易用性和國際化,在在發布5.04版時,已經把萬國碼(UTF-8 Unicode)作為系統默認編碼,用以應對各國各地區不同的語言文字,試圖給用戶提供一個無亂碼的交流平臺。是Linux初學者最佳選擇之一。其衍生版本不計其數。

            KNOPPIX基于Debian GNU/Linux,桌面系統主要采用KDE,主要軟件還包括GIMP、LibreOffice等。是一套光盤或USBU盤啟動的GNU/Linux系統(LiveCD),功能包括:自動硬件監測、支持常見的顯卡、聲卡、SCSI和USB設備,以及其它外設。KNOPPIX可用于Linux演示、光盤教學、系統急救,經過適當改造,還可以用于商業軟件的產品演示。它的優點是Knoppix的硬件支持極佳,即使是較新的產品,很多時都可以正常運用。缺點是對中日韓環境的支持極差,在系統預建的漢字字體檔里,錯字、缺字連篇,字體比例亦不成比例。

    3、    Slackwarex

            Slackware是Slackware Linux, Inc的Patrick Volkerding制作的Linux發行版本。Slackware走了一條與其他的發行版本(Red Hat、Debian、Gentoo、SuSE、Mandriva、Ubuntu等)不同的道路,它力圖成為“UNIX風格”的Linux發行版本。Slackware主要為x86 PC開發,Slackware 13.0,官方首次提供64位的版本下載。

            SUSE Linux原是以Slackware Linux為基礎,并提供完整德文使用界面的產品。SuSE于1992年末創辦,專門制為德國人推出量身訂作的SLS/Slackware軟件及UNIX/Linux說明文件。"S.U.S.E."后來改稱/簡短為"SuSE",德文意思為"Software-und System-Entwicklung",英文為"Software and system development"。SUSE Linux采用了不少Red Hat Linux的特質(使用RPM及/etc/sysconfig)。 SUSE包含一個安裝及系統管理工具YaST2。它能夠進行磁盤分區、系統安裝、在線更新、網絡及防火墻配置設置、用戶管理和其他更多的工作。它為原來復雜的設置工作提供了方便的組合界面。2014年1月,Novell公司收購了SUSE。其商業版本為SUSE Linux Enterprise server,目前最新的版本為SUSE Linux Enterprise 12

             OpenSUSE,前身為SUSE Linux和SuSE Linux Professional,是一個Linux發行版與項目,由SUSE與其他公司贊助。是Novell收購SuSE Linux后創建的發行版本。它的開發重心是為軟件開發者和系統管理者創造適用的開放源代碼的工具,并提供易于使用的桌面環境和功能豐富的服務器環境。openSUSE針對桌面環境進行了一系列的優化,對Linux新手較為友好。

    三、    Linux的哲學思想

        1、    一切皆文件
        2、    由眾多功能單一的程序組成,一個程序只做一件,且要做好
        3、    盡量避免與用戶交互
        4、    配置文件以文本文件形式存在

                在Linux系統中,與windows系統不同的是,軟硬件、命令、數據本身均是以文件的形式存在;為了統一管理,功能不同的程序歸類放在同一個路徑下,這些程序的功能很單一,只做一件事,這樣不同的程序之間不會相互影響,提高了系統應用性能;程序本身盡可能的避免了和用戶之間的交互,也就是說程序本身會通過調用(被調用)來完成事務,不需要用戶過多的干預這個過程,這樣為系統的自動化運維提供便利,復雜的事務可以通過調用多個單任務的程序來完成;所有的配置類文件也是通過文本文件來存儲在系統中,便于查看和修改。

    四、    Linux系統上命令格式及常用命令

           Linux系統上命令通用格式為: COMMAND    [OPTIONS]    [ARGUMENTS] 命令        選項        參數

    1、    命令

            命令可分為兩類:內置命令和外部命令

    • 內置命令:由shell自帶的命令,For example:cd,break,(un)alias,type,file,history,pwd……是系統在啟動之初就已經調入到內存中,是常駐內存之中,執行效率高

    • 外部命令:獨立的可執行文件,文件即命令;系統根據環境變量中的設置查找來執行。例如:ls、ifconfig、useradd

    2、    選項

           指定命令的運行特性,有兩種:

           長選項:例如–size等

           短選項:例如-l,-d等

    3、    參數

           指定命令的作用對象,可同時又多個(多個存在時,參數之間必須用空白字符間隔開)

    4、常用命令:

              ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date

           【ifconfig】    configure a network interface

            OPTIONS
                -a    顯示所有可用網絡接口狀態信息
                -s    簡單顯示網絡狀態,類似netstat –i
                Interface 只顯示$interface的配置信息及網絡狀態
                up/down    用法是:ifconfig interface up/down    啟動/關閉interface接口
    
            FOR EXAMPLE:  
    
                1、ifconfig -a
                    [root@localhost ~]# ifconfig -a
                    eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
                        inet 192.168.10.107  netmask 255.255.255.0  broadcast 192.168.10.255
                        inet6 fe80::20c:29ff:fece:ee8e  prefixlen 64  scopeid 0x20<link>
                        ether 00:0c:29:ce:ee:8e  txqueuelen 1000  (Ethernet)
                        RX packets 8482  bytes 1252170 (1.1 MiB)
                        RX errors 0  dropped 0  overruns 0  frame 0
                        TX packets 915  bytes 138736 (135.4 KiB)
                        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
                    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
                        inet 127.0.0.1  netmask 255.0.0.0
                        inet6 ::1  prefixlen 128  scopeid 0x10<host>
                        loop  txqueuelen 0  (Local Loopback)
                        RX packets 0  bytes 0 (0.0 B)
                        RX errors 0  dropped 0  overruns 0  frame 0
                        TX packets 0  bytes 0 (0.0 B)
                        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
                2、ifconfig -s
                    [root@localhost ~]# ifconfig -s
                    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
                    eno16777  1500     9563      0      0 0           964      0      0      0 BMRU
                    lo       65536        0      0      0 0             0      0      0      0 LRU
    
                3、ifconfig eno16777736 up(down)
                    [root@localhost ~]# ifconfig eno16777736 up
    
                在REHL7以后的版本中,系統默認ip V2代替了ifconfig,如果要使用ifconfig命令則需要安裝net-tools工具
                    ~]#rpm –ivh net-tools-2.0-0.17.20131004git.el7.x86_64.rpm 
                    或者
                    ~]#yum install –y net-tools

           【echo】    display a line of text

            OPTIONS
                    -n    輸出內容后不換行
                    -e    可解釋轉義字符
                    -E    不能解釋轉義字符(命令默認選項)
            FOR EXAMPLE:
                1、echo -n 'hello,friends'
                   [root@localhost ~]# echo -n 'hello,friends'
                    hello,friends[root@localhost ~]# 
    
                2、echo -e 'hello,\nfriends'
                    [root@localhost ~]# echo -e 'hello,\nfriends'
                    hello,
                    friends
    
                3、echo -E 'hello,\nfriends'
                    [root@localhost ~]# echo -E 'hello,\nfriends'
                    hello,\nfriends
    
                    *   \n    轉義意思是:換行  *

           【tty】    print the file name of the terminal connected to standard input查看當前終端設備類型

            OPTIONS
                    -s  什么都不顯示,只是返回一個狀態值
    
            FOR EXAMPLE
                1、tty
                    [root@localhost ~]# tty
                    /dev/pts/0
    
    
               *   tty是Linux系統的輸出設備(字符型),有這么幾種類型:
                    虛擬終端:tty(1-6)  系統啟動之后直接調用的界面
                    偽終端:pts/n       通過遠程或者在虛擬終端中開啟的界面
                    串口終端:tyySn     計算機串行接口連接的終端

           【startX】  start X window

            OPTIONS
                    -w  在工作站上強制啟動X會話
                    -x  使用.xinitrc腳步啟動會話
    
            FOR EXAMPLE
                1、startx 
                    在X終端上啟動XWindow界面
    
                2、startx -w
    
                3、startx -x .xinitrc

           【export】  Set export attribute for shell variables.

            OPTIONS
                    -f  代表[變量名稱]中為函數名稱;
                    -n  移除變量,變量本身沒有被刪除,只是無法在后續SHELL中起作用
                    -p  列出所有的SHELL中設定的環境變量
    
            FOR EXAMPLE
                1、export -f Func
                    將Func這個變量定義為函數名稱
                2、export -n Func
                    從定義的環境變量列表中移除,但是$Func本身不受影響
                    [root@localhost ~]# export Func=100
                    [root@localhost ~]# echo $Func
                    100
                    [root@localhost ~]# export -p
                    declare -x Func="100"
                    declare -x HISTCONTROL="ignoredups"
                    declare -x HISTSIZE="1000"
                    declare -x HOME="/root"
                    [root@localhost ~]# export -n Func
                    [root@localhost ~]# export -p
                    declare -x HISTCONTROL="ignoredups"
                    declare -x HISTSIZE="1000"
                    declare -x HOME="/root"
                    [root@localhost ~]#echo $Func
                    100
                3、export -p
                    [root@localhost ~]# export -p
                    declare -x Func="100"
                    declare -x HISTCONTROL="ignoredups"
                    declare -x HISTSIZE="1000"
                    declare -x HOME="/root"

           【pwd】 Print the name of the current working directory

            OPTIONS
                    -L  當目錄連接鏈接時,顯示鏈接路徑  
                    -P  顯示目錄的物理路徑
    
            FOR EXAMPLE
                1、pwd  等效pwd -L
                     [root@localhost init.d]# pwd
                     /etc/rc.d/init.d
                2、pwd -P
                    [root@localhost init.d]# pwd -P
                    /etc/rc.d/init.d
                3、pwd -L
                    [root@localhost init.d]# pwd -L
                    /etc/init.d

          

            【history】  Display or manipulate the history list

            OPTIONS
                    -c  刪除history列表中的歷史記錄
                    -a  附加當前會話中的記錄到歷史記錄文件中去,默認~/.bash_history
                    -r  從歷史記錄文件和附加的內容列表中讀取記錄
            FOR EXAMPLE
                1、history n
                    [root@localhost ~]# history 5
                    230  history -a
                    231  history -w
                    232  history
                    233  history 20
                    234  history 5
                2、history -c
                    [root@localhost ~]# history 5
                    1  history -t
                    2  history 5
                    [root@localhost ~]# history -c
                    [root@localhost ~]# history 5
                    1  history 5
                3、HISTTIMEFORMAT
                    [root@localhost ~]# export HISTTIMEFORMAT='%F %T'
                    [root@localhost init.d]# history 5
                    140  2016-09-14 23:42:55man history
                    141  2016-09-14 23:43:00help history
                    142  2016-09-15 06:59:36export HISTTIMEFORMAT='%F %T'
                    143  2016-09-15 06:59:39history 
                    144  2016-09-15 06:59:46history 5
                    ***設置history命令的輸出格式
    
                    [root@localhost ~]# export HISTSIZE=0
                    ***限制命令歷史記錄的總條數,0表示禁用命令歷史記錄功能
    
                    [root@localhost ~]# export HISTFILE=~/.cmd_history
                    ***設置命令歷史記錄的保存位置,默認是~/.bash_history
    
                    [root@localhost ~]# export HISTIGNORE='pwd:ls:ls -ltr:'
                    ***設置某些命令將不被保存到歷史記錄中
    
                    [root@localhost ~]# export HISTCONTROL=erasedups
                    ***清理所有重復的命令歷史條目
    
                    [root@localhost ~]# export HISTCONTROL=ignoredups
                    ***剔除連續重復的命令歷史條目
    
                    [root@localhost ~]# export HISTCONTROL=ignorespace
                    ***不記錄以空格開頭的命令歷史條目

           【shutdown】    shutdown the system

            OPTIONS
                    -H  Halt the system(Halt同shutdown -h)關閉系統
                    -P  退出系統并關閉電源
                    -r  重啟系統
                    -k  只發送關機警告并不真正關機
                    -c
                    -t  在改變到其他runrever之前,告訴init多久以后關機
                    -n  不用init,而是自己來關機。不鼓勵使用此選項
    
            FOR EXAMPLE
                1、shutdown -H
    
                2、shutdown -P 關機
    
                3、shutdown -h +5
                    [root@localhost init.d]# shutdown -h +5(分鐘)
                    Shutdown scheduled for Thu 2016-09-15 09:18:47 CST, use 'shutdown -c' to ca
    
                4、shutdown -c
                    [root@localhost init.d]# shutdown -c
                    Broadcast message from root@localhost (Thu 2016-09-15 09:15:02 CST):
                    The system shutdown has been cancelled at Thu 2016-09-15 09:16:02 CST!

           【poweroff】    Power Off the system

            OPTIONS
    
                    --halt  Halt the mochine關閉設備
                    -p      switch off the mochine 切斷電源
                    -f      force immediate halt/poweroff/reboot強制立刻停止/斷電/重啟系統
                    -w      只增加記錄/var/log/wtmp,但不進行停止/斷電/重啟系統操作
                    -d      不記入記錄
            FOR EXAMPLE
                1、poweroff
                    直接斷電關閉設備

           【reboot】   Reboot the system

            OPTIONS
    
                    --halt  Halt the mochine關閉設備
                    -p      switch off the mochine 切斷電源
                    -f      force immediate halt/poweroff/reboot強制立刻停止/斷電/重啟系統
                    -w      只增加記錄/var/log/wtmp,但不進行停止/斷電/重啟系統操作
                    -d      不記入記錄
    
            FOR EXAMPLE
                1、reboot
                    直接重啟設備   
    
    
    
             --------------------shutdown、halt、poweroff、reboot三者之間的區別--------------------------
    
                從man幫助信息可以看到使用同樣的選項,會得到同樣的結果
    
                1、shutdown
                    shutdown命令是安全的將系統關閉,shutdown執行它的工作是送信號〔signal〕給init程序﹐要
                    求它改變runlevel。Runlevel 0被用來停機〔halt〕﹐runlevel 6是用來重新激活〔reboot〕系
                    統﹐而runlevel 1則是被用來讓系統進入管理工作可以進行的狀態﹔這是預設的﹐假定沒有-h也沒有
                    -r參數給shutdown。要想了解在停機〔halt〕或者重新開機〔reboot〕過程中做了哪些動作﹐你可以
                    在這個文件/etc/inittab里看到這些runlevels相關的資料。
                2、halt
                    其實halt就是調用shutdown -h,halt執行時殺死應用程序的進程,執行sync系統調用,文件系統
                    寫操作完成之后就會停止內核。
                3、reboot
                    與halt同理,只是此命令默認重啟,halt是關機
                4、Poweroff
                    不建議在多用戶下使用
                5、init
                    所有命令的核心,shutdown執行它的工作是送信號〔signal〕給init程序﹐要求它改變runlevel。
                    Runlevel 0被用來停機〔halt〕﹐runlevel 6是用來重新激活〔reboot〕系統﹐而runlevel 1
                    則是被用來讓系統進入管理工作可以進行的狀態﹔這是預設的﹐假定沒有-h也沒有-r參數給shutdown。
                    要想了解在停機〔halt〕或者重新開機〔reboot〕過程中做了哪些動作﹐你可以在這個文件/etc/inittab
                    里看到這些runlevels相關的資料。

           【hwclock】 read and set hardware clock            USAGE                hwclock [FUNCTION] [OPTIONS]

            FUNCTIONS
                    -r  讀取硬件時鐘并且顯示
                    -s  將硬件時鐘同步到系統時鐘hctosys
                    -w  將系統時鐘同步到硬件時鐘systohc
                      --systz   基于當前的timezone設置同步硬件時鐘
                    -c
                      --compare 定期比較CMOS時鐘和系統時鐘

           【date】  print or set the system date and time

            SYNOPSIS
                date [OPTIONS].. [+FORMAT]
                date [-u|--utc|--univeral] [MMDDhhmm[[CC]YY][.SS]]
            OPTIONS
                    -f  類似--date 顯示需要查看的DATEFILE的每行時間戳
                    -r  顯示FILE的最后一次修改時間
                    -d  根據字符描述來顯示日期與時間,不包括‘now’,描述使用雙引號
                    -s  根據字符串來設定日期與時間,字符串帶雙引號
    
            FORMAT  
                    %% :打印%
                    %n : 下一行
                    %t : 跳格
                    %H : 小時(00..23)
                    %I : 小時(01..12)
                    %k : 小時(0..23)                    
                    %l : 小時(1..12)                    
                    %M : 分鐘(00..59)                    
                    %p : 顯示本地 AM 或 PM                    
                    %r : 直接顯示時間 (12 小時制,格式為 hh:mm:ss [AP]M)
                    %s : 從 1970 年 1 月 1 日 00:00:00 UTC 到目前為止的秒數 
                    %S : 秒(00..61)                    
                    %T : 直接顯示時間 (24 小時制)                   
                    %X : 相當于 %H:%M:%S                    
                    %Z : 顯示時區 %a : 星期幾 (Sun..Sat)                    
                    %A : 星期幾 (Sunday..Saturday)                   
                    %b : 月份 (Jan..Dec)                   
                    %B : 月份 (January..December)                    
                    %c : 直接顯示日期與時間                    
                    %d : 日 (01..31)                    
                    %D : 直接顯示日期 (mm/dd/yy)                   
                    %h : 同 %b                    
                    %j : 一年中的第幾天 (001..366)                    
                    %m : 月份 (01..12)                   
                    %U : 一年中的第幾周 (00..53) (以 Sunday 為一周的第一天的情形)                   
                    %w : 一周中的第幾天 (0..6)                  
                    %W : 一年中的第幾周 (00..53) (以 Monday 為一周的第一天的情形)                   
                    %x : 直接顯示日期 (mm/dd/yy)                  
                    %y : 年份的最后兩位數字 (00.99)                  
                    %Y : 完整年份 (0000..9999)
            FOR EXAMPLE
                1、設置時間
                    date -s //設置當前時間,只有root權限才能設置,其他只能查看。
    
                    date -s 20150523 //設置成20150523,這樣會把具體時間設置成空00:00:00
    
                    date -s 01:01:01 //設置具體時間,不會對日期做更改
    
                    date -s “01:01:01 2016-05-23″ //這樣可以設置全部時間
    
                    date -s “01:01:01 20150523″ //這樣可以設置全部時間
    
                    date -s “2016-05-23 01:01:01″ //這樣可以設置全部時間
    
                    date -s “20160523 01:01:01″ //這樣可以設置全部時間
    
                2、日期時間查詢
    
                    date -d '1 day ago' +'%Y-%m-%d'    
                    date -d '+1 day' +%Y-%m-%d
                    date -d '-1 day' +%Y-%m-%d
                    date -d '+1 month' +%Y-%m-%d
                    date -d '+1 yeas' +%Y-%m-%d

    五、如何獲取命令幫助

            Linux系統的命令眾多,再配合各種選項,那命令的使用方法永遠也記不完;那我們如何獲取命令的幫助呢?我們知道,在Linux系統中命令可分為內置命令和外部命令,查看一個命令是內置命令還是外部命令,我們使用type命令,比如:

        [root@localhost ~]# type cd ifconfig
        cd is a shell builtin       /*  cd是SHELL的內置命令
        ifconfig is hashed (/usr/sbin/ifconfig)     /*ifconfig是外部命令

    常用的獲取命令幫助的途徑有以下幾個

            1、獲取內置命令的幫助信息

                  獲取內置命令的幫助信息的方式,比如help cd,得到如下信息

            [root@localhost ~]# help cd
            cd: cd [-L|[-P [-e]]] [dir]
            Change the shell working directory.                                                            
            Change the current directory to DIR.  The default DIR is the value of the
            HOME shell variable.
    
            Options:
            -L      force symbolic links to be followed
            -P      use the physical directory structure without following symbolic
            links
            -e      if the -P option is supplied, and the current working directory
            cannot be determined successfully, exit with a non-zero status
    
            The default is to follow symbolic links, as if `-L' were specified.
    
            Exit Status:
            Returns 0 if the directory is changed, and if $PWD is set successfully when
            -P is used; non-zero otherwise.

            2、獲取外部命令的幫助信息

                  獲取外部命令的幫助信息的方式有多種,常用有以下幾種:

            a、COMMAND --HELP
    
                以簡要格式顯示自帶的幫助文檔,比如ifconfig --help
                [root@localhost ~]# ifconfig --help
                Usage:
                  ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]
                  [add <address>[/<prefixlen>]]
                  [del <address>[/<prefixlen>]]
                  [[-]broadcast [<address>]]  [[-]pointopoint [<address>]]
                  [netmask <address>]  [dstaddr <address>]  [tunnel <address>]
                  [outfill <NN>] [keepalive <NN>]
                  [hw <HW> <address>]  [mtu <NN>]
                  [[-]trailers]  [[-]arp]  [[-]allmulti]
                  [multicast]  [[-]promisc]
                  [mem_start <NN>]  [io_addr <NN>]  [irq <NN>]  [media <type>]
                  [txqueuelen <NN>]
                  [[-]dynamic]
                  [up|down] ...
    
                  <HW>=Hardware Type.
                  List of possible hardware types:
                    loop (Local Loopback) slip (Serial Line IP) cslip (VJ Serial Line IP) 
                    slip6 (6-bit Serial Line IP) cslip6 (VJ 6-bit Serial Line IP) adaptive (Adaptive Serial
                    Line IP) 
                    ash (Ash) ether (Ethernet) ax25 (AMPR AX.25) 
                    netrom (AMPR NET/ROM) rose (AMPR ROSE) tunnel (IPIP Tunnel) 
                    ppp (Point-to-Point Protocol) hdlc ((Cisco)-HDLC) lapb (LAPB) 
                    arcnet (ARCnet) dlci (Frame Relay DLCI) frad (Frame Relay Access Device) 
                    sit (IPv6-in-IPv4) fddi (Fiber Distributed Data Interface) hippi (HIPPI) 
                    irda (IrLAP) ec (Econet) x25 (generic X.25) 
                    infiniband (InfiniBand) eui64 (Generic EUI-64) 
                  <AF>=Address family. Default: inet
                  List of possible address families:
                    unix (UNIX Domain) inet (DARPA Internet) inet6 (IPv6) 
                    ax25 (AMPR AX.25) netrom (AMPR NET/ROM) rose (AMPR ROSE) 
                    ipx (Novell IPX) ddp (Appletalk DDP) ec (Econet) 
                    ash (Ash) x25 (CCITT X.25) 
    
            b、man COMMAND            
                man(manual)屬于專業的命令幫助手冊,位于/var/share/man文件中,講解很專業、全面。man命令包括10個章節,具體如下:
    
                    man1:用戶命令(user commands)
                    man2:系統內部調用命令(system calls)
                    man3:C庫調用(library functions)
                    man4:設備文件及特殊文件(special files)
                    man5:文件格式(配置文件格式)(file formats)
                    man6:游戲使用幫助(games)
                    man7:雜項(conventions and miscellany)
                    man8:管理工具及守護進程(administration and privileged commands)
                    man L:(math library functions)
                    man N:tcl functions tcl函數
    
                當我們man一個命令的時候,在文檔的左上角會提示我們的幫助文檔屬于man的哪一章的命令幫助,或者可以通過man n COMMAND
                命令指定其章節,如下:
    
                [root@localhost ~]# man ifconfig
                IFCONFIG(8)           Linux System Administrator's Manual          IFCONFIG(8)               
                [root@localhost ~]# man 1 date
                DATE(1)                          User Commands                         DATE(1

               c、info COMMAND

                獲取COMMAND的在線文檔

               d、程序自帶文檔,比如:

                README:程序的相關信息
                INSTALL:安裝幫助文檔
                CHANGES:程序的改動信息

               f、官方文檔,比如RHEL文檔:http://www.redhat.com/doc

      由以上幾種途徑基本可以解決您的問題了。

    六、Linux發行版常用目錄

             FHS(Filesystem Hierarchy Standard)規定了類Unix系統的各個系統目錄的功能及存儲文件,下面我們來解讀下linux系統中的目錄

            /: Root directory 根目錄,Linux內核掛載的起始位置

            /bin: Essential user command binaries (for use by all users) 基本的用戶命令文件,任何用戶均可調用,比如:cp、date、dd、rm

            /boot: Static files of the boot loader 系統引導加載程序的靜態文件,系統進入用戶模式之前的加載文件均在這里

            /dev: Device files 系統的設備文件 存儲著關于各部分硬件設備的資料,比如:tty、pts、mem(不可讀)

            /etc:Host-specific system configuration 主機的系統配置文件,幾個特殊的目錄如下:

                      X11/       Configuration for the X Window system (optional)
                      sgml/            Configuration for SGML (optional)
                      xml/           Configuration for XML (optional)

            /home:  User home directories (optional)  用戶的家目錄,創建用戶默認生成,一般目錄名同用戶名。例如:/home/USERNAME

            /lib:Essential shared libraries and kernel modules 基本的共享庫及內核模塊。

            /lib(qual):Alternate format essential shared libraries (optional) 交替格式共享庫。例如lib32、lib64

            /media:Mount point for removable media 可移動介質的掛載點,可以認為是擴展掛載點。與/mnt類似

            /mnt:Mount point for a temporarily mounted filesystem 其他臨時系統文件的掛載點。

            /opt:Add-on application software packages 留給附加的應用程序軟件包的

            /root:Home directory for the root user (optional) 超級管理員root的家目錄

            /run:Run-time variable data 運行時的變量數據,這個目錄包含系統信息數據描述了系統自啟動。這個目錄下的文件必須被清除(刪除或截斷)在引導過程的開始。

            /sbin:System binaries 管理員命令存儲目錄,沒有子目錄且不能隨意創建

            /srv:Data for services provided by this system 系統服務的相關數據

            /tmp:Temporary files 臨時文件存儲。

            /usr: shareable, read-only data,must not be written to。屬于系統文件的最主要部分(/除外),符合FHS用戶共用此目錄,其子目錄解讀如下:

                      bin/        Most user commands 大部分的用戶命令,比如:perl,python,tclsh

                      include/       Directory for standard include files 一些可能系統調用的C相關的文件

                      lib/        Libraries for programming and packages 庫程序和包

                      local/       Local hierarchy 本地的層級目錄,bin/,sbin/,lib/,lib64/,share/,src/,games/,include/等

                      sbin/       Non-essential standard system binaries 只有管理員調用的非標準的系統函數

                      share/       Architecture-independent data 系統雜項,但是有幾個重要的目錄

                                     man/ Manual pages 使用手冊目錄

                                     doc/ 程序的說明文檔

                                     zeroinfo/ Timezone information and configuration (optional)   時區信息和配置信息

                      src/        Source code (optional)源代碼文件可以存儲在這里,僅供參考

            /sys:Kernel and system information virtual filesystem 主要存儲的是硬件信息、驅動、個別內核信息

            /proc:Kernel and process information virtual filesystem 看解釋跟/sys一樣,只是此文件目錄存儲的是實際標準的流程和系統信息,比如CPU、內存等信息

            /var:/var contains variable data files. This includes spool directories and files, administrative and logging data, and transient and temporary files. 主要包括一些緩存文件、管理的log文件、動態生成的臨時文件、spoool、mail文件,也是比較重要的目錄


    原創文章,作者:396064847,如若轉載,請注明出處:http://www.www58058.com/46706

    (0)
    396064847396064847
    上一篇 2016-09-17 23:51
    下一篇 2016-09-18 02:08

    相關推薦

    • Linux 第四天: (07月28日) 練習和作業

      Linux 第四天: (07月28日) 練習和作業         定義別名命令baketc, 每天將/etc/目錄下所有文件, 備份到/testdir獨立的子目錄下, 并要求子目錄格式為backupYYYY-mm-dd, 備份過程可見 alias baketc='cp -a /etc/ /testdir/b…

      Linux干貨 2016-08-08
    • 簡述Linux那些年–發展史

      Linux發展史 作者:任飛鵬          日期:2016-10-13 Linux簡介: Linux同Windows一樣,都是一套OS(操作系統)。Linux是一套開源的類Unix操作系統,可以免費使用和自由傳播。是一個基于POSIX和UNIX的多用戶、多任務、支…

      Linux干貨 2016-10-19
    • Linux文件系統管理

      一、什么是文件系統     我理解的文件系統就是管理磁盤分區上數據的索引信息,其實文件系統就是一種應用程序,只不過是用來維護和管理分區上的數據而已,就跟操作系統是用來管理底層硬件一樣。不同的分區可以有不同的文件系統。 二、文件系統類型     在linux系統上主要有如下類型的文件系統: &nbsp…

      Linux干貨 2016-03-03
    • vim編輯器

      一、vim簡介    vi: Visual Interface,文本編輯器     文本: ASCII, Unicode     文本編輯種類:         行編輯器: sed…

      Linux干貨 2016-08-10
    • 初學Linux

         已經學習了Linux一周了,從原來的設計網頁、動畫影視制作、3D模型到現在的黑白界面虛擬世界,從原來吃睡由我到現在重回高三生活,說實話,一開始還是不太能適應的,尤其是眼睛,酸脹痛。不過,越努力越幸運,也覺得linux其實很有意思。。以下是我第一篇微博的內容,也是我學習linux一周所總結的知識。 首先,學習一門知識就要先了解他的歷史…

      Linux干貨 2017-07-15
    • 硬鏈接與軟鏈接的簡述

      我們知道文件都有文件名與數據,這在 Linux 上被分成兩個部分:用戶數據 (user data) 與元數據 (metadata)。用戶數據,即文件數據塊 (data block),數據塊是記錄文件真實內容的地方;而元數據則是文件的附加屬性,如文件大小、創建時間、所有者等信息。在 Linux 中,元數據中的 inode 號(inode 是文件元數據的一部分但…

      Linux干貨 2016-10-20

    評論列表(1條)

    • 馬哥教育
      馬哥教育 2016-09-20 11:14

      寫的很好,繼續保持,加油

    欧美性久久久久