天天看點

linux----進入目錄需要哪些權限、重要目錄及重要指令詳解、使用指令安裝gcc/g++、gdb、vim

一、進入目錄需要哪些權限, 在目錄中執行增删查(cd, touch, ls, rm, mv等)改檔案動作,需要哪些權限。

權限:在linux下有三種使用者,一種是所有者,一種是所屬組,一種是其他使用者。

          在linux中使用指令ll(或者 ls -l)可以顯示目前目錄下檔案的詳細資訊。如下圖所示。

[[email protected] test_code]$ ll
total 12
-rwxrwxr-x. 1 zxy zxy 4686 Feb 26 23:56 a.out
-rw-rw-r--. 1 zxy zxy   74 Feb 26 23:55 test.c
           

         在上圖 rwxrwxr-x 中,每三個字元為一組,分别為所有者,所屬組和其他使用者。其中r表示可讀權限,w表示可寫權限,x表示可執行權限。

       (1)當删掉 w 權限時,能夠使用cd指令進入該目錄,也能夠使用ls檢視該目錄下的檔案,但不能在該目錄下rm、mv和touch檔案。

        (2)以 file 目錄為例,當删掉所有者 r 權限時,能夠使用cd指令進行改目錄,不能使用,ls檢視該目錄下的檔案。

        (3)當删掉 x 權限時,不能使用 cd 指令進入該目錄。

[[email protected] ~]$ ll
drwxrwxr-x. 2 zxy zxy 4096 Feb 27 00:26 file
[[email protected] ~]$ chmod u-w file
[[email protected] ~]$ ll
total 44
dr-xrwxr-x. 2 zxy zxy 4096 Feb 27 00:26 file
[[email protected] ~]$ cd file
[[email protected] file]$ ls
test
[[email protected] file]$ mv test one
mv: cannot move `test' to `one': Permission denied
[[email protected] file]$ rm test
rm: cannot remove `test': Permission denied
[[email protected] file]$ touch test1
touch: cannot touch `test1': Permission denied
[[email protected] file]$ cd ..
[[email protected] ~]$ chmod u-r file
[[email protected] ~]$ cd file
[[email protected] file]$ ls
ls: cannot open directory .: Permission denied
[[email protected] file]$ cd ..
[[email protected] ~]$ chmod u-x file
[[email protected] ~]$ cd file
bash: cd: file: Permission denied
[[email protected] ~]$ ll
total 44
d---rwxr-x. 2 zxy zxy 4096 Feb 27 00:26 file


           

二、了解以下Linux下的重要目錄/proc, /sys, /SElinux, /bin, /usr/lib, /usr/local, /var, /tmp

/proc:  proc是linux系統下一個很重要的目錄。它不是一個真正的檔案系統,而是一個虛拟的檔案系統。它不存在于磁盤,而是存在于系統記憶體中。proc以檔案的方式為通路系統核心的操作提供接口。很多系統的資訊,如記憶體使用情況,CPU使用情況,程序資訊等等這些資訊,都可以通過檢視/proc下的對應檔案來獲得。proc檔案系統是動态從系統核心讀出所需資料的。

/sys:  sys是一種基于ram的檔案系統,和proc一樣。sys檔案系統是一個類似于proc檔案系統的特殊檔案系統,用于将系統中的裝置組織成層次結構,并向使用者模式程式提供詳細的核心資料結構資訊。簡而言之,就是使用者可以通過對sys檔案系統的通路,來看核心的一些驅動或者裝置等。

/SElinux:   SELinux(Security-Enhanced Linux) 是美國國家安全局(NSA)對于強制通路控制的實作,是 Linux曆史上最傑出的新本機安全性授權。SELinux是一種基于 域-類型 模型(domain-type)的強制通路控制(MAC)安全系統,它由NSA編寫并設計成核心子產品包含到核心中,相應的某些安全相關的應用也被打了SELinux的更新檔,最後還有一個相應的安全政策。任何程式對其資源享有完全的控制權。

/bin:  bin是binary的縮寫,用來存放所有使用者皆可用的系統程式,系統啟動或者系統修複時可用,/bin 簡單來說就是可執行的指令的目錄。

/usr/lib:  目錄 /usr/lib/ 中含有更多用于使用者程式的庫檔案,也被用來貯存使用者指令。/usr/lib系統級的。,使用者級的。而/lib是核心級的,/usr/local/lib是使用者級的。

/usr/local:  /usr/local該目錄主要用于存放那些手動安裝的軟體,即 不是通包管理工具或apt-get安裝的軟體。

/var:  /var檔案系統一般運作經常要改變的檔案。

/tmp:  /tmp檔案是linux運作時産生的緩存檔案,用于加速二次打開檔案的速度。/tmp檔案在linux關機時會被系統預設指令删除的。一般使用者或正在執行的程式臨時存放檔案的目錄,任何人都可以通路,重要資料不可放置在此目錄下

三、了解以下重要指令. du, df, top, free, pstack, su, sudo(sudo -, sudo -s), adduser, password

du:  du指令是對檔案和目錄磁盤使用的空間的檢視。文法 du [選項] [檔案]

       -a或-all 顯示目錄中個别檔案的大小。

       -b或-bytes 顯示目錄或檔案大小時,以byte為機關。

       -c或--total 除了顯示個别目錄或檔案的大小外,同時也顯示所有目錄或檔案的總和。

       -k或--kilobytes 以KB(1024bytes)為機關輸出。

       -m或--megabytes 以MB為機關輸出。

       -s或--summarize 僅顯示總計,隻列出最後加總的值。

df:  linux中df指令參數功能是檢查檔案系統的磁盤空間占用情況。可以利用該指令來擷取硬碟被占用了多少空間,目前還剩下多少空間等資訊。文法  df [選項]

       -a 顯示所有檔案系統的磁盤使用情況,包括0塊(block)的檔案系統,如/proc檔案系統。 

       -k 以k位元組為機關顯示。 

       -i 顯示i節點資訊,而不是磁盤塊。 

       -t 顯示各指定類型的檔案系統的磁盤空間使用情況。 

       -x 列出不是某一指定類型檔案系統的磁盤空間使用情況(與t選項相反)。 

       -T 顯示檔案系統類型。

top:  top指令是linux下常用的性能分析工具,能夠實時顯示系統中各個程序的資源占用狀況,類似于Windows的任務管理器。

free:  free指令可以顯示目前系統未使用的和已使用的記憶體數目,還可以顯示被核心使用的記憶體緩沖區。  

pstack:  pstack指令可以顯示每個程序的棧跟蹤。pstack 指令必須由相應程序的屬主或 root 運作。可以使用 pstack 來确定程序挂起的位置。此指令允許使用的唯一選項是要檢查的程序的PID。它隻有一個參數就是pid。

su:  su指令用于切換目前使用者身份到其他使用者身份,變更時須輸入所要變更的使用者帳号與密碼。

      文法 su [選項] [參數]

      -c<指令>或--command=<指令>:執行完指定的指令後,即恢複原來的身份;

      -f或——fast:适用于csh與tsch,使shell不用去讀取啟動檔案;

      -l或——login:改變身份時,也同時變更工作目錄,以及HOME,SHELL,USER,logname。此外,也會變更 PATH變量;

      -m,-p或--preserve-environment:變更身份時,不要變更環境變量;

      -s<shell>或--shell=<shell>:指定要執行的shell;

      --help:顯示幫助;

      --version;顯示版本資訊。

sudo(sudo -, sudo -s):  sudo指令用來以其他身份來執行指令,預設的身份為root。在/etc/sudoers中設定了可執行sudo指令的使用者。若其未經授權的使用者企圖使用sudo,則會發出警告的郵件給管理者。使用者使用sudo時,必須先輸入密碼,之後有5分鐘的有效期限,超過期限則必須重新輸入密碼。

      文法 sudo [選項] [參數]

      -b:在背景執行指令;

      -h:顯示幫助;

      -H:将HOME環境變量設為新身份的HOME環境變量;

      -k:結束密碼的有效期限,也就是下次再執行sudo時便需要輸入密碼;。

      -l:列出目前使用者可執行與無法執行的指令;

      -p:改變詢問密碼的提示符号;

      -s<shell>:執行指定的shell;

      -u<使用者>:以指定的使用者作為新的身份。若不加上此參數,則預設以root作為新的身份;

      -v:延長密碼有效期限5分鐘;

      -V :顯示版本資訊。

adduser:  adduser指令用來建立使用者帳号和建立使用者的起始目錄,使用權限是超級使用者。另一條建立使用者指令是adduser ,使用者删除指令userdel。 

      兩個使用者建立指令之間的差別 

      adduser: 會自動為建立的使用者指定主目錄、系統shell版本,會在建立時輸入使用者密碼。 

      useradd:需要使用參數選項指定上述基本設定,如果不使用任何參數,則建立的使用者無密碼、無主目錄、沒有指定shell版本

password:  passwd指令原來修改賬戶的登陸密碼,使用權限是所有使用者。文法  passwd [選項] 賬戶名稱  

      -l:鎖定已經命名的賬戶名稱,隻有具備超級使用者權限的使用者方可使用。 

      -u:解開賬戶鎖定狀态,隻有具備超級使用者權限的使用者方可使用。 

      -x, --maximum=DAYS:最大密碼使用時間(天),隻有具備超級使用者權限的使用者方可使用。 

      -n, --minimum=DAYS:最小密碼使用時間(天),隻有具備超級使用者權限的使用者方可使用。 

      -d:删除使用者的密碼, 隻有具備超級使用者權限的使用者方可使用。 

      -S:檢查指定使用者的密碼認證種類, 隻有具備超級使用者權限的使用者方可使用。

四、使用指令安裝gcc/g++, gdb, vim

(1)使用指令安裝gcc/g++

[[email protected] ~]$ yum list | grep gcc
gcc.i686                                   4.4.7-18.el6                  @base  
gcc-c++.i686                               4.4.7-18.el6                  @base  
libgcc.i686                                4.4.7-18.el6                  @base  
compat-gcc-34.i686                         3.4.6-19.el6                  base   
compat-gcc-34-c++.i686                     3.4.6-19.el6                  base   
compat-gcc-34-g77.i686                     3.4.6-19.el6                  base   
compat-libgcc-296.i686                     2.96-144.el6                  base   
gcc-gfortran.i686                          4.4.7-18.el6                  base   
gcc-gnat.i686                              4.4.7-18.el6                  base   
gcc-java.i686                              4.4.7-18.el6                  base   
gcc-objc.i686                              4.4.7-18.el6                  base   
gcc-objc++.i686                            4.4.7-18.el6                  base   
[[email protected] ~]$ sudo yun install gcc.i686

           

        通過指令 yum list | grep gcc 列出gcc安裝包(g++同理),再通過指令 sudo yun install gcc.i686(選擇你想要的安裝包) 安裝。

注:如果已經安裝過gcc/g++則無需再安裝。

(2)使用指令安裝gdb

        驗證 gdb 是否已經安裝,在指令行直接輸入 gdb 如果運作,則已經安裝。反之通過指令 yum list | grep gdb,列出gdb的安裝包,再通過指令sudo yun install +(選擇列出的安裝包之一)安裝。

(3)使用指令安裝vim

        驗證 vim 是否已經安裝,在指令行直接輸入 vim 如果運作,則已經安裝。反之在指令行輸入下面兩條指令。

        sudo apt-get install vim (ubuntu)

        yum install vim (redHat/Fedora/CentOS)

繼續閱讀