[讀書筆記]跟阿銘學Linux

alberthao發表於2018-04-06

由於書的內容多,月初重新定了個計劃,這次讀這本書,就先不讀完全書了,重點放在第4章檔案管理、第5章使用者管理、第7章vim一章、第10章shell基礎一章、第11章正則一章(還是定多了一些,因為vcp再認證的考試這個也沒看完)。後面再讀《linux就是這個範兒》。 整體來說,這本書用來入門是不錯的,有理論也有實際操作,每節課後還有習題。 這次重讀,對許可權的理解又多了些。

1 檔案管理

1.1 檔案許可權

目錄或檔案都有所有者和所屬組,同時可以擁有讀、寫、執行(對目錄而言就是開啟)的許可權。此外除了所有者和所屬組還有一個其他使用者組。
對於所有者為user1的file1和所有者為user2的file2,如果我們需要user1和user2都能看file1,則可以建立使用者組。然後分配相應的許可權。

1.1.1、基本概念

用ls -l 可以檢視檔案許可權。ls -al顯示隱藏檔案 ,ls -ld顯示目錄相關資訊
-rwxr-xr-x
第1位,檔案型別 2-4:擁有者(rwx依次代表讀/寫/執行),5-7:使用者組,8-10:其他人。

1.1.2、改變檔案許可權的辦法

  • umask
    使用者建立普通檔案預設666,建立目錄預設777,umask值為預設值需要減掉的許可權。
  • chmod
    chmod 750 dir123
    chmod u=rwx,og=rx dir123/test
    chmod u-x dir123/test
  • chgrp更改所屬組
    chgrp testgroup dir1
    chgrp -R testgroup dir2 包含子目錄及檔案
  • chown更改所有者

1.1.3、特殊許可權

  • set uid,針對二進位制可執行檔案,檔案在執行階段具有檔案所有者的許可權
  • set gid,可以作用於檔案或目錄
  • sticky bit,防刪除
    chmod u+s,g+s,o+t dirname
    sst也可以寫為7加在777類似數字開始表示特殊許可權。--t的話就是 1777

1.2檔案連結

1.2.1軟連結

ln -s passwd passwd-soft
ll
ln passwd passwd-hard
ll
du -sk

1.2.2硬連結

目錄只可以做軟連結,不可以做硬連結。

1.3檔案搜尋

1.3.1 find 命令

find 路徑 引數
和時間有關的引數有三種。
-atime表示訪問時間(讀取或執行時更改) -ctime寫入更改inode屬性的時間(寫入檔案、更改所有者、許可權或連結設定時)
-mtime寫入時間(寫入檔案內容時)。+n/-n表示大於或小於n天
find /tmp/ -mtime -1
-name filename
find . -name "test*" -type filetype
find . -type d 查詢當前目錄下的目錄

2 使用者與使用者組管理

2.1 /etc/passwd和/etc/shadow

這兩個檔案分別記錄了使用者賬戶分組等的基本資訊以及賬戶的密碼資訊。 cat /etc/passwd
cat /etc/shadow|head -n3

2.2 使用者組

groupadd -g 1008 grptest
groupdel grptest2
useradd -u1005 -g 1006 -M -s /sbin/nologin user11
-M不建立使用者家目錄
userdel

2.3 使用者身份切換

2.3.1 su

切換當前使用者,命令格式su - username

2.3.2 sudo

通過配置sudoers來讓使用者使用自己的命令執行一些需要root許可權的命令。沒有visudo編輯/etc/sudoers即可。如果沒有visudo則可以yum install -y sudo安裝。 還可以使用組來設定可以使用sudo許可權的使用者。 "# %wheel ALL=(ALL) ALL"

3 VIM編輯器

3.1 學習vim的重要性

由於linux基本上是以文字檔案工作的(伺服器場景,非x-windows),所以新手必須瞭解如何使用vim來編輯檔案。例如修改配置檔案、編輯測試文件。 我剛開始接觸 Linux時,因為文字編輯器開啟檔案無法退出,只好把計算機重啟了。現在想想,還是要先看看文件再動手。:wq!即可。

3.2 幾個問題

3.2.1、vi和vim的區別

所有 Linux都有vi,vim是vi的增強版,支援顏色。如果沒有需要安裝: yum install -y vim-enhanced

3.2.2、使用vi與windows記事本的區別?

功能上vi更強大,可以按需要進行替換、查詢等。

3.2.3、vi的三種模式是什麼?如何切換?

3.2.4、請出10道關於vi操作的題目。

3.2.5、三種模式中需要記憶的內容

  • 一般模式

    直接進入vi時就是一般模式,需要掌握如何快速移動游標。
    hlkj對應的是左右上下,0或者shift6行首,shift4行尾,gg首行,G尾行。nG任意行
    複製貼上刪除
    dd,yy,p,P

  • 編輯模式

    一般模式下,按一下AIO或小寫的,即可進入編輯模式。需要退出編輯模式按一下esc即可。

  • 命令模式

    按一下:即可進入命令模式。需要掌握查詢和替換功能。
    /word
    ?word
    :n1,n2s/word1/word2/g
    :1,$s/word1/word2/g
    需要掌握如何退出檔案編輯狀態,返回linux命令列。
    :wq以及:q!
    :set nu

4 shell基礎

4.1什麼是shell

計算機是身體,核心就是大腦,shell就好比五官。

4.2常見shell操作

4.2.1 命令列相關基礎操作

  • 命令補全用tab,
  • 歷史命令:上一條!!或某一條 !n 或某字串開頭的命令!字串
  • 支援萬用字元,支援重定向,支援管道符號。
    echo "123" > 1.txt
    echo "123" > > 1.txt
    cat /etc/passed|wc -l
  • 支援作業控制 ctrl+z 暫停 ,fg調入前臺 ,bg 調入後臺

4.2.2 變數基礎

  • 系統變數均大寫
    echo $PATH
  • 常見命令
    env,set
    變數有作用域,如果要允許所有使用者登陸都可以使用環境變數,則需要在/etc/profile最後一行加入 export myname=alberthao 然後執行 source /etc/profile
    如果僅是當前使用者使用,則是修改.bashrc即可
  • 變數定義的規則主要有,等號兩邊不能有空格,不能以數字開頭,包含特殊字元的變數內容需要加單引號。反引號用在需要使用其它命令結果時的場景。`pwd`

4.2.3 系統環境變數和個人環境變數

/etc/profile
/etc/bashrc
.bash_profile
.bashrc
.bash_history
.bash_logout

4.2.4 常見與管道符搭配使用的命令

cut
sort
uniq
wc
tee
tr
split

4.2.5 其它特殊符號

$ 與!使用,!$表示上一條命令的變數
;同時執行多個命令
&放入後臺執行命令
重定向、追加重定向和錯誤內容重定向、錯誤內容追加重定向。
?#[]正則常用字元
;&&和||連線多個命令
;都會執行
&&前面成功後才執行後面
||前面成功後則不執行後面

5 後記

剛開始學習新東西,就得反覆練習琢磨,有時候用需要抄書這種方式鍛鍊自己。
時刻提醒自己,學是為了更好的創造,改變現狀。

相關文章