一、Linux的登陸流程 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
login:
用戶名:每個用戶名都有一個用戶ID(用戶標識符),計算機處理的就是用戶ID(數字)而不是用戶名(字符),。
認證機制:Authentication,比如密碼或者其他生物識別技術
授權:Authorization,資源訪問的權限授權。但是授權不代表權限可以濫用,因此需要審計。
審計:Audition(通過日志)。
登陸成功后,進入prompt,命令提示符界面,因此需要輸入命令來執行程序。這些命令既可以是二進制程序也可以是腳本文件。對于內核而言,嚴格區分兩者不同。一般情況,一個可執行程序文件,必須有程序的執行入口。一般這個二進制文件開始處,有幾個特殊字符,我們稱為程序的magic number(魔數)。
二、命令 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
1、命令格式
    
        command? options arguments
      
    
  
選項是用來修改命令的執行特性,它有兩種格式:短選項和長選項。其中,短選項可以合并。而且,有些選項是可以帶參數的。
參數指定命令的作用對象。
2、命令類型
內置命令(shell內置):bash內部的基本實現管理功能的命令,不同的shell內置不同的命令,一般都有cd 等。
    
        外部命令:在文件系統的某個路徑下有一個與命令名稱相對應的可執行文件,比如ls,su等。雖然執行命令都應該指定其所在路徑,但是由于環境變量的存在,所以不必指定其路徑,直接去PATH中查找路徑下,是否擁有該條命令,因此直接使用ls su就可以了。當然,如果執行一條命令就去查找環境變量,會特別慢,因此第一次查找后,會在內存的緩存中保存該命令和其路徑,使用hash命令可以查看,hash保存的鍵值對,查找時間復雜度O(1)。 
      
    
  
可以用type來顯示指定命令屬于哪種類型。
      
        
          hao@hao:~$
        
      
      
        which
      
      
        ls
      
      
/bin/
      
        ls
      
      
        
           hao@hao:~$
        
      
      
        which
      
      
        su
      
      
/bin/
      
        su
      
      
        
           hao@hao:~$
        
      
      
        which
      
       cd
    
  ? 這里的3,1,1表示命中的次數
      
        
          hao@hao:~
        
      
      
        
          
            $
          
        
        
          hash 
        
      
      ?戒腑    ?
      
        戒護
   
      
      
        3
      
          /usr/bin/
      
        which
      
      
        1
      
          /usr/bin/
      
        sudo
      
      
        1
      
          /usr/bin/printenv
    
  ?
3、常用命令:
ls: 顯示文件目錄及屬性(在文件及目錄專門講)
pwd: 顯示當前目錄
      
        
          root@hao:/home/hao#
        
      
      
        pwd
      
      
/home/hao
    
  cd: change directory切換目錄。家目錄(Home Directory),也叫主目錄,
cd ,不加參數可以直接回到家目錄,家目錄用~表示.
    
          cd ~ username,可以直接回到某個用戶的家目錄。
      
    
  
cd - 在當前目錄和前一次所在目錄來回切換
      
        
          root@hao:/home/hao# 
        
      
      
        ls
      
       /
      
        
bin   cdrom  etc   initrd.img  lost
      
      +
      
        found  mnt  proc  run   selinux  sys  usr  vmlinuz
boot  dev    home  lib         media       opt  root  sbin  srv      tmp  var
        
        
          
            root@hao:
          
        
      
      
        
          /home/hao#
        
      
      
        cd
      
       /
      
        usr
        
          
            
              root@hao
            
            
              :
            
          
        
      
      
        
          /usr# 
          
        
      
      
      
        
          
            root@hao:
          
        
      
      
        
          /home/hao#
        
      
      
        cd
      
       /usr
      
      
        
          
            root@hao:
          
        
      
      
        
          /usr#
        
      
      
        cd
      
      
      
        
          
            root@hao:
          
        
      
      
        
          ~#
        
      
      
        pwd
      
      
      /root
    
    
      
        
          root@hao:~#
        
      
      
        cd
      
       ~
      
        hao
        
          
            root@hao:/home/hao#
          
        
      
    
  ? date: 顯示當前時間
    
      
        
          
            4、環境變量
          
        
      
      
    
  
環境變量是命名的內存空間,變量聲明的過程就是向內存請求空間的過程,向內存空間放置數據的過程叫做賦值。
      
        
          hao@hao:~
        
      
      
        
          
            $
          
        
        
          printenv
        
        
SHELL
      
      =/bin/
      
        bash
TERM
      
      =
      
        xterm
XDG_SESSION_COOKIE
      
      =42b11f1fd75eaec16fec907e00000020-
      
        1413373884.792806
      
      -
      
        1786291659
      
      
        
HUSHLOGIN
      
      =
      
        FALSE
USER
      
      =
      
        hao
LS_COLORS
      
      =rs=
      
        0
      
      :di=
      
        01
      
      ;
      
        34
      
      :
      
        ln
      
      =
      
        01
      
      ;
      
        36
      
      :mh=
      
        00
      
      :pi=
      
        40
      
      ;
      
        33
      
      :so=
      
        01
      
      
        ;
。。。
MAIL
      
      =/var/mail/
      
        hao
PATH
      
      =/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/
      
        games
PWD
      
      =/home/
      
        hao
LANG
      
      =
      
        en_US
SHLVL
      
      =
      
        1
      
      
        
HOME
      
      =/home/
      
        hao
LANGUAGE
      
      =
      
        zh_CN:zh
LOGNAME
      
      =
      
        hao
LESSOPEN
      
      =| /usr/bin/lesspipe %
      
        s
LESSCLOSE
      
      =/usr/bin/lesspipe %s %
      
        s
_
      
      =/usr/bin/printenv
    
  
    
      
        
          5、使用幫助
        
      
      
    
  
對于內部命令,可以使用help command
對于外部命令,可以使用command --help 獲取簡要幫助信息。
    
        當然無論內部還是外部命令,可以通過man命令查看命令使用手冊,比如man ls,可以打開命令使用手冊。對于內部命令,不是man的內部命令,而是man的這個內部命令所屬的shell,如man cd,會顯示bashell的,因此內部命令很少使用man命令。
      
    
  
man:分章節,8個章節。默認顯示第一個出現的章節(不一定是第一章),可以通過whatis command 來查看命令出現的章節。
      
        
          hao@hao:~$
        
      
       whatis 
      
        ls
      
      
        
whatis: can
      
      
        '
      
      
        t set the locale; make sure $LC_* and $LANG are correct
      
      
        ls
      
       (
      
        1
      
      )               - list directory contents
    
    
        
          
            root@hao:~
          
        
        
          
            
              #
            
          
          
            whatis
          
           read
read (
        
        
          2
        
        )             - read from a 
        
          file
        
         descriptor
      
    ?
1:用戶命令 (/bin,/usr/bin,usr/local/bin)2:系統調用 3:庫調用? 4:設備文件 5:文件格式(解釋被指文件的語法) 6:游戲 7:雜項
8:管理命令(/sbin,/usr/sbin,/usr/local/sbin)
      DATE(
      
        1
      
      )                                              User Commands                                              DATE(
      
        1
      
      
        )
NAME
       
      
      
        date
      
       - print or set the system 
      
        date
      
       and 
      
        time
      
      
        
SYNOPSIS
       
      
      
        date
      
       [OPTION]... [+
      
        FORMAT]
       
      
      
        date
      
       [-u|--utc|--
      
        universal] [MMDDhhmm[[CC]YY][.ss]]
DESCRIPTION
       Display the current 
      
      
        time
      
      
        in
      
       the given FORMAT, or set the system 
      
        date
      
      
        .
       
      
      -d, --
      
        date
      
      =
      
        STRING
              display 
      
      
        time
      
       described by STRING, not `now
      
        '
      
      
       -f, --
      
        file
      
      =
      
        DATEFILE
              like 
      
      --
      
        date
      
       once 
      
        for
      
      
         each line of DATEFILE
...
    
      
    
  
    
        如/etc/passwd文件保存的是用戶的情況,man 5 passwd 便可以看該文件的語法。
      
    
  
      root@hao:~# 
      
        cat
      
       /etc/
      
        passwd
      
      
        
root:x:
      
      
        0
      
      :
      
        0
      
      :root:/root:/bin/
      
        bash
daemon:x:
      
      
        1
      
      :
      
        1
      
      :daemon:/usr/sbin:/bin/
      
        sh
      
      
        
bin:x:
      
      
        2
      
      :
      
        2
      
      :bin:/bin:/bin/
      
        sh
      
      
        
        ...
      
      
        
root@hao:
      
      ~# 
      
        man
      
      
        5
      
      
        passwd
      
    
  ?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
 
					微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
 
					

