Linux學習筆記

    該文章是小弟學習linux歸納出來的一些基礎知識,也是做爲自己的參考資料,希望各位渴望學習linux的朋友們共同學習。

 

1、linux分區
--在linux裏面所有的設備、任何東西,在linux看來都是文件。
--文件在它看來,有兩種形式:
  第一種是字符型(鍵盤輸入、打印機);
  第二種是二進制型(硬盤、光驅、U盤)
--linux中所有硬件
--手動分區
--A、至少有兩個分區
  /    根分區
  SWAP 交換分區(物理內存大小的兩倍)
--B、個人桌面分區
  /
  /boot 128MB is enough
  /usr
  SWAP
  /tmp(用於光盤刻錄)

 

2、linux目錄說明
--/dev/xxyN
--xx (分區所在設備類型:hd--IDE硬盤   sd--SCSI硬盤)
--y  (標明分區所在設備
      例如:/dev/hda 第一個IDE硬盤 或 /dev/hdb 第二個IDE硬盤 或 /dev/sdb 第二個SCSI硬盤)
--N  (數字代表分區:1-4--主分區或擴展分區;邏輯分區從5開始!
      例如:/dev/hda3 第一個IDE硬盤上的第三個主分區或擴展分區
            /dev/sdb6 第二個SCSI硬盤上的第二個邏輯分區)

 

3、linux目錄結構
/     根目錄,最高級別
/bin  系統基本命令存放目錄(/usr/bin)
/boot linux的內核及引導系統程序文件存放目錄(如:vmlinuz、initrd.img)
      一般情況下,GRUB或LILO系統引導管理也位於這個目錄
/dev  設備文件存儲目錄,如聲卡、光驅...
/ect  存放系統設置文件(如用戶賬號密碼、服務器配置文件等)
/home 普通用戶家目錄,默認存放目錄
/lib  庫文件存放目錄
/lost+found  在ext2或ext3文件系統中,當系統以外崩潰或機器意外關機,而產生一些文件碎片放在這裏。
             當系統啓動的過程中,fsck工具會檢查這裏,並修復已經損壞的文件系統。
      有事喜用發生問題,有很多的文件被移到這個目錄中,可能會用手工的方式來修復,或者移文件到原來的位置上。
/media 即插即用型存儲設備的掛載點自動在這個目錄下創建。
       如USB盤系統自動掛在後,會在這個目錄下產生一個目錄;
       類似cdrom的目錄
/mnt   存放掛載存儲設備的掛載目錄,如cdrom等目錄
/opt   表示可選的意思,有些軟件包也會被安裝在此,也就是自定義軟件包,
       比如OpenOffice,或者一些我們自己編譯的軟件包,也可安裝此處。
/proc  操作系統運行時,進程(正在運行的程序)信息及內核信息(比如CPU、硬盤分區、內存信息等)存放在此。
       /proc目錄是僞裝的文件系統proc的掛載目錄,proc並不是真正的文件系統
/root  linux超級權限用戶root的家目錄
/sbin  大多是涉及系統管理的命令的存放,只有超級權限用戶root纔可執行命令存放,普通用戶無權限執行此目錄下的命令
       與 /usr/sbin; /usr/X11R6/sbin; usr/local/sbin 目錄相似
       (sbin,只有root權限才能執行)
/tmp   臨時文件目錄,有時用戶運行程序的時候,會產生臨時文件。
       /var/tmp目錄和此目錄相似
/usr   系統存放程序的目錄,如命令、幫助文件等。這個目錄下有很多的文件和目錄。
       大部分Linux發行版提供的軟件包都安裝在此,涉及服務器的配置文件就安裝在/ect中。
       /usr/share/fonts 字體目錄
       /usr/share/man 或 /usr/share/doc 幫助目錄
       /usr/bin 或 /usr/local/bin 或 /usr/X11R6/bin    普通用戶可執行文件目錄
       /usr/sbin 或 /usr/local/sbin 或 /usr/X11R6/sbin 超級權限用戶root可執行命令存放目錄
       /usr/include 程序頭文件存放目錄
/var   (vary)此目錄經常變動
       /var/log 用來存放系統日誌
       /var/www 用來定義Apache服務器站點存放
       /var/lib 用來存放一些庫文件,如MySQL的,以及MySQL數據庫的存放地。

 

4、基本命令
--查看幫助   *** --help   *** --?
--查看詳細幫助  man ***
--登錄 login
--退出窗口 exit
--關機 shutdown
--重啓 reboot
--初始化 init (run level -/etc/inittab),0-6看第六部分的g

--進入根目錄 cd /
--回上層目錄 cd ..
--相對路徑 cd dev
--絕對路徑 cd /dev
--查用戶名 whoami
--查當前目錄 pwd
--列出當前目錄內容 ls 
      -l(樹詳細顯示目錄內容)
      -m(橫列顯示目錄內容,是屏幕長度顯示)
      -a(列出全部文件,包括隱藏文件)
      -S(以文檔大小排序)
--創建目錄 mkdir dname
--刪除目錄 rmdir dname
      rm -r *** -(遞歸刪除該目錄下所有內容,詢問每個準備刪除的文件)
      rm -rf ***-(強制刪除該目錄下所有內容,不詢問)
--創建空白文件 touch ***
      (ps:從技術的角度來講,linux的文件後綴名沒有任何意義)
--複製 cp
      cp -r **1 **2 (複製1到2中)
--移動 mv
      mv -t **1 **2 (把2移動到1中)
--編輯文本 vi [文件名]
--查看文本 cat  由第一行開始顯示文本內容
           tac  從最後一行顯示,可以看出 tac 是 cat 的倒着寫
           more 一頁一頁的顯示文檔內容
           less 與 more 類似,可以往前翻頁
           head 只看頭幾行
      -N(數字,可根據行數顯示)
           tail 只看後幾行
      -N(數字,可根據行數顯示)
           nl   顯示的時候,順序輸出行號
           od   以二進制位的方式讀取檔案內容
--查找文本 find [路徑][查找類型][搜索文件名]
           如查找rc.local  find /etc -name *.local
--查找命令信息及其位置   whereis 命令
           如 whereis ls
--查看環境變量 echo $SHELL
           如 echo $PATH (分大小寫:分隔符是:,windows是echo %path%;)
--鏈接 ln
           如 ln joe.txt a (硬鏈接,如同複製一個新文件,joe.txt刪除後,a還存在)
    a是鏈接的名稱,a和joe.txt同步,然後a的內容和joe.txt一樣
    joe.txt改變,a也跟着變
    如 ln -s joe.txt b (軟鏈接,如同創建一個快捷方式,joe.txt刪除後,b不存在)
--wc 統計指定文本文件的行數、字數、字符數
--grep(很常用) 在指定的文本文件中查找指定的字符串
    grep 字符串 文件名
--col 見管道..
--------------------
----信息顯示命令----
--------------------
--date     顯示和設置日期
--stat     顯示指定文件的相關信息
--who、w   顯示在線登錄用戶
--whoami   顯示用戶自己的身份
--id       顯示當前用戶的id信息
--hostname 顯示主機名稱
--uname    顯示操作系統信息
--dmesg    顯示系統啓動信息
--du       顯示指定的文件(目錄)已使用的磁盤空間
--df       顯示文件系統磁盤空間的使用情況
--free     顯示當前內存和交換空間的使用情況
--fdisk -l 顯示磁盤信息
--locale   顯示當前語言環境

 


5、掛載點(mount 設備目錄 掛載目錄)
--訪問設備 (那設備當成一個文件,和另外一個文件夾進行綁定)
--例如掛載光驅:步驟 [cd /mnt]---[mkdir cdr]---[mount /dev/cdrom /mnt/cdr]---[cd cdr]--OK!直接訪問光驅內容
--卸載掛載設備(umount /dev/cdrom)--注意必須先退出掛載目錄,否則出現"device is busy"錯誤.

 

6、startup-shutdown(linux啓動流程)
--A、boot sequence(important) linux啓動過程
     a. load bios(hardware information)
     b. read MBR's config to find out the OS
        (MBR--Master Boot Record,硬盤第一個物理扇區,柱面0、磁頭0、扇區1,包含主引導程序和硬盤分區表)
     c. load the kernel of the OS
        (加載爲kernel核心的OS)
     d. init process starts...
        (啓動linux第一個進程init)
     e. execute /etc/rc.d/sysinit
        (執行系統最重要的配置文件,後臺啓用進程)
 (rc.d--run command)
     f. start other modules(stc/modules.conf)
        (開啓各種模塊,如內存管理模塊、硬盤管理模塊)
     g. execute the run level scripts
        (系統啓動是分層次的,根據情況執行,每個層次之間沒關係)
 0 - 系統停機狀態
 1 - 單用戶工作狀態 root
 2 - 多用戶狀態(沒有NFS)
 3 - 多用戶狀態(有NFS)
     NFS - Network File System 網絡文件系統,聯網系統
 4 - 系統未使用,留給用戶
 5 - 圖形界面
 6 - 系統正常關閉並重新啓動
 如:cd /etc -- 有rc0.d、rc1.d、rc2.d、rc3.d、rc4.d、rc5.d等多個文件夾,保存着各個層次執行的進程文件
     h. execute /etc/rc.d/rc.local (重要)
        (保存其它進程腳本,如tomcat自動啓動,要修改此配置文件)
     i. execute /bin/login
        (登錄界面)
     j. shell started...

 


7、vi 文本編輯器
--兩種模式:命令模式   編輯模式
--vi [文件名]
  (切換到編輯模式)
  a   append-光標後添加
  i   insert-光標前插入
  o   open-另起一行編輯
  esc (切換回命令模式)
  :w  存盤
  :wq 存盤退出
  :q  退出
  :q! 不存盤退出
  dd  刪除其中一行
  dw  刪除一個單詞

(sudo gedit 文本  常用linux下的文本編輯器,比vi好用)


8、用戶設置
--切換用戶(switch user) su username
    小技巧:直接exit切換
--添加用戶 useradd username [-g] [組名](分配到某個用戶組)
  (創建後會自動在/home目錄下創建該新用戶的文件夾,如/home/username)
--設置密碼 passwd username
--cd /etc
  --查看用戶信息 more password
    如新增的用戶信息:username:x:500:500::/home/username:/bin/bash
    第一個數字,代表用戶組,當添加用戶沒有指定用戶組時,系統會創建一個和用戶ID一樣的組ID;
    第二個數字:用戶ID號;
    用戶的目錄是/home/username;
    用戶的SHELL是/bin/bash 
        (命令--->SHELL[解釋命令]--->kenrel內核)
        SHELL有多種類型,如csh、bash(常用)、bsh、ksh、sh(最原始)
--添加用戶組 groupadd groupname
  --查看用戶組信息 more group
--刪除用戶組 groupdel groupname
--修改用戶 usermod [-g] [組名] [用戶名]
--刪除用戶 userdel username
     然後把/home的文件夾刪除了 rm -rf 文件夾


9、權限file privilege
--linux把文件的權限分成四種:r:read  w:write  x:execute  -:none
如:-rw-r--r--
    lrwxrwxrwx
    drwxr-xr-x
    drwxr-xr-x
  第一個數字'-'代表文件,其餘是文件夾,後9位分爲3組,每組有四種權限設置rwx-
  第一位表示文件所有者
  第二位表示和所有者在同一用戶組的用戶
  第三位表示不在同一用戶組的用戶權限

--設置權限 (隨意應用,靈活組合!)
 1、普通用法
  --添加權限  [chmod +x 文件]
    如:-rw-r--r-- ---> -rwxr-xr-x
  --刪除權限  [chmod -x 文件]
    如:-rwxr-xr-x ---> -rw-r--r--
  --給自己添加權限  [chmod ?+x 文件]
    如此類推,組--g,其他人--o
    如:chmod u+x   -rw-r--r-- ---> -rwxr--r--
        chmod g+x   -rw-r--r-- ---> -rw-r-xr--
 chmod o+x   -rw-r--r-- ---> -rw-r--r-x

 2、專業用法  chmod 755/777
  --原理,八進制轉二進制
      如755,111 101 101, rwx r-x r-x
        777,111 111 111, rwx rwx rwx

--修改所有者權限 chown (change owner)
  如:chown 原來文件 file1 的所有者是 root,改成joe的
      chown joe file1


10、管道(把上一個命令執行的結果交給下一個命令)
    --使用方法:
        命令1|命令2|命令3......|命令n
    --使用舉例
      --$ls -Rl /etc | more
        (如 ls -Rl /etc (在控制檯模式下,無法返回前面過去的信息),因此需要管道執行該查詢,實現分頁的工作, ls -Rl /etc | more)
      --$cat /etc/passwd | wc
        (顯示文件結果,再數數有多少行)
      --$cat /etc/passwd | grep  lrj
        (顯示文件結果,再查找包含lrj的行)
      --#dmesg | grep eth0
        (顯示系統啓動的信息,再查找包含eth0的行--真正含義,檢查網卡執行信息是否正常)
      --$man bash | col -b > bash.txt
          語  法:col [-bfx][-l<緩衝區列數>]
          補充說明:在許多UNIX說明文件裏,都有RLF控制字符。當我們運用shell特殊字符">"和">>",把說明文件的內容輸出成純文本文件時,控制字符會變成亂碼,col指令則能有效濾除這些控制字符。
          參  數:
            -b   過濾掉所有的控制字符,包括RLF和HRLF。
            -f   濾除RLF字符,但允許將HRLF字符呈現出來。
            -x   以多個空格字符來表示跳格字符。
            -l<緩衝區列數>   預設的內存緩衝區有128列,您可以自行指定緩衝區的大小。
      --$ls -l | grep "^d"
        (用正則表達式篩選出目錄列表中 頭字母爲'd' 的內容--目錄)(^是正則表達式開頭部分)
      --$ls -l * | grep "^-" | wc -l
        (列出目錄列表中 頭字符爲'-'的內容--文件,並統計顯示的行數wc -l)

 

11、其他命令
  --wall(warning all) 通知所有人
  a.命令替換
    如 wall `date`、 cd 'pwd'、mkbootdisk $(uname -r)
  b.重定向
      重定向輸出:
      如 ls > cmd.txt ,把文件寫到cmd.txt,不輸出在控制檯
         ls >> cmd.txt ,把文件追加寫到cmd.txt
      重定向輸入:
      如 wall > cmd.txt,把文本內容發給所有人

 

12、修改系統的默認系統級別
  常用3和5
  3 - 多用戶狀態(有NFS)
      NFS - Network File System 網絡文件系統,聯網系統
  5 - 圖形界面


PS.設置用戶權限: sudo chmod 777 目錄
   4表示讀,2表示寫,1表示執行.
   第一位表示文件所有者,第二位表示和所有者在同一用戶組的用戶,第三位表示不在同一用戶組的用戶權限.
   755表示文件所有者可讀寫,執行.
   第二位5表示與所有者在同一用戶組的可讀,可執行,不可寫.
   第三位5表示其它組可讀,可執行,不可寫.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章