linux筆記( 更新中)

幫助手冊命令 man

man命令:可以通過一些參數,快速查詢linux幫助手冊,並且格式化顯示。

Linux 下修改 root 密碼方法

passwd root

權限

chgrp :改變文件所屬羣組
chown -R:改變文件擁有者
chmod :改變文件的權限, SUID, SGID, SBIT等等的特性   
su - user1  切換身份user1

查看服務

 /etc/services 
 /etc/init.d/  啓動腳本處    
 /etc/* :各服務各自的配置文件
 service --status-all 查看所有服務

常用目錄

/etc                主要配置文件
/bin                常用執行文件
/sbin               重要的系統執行文件
/dev                存放設備文件
/dev/null           垃圾桶
/home               用戶目錄
/media /mnt         掛載外部裝置
/opt                第三方協議軟件 習慣放/usr/local
/proc               虛擬文件,存放內存數據:系統cpu、網絡..
/ (root, 根目錄):   與開機系統有關;
/usr (unix software resource):與軟件安裝/執行有關;
/usr/local/        自己下載的軟件安裝目錄
/var (variable):  與系統運作過程有關的常態性變動的文件:緩存、log等。

/etc/issue         配置開機畫面顯示
/etc/motd          配置登錄顯示

常用命令

雙擊tab            獲取所有可能的命令,極其方便!
ls -alh           list所有文件包括隱藏文件
set               獲取所有變量,包含bash接口配置相關
echo $$           當前shell的PID
echo $?           返回上個命令的執行結果
env/export        顯示所有環境變量
echo $PATH        顯示環境變量中的PATH
PATH=$PATH:/home/dmtsai/bin  增加目錄到變量
export var1       使其變爲環境變量,可以讓子shell使用

echo $(uname -r)  顯示系統版本
uname -a          顯示系統架構

設置變量           name=justin
取消變量           unset name
命令中使用其他命令   $(command)
創建目錄:          mkdir /tmp/chapter7_1
修改屬性:          chown -R dmtsai:users /tmp/chapter7_1
修改權限:          chmod -R 755 /tmp/chapter7_1
//SUID/SGID/SBIT 權限配置--> 要有x權限   
        4 爲 SUID       暫時將具有該程序擁有者 (owner) 的權限;
        2 爲 SGID       暫時獲得得該程序羣組的支持
        1 爲 SBIT       wx權限下,僅有自己與 root 纔有權力刪除該文件

觀察文件類型:       file
搜索命令完整路徑:    which
搜索文件: 
    whereis       whereis 與 locate 是利用數據庫來搜尋數據
    updatedb      手動更新數據庫
    find          強大的搜尋命令,但時間花用的很大! 因爲 find 是直接搜尋硬盤

df -h             獲取目前掛載的設備,整體磁盤使用量
du -sh            獲取文件所佔容量

dumpe2fs          查詢每個區段與 superblock 的信息
ln -s /etc/crontab crontab2 創建符號鏈接,類似windows 的快捷方式


read -p "Please keyin your name: " -t 30 named  讀取鍵盤輸入
declare                   聲明變量
ulimit -a                 顯示當前用戶的數據限制值
last                      顯示登陸者信息
alias                     顯示當前所有的命令別名,設置別名
unalias                   取消別名
history                   使用過的命令歷史
type -a                   獲取命令搜尋順序
!comand                   運行最近命令開頭爲command的命令
source/.                  讀入環境配置文件,可以直接在父程序運行腳本

//輸入輸出
標準輸入  (stdin) :代碼爲 0 ,使用 < 或 << ;
標準輸出  (stdout):代碼爲 1 ,使用 > 或 >> ;
標準錯誤輸出(stderr):代碼爲 2 ,使用 2> 或 2>> ;
重定向操作符(&>)將標準輸出和錯誤輸出同時送到同一文件

//pipe
|grep|cut|sort|uniq|wc
|tee test.txt            雙向重導向,分送到文件去與屏幕stdout,可以讓下個命令繼續使用      
 - 減號                   可以取用前一個命令的 stdout

    //正則
grep '^ha' test.txt -n    單引號中使用正則
sed                       將數據 standard input 進行取代、刪除、新增、擷取特定行等
                          e.g: nl test.txt |sed '2,3d'
                               sed 's/要被取代的字串/新的字串/g'

printf                    格式化輸出
awk '條件類型1{動作1} 條件類型2{動作2} ...' filename   處理數據
diff/cmp                  比對兩個文件

//
test                      檢查工具, 判斷文件屬性等

文件系統

  • Linux 的正統文件系統則爲 Ext2 (Linux second extended file system, ext2fs)這一個。此外,在默認的情況下,windows 操作系統是不會認識 Linux 的 Ext2 的。

  • inode 表 每個文件都僅會佔用一個 inode 而已,記錄文件的屬性及該文件實際數據是放置在哪幾號 block 內;

  • data block是用來放置文件內容數據地方,在 Ext2 文件系統中所支持的 block 大小有 1K, 2K 及 4K 三種而已

  • 一般來說,我們將 inode table 與 data block 稱爲數據存放區域,至於其他例如 superblock、 block bitmap 與 inode bitmap 等區段就被稱爲 metadata (中介數據) 囉,因爲 superblock, inode bitmap 及 block bitmap 的數據是經常變動的,每次新增、移除、編輯時都可能會影響到這三個部分的數據

Swap

  • swap 的功能就是在應付物理內存不足的情況下所造成的內存延伸記錄的功能。
  • 當物理內存不夠時,則某些在內存當中所佔的程序會暫時被移動到 swap 當中,讓物理內存可以被需要的程序來使用。另外,如果你的主機支持電源管理模式, 也就是說,你的 Linux 主機系統可以進入『休眠』模式的話,那麼, 運行當中的程序狀態則會被紀錄到 swap 去,以作爲『喚醒』主機的狀態依據! 另外,有某些程序在運行時,本來就會利用 swap 的特性來存放一些數據段, 所以, swap 來是需要創建的!只是不需要太大!

vi

0/Home 移動到行前
$/End  移動到行尾
[Ctrl] + [f] 向下移動一頁
[Ctrl] + [b] 向上移動一頁
G   移動到這個檔案的最後一行
gg/1G  移動到第一行

u 撤銷
o 當前位置下創建一行
O 當前位置上創建一行
dd 刪除光標所在行
x 刪除光標後字符
X 刪除光標前字符
yy 複製當前行
p  粘貼
J 當前行連接下一行

v 字符選擇
V 行選擇
ctrl+v 區塊選擇
y 複製選擇
d 刪除選擇

/word  搜尋字符串    ,光標之上
?word  搜尋字符串,光標之下
n      繼續搜索

vim 後面同時接好幾個檔案可同時開啓 
:n  編輯下一個檔案
:N  編輯上一個檔案
:files  列出目前這個 vim 的開啓的所有檔案

//多窗口
:sp [filename] 開啓一個新窗口
[ctrl]+w+↓   移到下方窗口
[ctrl]+w+↑   移到上方窗口 

Bash

/etc/shells     查看可用的shell
/etc/passwd     查看不同用戶取得的默認shell
/.bash_history  這個隱藏目錄保存了使用的命令歷史
\+[Enter]       避免命令太長,多行使用

scripts

  • date +%Y%m%d 獲取今天日期
  • script 的運行方式差異 (source, sh script, ./script)
  • 善用判斷式

    • test
    • [ “VBird Tsai” == “VBird” ]

      -e  該『檔名』是否存在?(常用)
      -f 該『檔名』是否存在且爲文件(file)?(常用)
      -d  該『檔名』是否存在且爲目錄(directory)?(常用)
      -a  (and)兩狀況同時成立。
      -o  (or)兩狀況任何一個成立。
      !   反相狀態,如 test ! -x file ,當 file 不具有 x 時,回傳 true
      
      -eq 兩數值相等 (equal)
      -ne 兩數值不等 (not equal)
      -gt n1 大於 n2 (greater than)
      -lt n1 小於 n2 (less than)
      -ge n1 大於等於 n2 (greater than or equal)
      -le n1 小於等於 n2 (less than or equal) 
      
  • Shell script 的默認變量(0, 1…)

  • 條件判斷式

    //單條件
    if [ 條件判斷式 ]; then
        當條件判斷式成立時,可以進行的命令工作內容;
    fi  
    
    //多條件
    if [ 條件判斷式一 ]; then
        當條件判斷式一成立時,可以進行的命令工作內容;
    elif [ 條件判斷式二 ]; then
        當條件判斷式二成立時,可以進行的命令工作內容;
    else
        當條件判斷式一與二均不成立時,可以進行的命令工作內容;
    fi
    
    //case
    case  $變量名稱 in   
      "第一個變量內容")   
        程序段
        ;;            
      "第二個變量內容")
        程序段
        ;;
      *)                  
        不包含第一個變量內容與第二個變量內容的其他程序運行段
        exit 1
        ;;
    esac     
    
  • 循環

    //滿足條件纔開始循環
    while [ condition ] 
    do            
        程序段落
    done          
    
    //滿足才結束
    until [ condition ]
    do
        程序段落
    done
    
    //固定循環
    for var in con1 con2 con3 ...
    do
        程序段
    done
    
    
    for (( 初始值; 限制值; 運行步階 ))
    do
        程序段
    done
    
  • 函數

    function fname() {
        程序段
    }
    
  • 檢查語法錯誤

     sh [-nvx] scripts.sh
    

賬號管理

  • uid和gid
  • 涉及目錄

    /etc/passwd
    /etc/group
    /etc/shadow
    
    groups            查看所有支持的羣組
    newgrp            有效羣組的切換
    
    w/who             查詢已登錄的用戶
    useradd           增加用戶
                    參考:
                        /etc/default/useradd
                        /etc/login.defs
                        /etc/skel/*
    
    passwd  [用戶]       修改用戶密碼
                     echo "abc543CC" | passwd --stdin vbird2
    userdel -r home     刪除用戶
    id  [username]                  查詢uid和gid
    groupadd
    groupmod                        group 相關參數的修改
    groupdel
    gpasswd                         羣組管理員功能
    
    //acl 權限
    setfacl 
    getfacl filename
    
    //切換
    su - username 或 su -l username    切換用戶
    su - -c "命令串"                   只運行一次root命令
    sudo                               以其他用戶的身份運行命令( /etc/sudoers 內的用戶才能夠運行 sudo 這個命令)
                                    e.g:
                                    sudo -u sshd touch /tmp/mysshd
    visudo                           修改sudo配置
    
    //使用者對話
    write 使用者賬號 [用戶所在終端接口]   指定用戶發送信息
    wall [message]                   對所有系統上面的用戶傳送簡訊
    
  • PAM(Pluggable Authentication Modules 嵌入式授權模塊)

    • 用戶輸入指令,呼叫 PAM 模塊進行驗證
    • PAM 模塊會到 /etc/pam.d/ 找尋與程序 (passwd) 同名的配置文件
    • 將驗證結果 (成功、失敗以及其他信息) 回傳給用戶指令程序
    • 程序會根據 PAM 回傳的結果決定下一個動作

      控制標準

  • 檢查工具

    pwck          檢查用戶配置信息
    grpck         檢查用戶組配置信息
    pwconv    用戶同步化將 /etc/passwd 內的賬號與口令,移動到 /etc/shadow 
    

配額 Quota

  • 限制 filesystem的 容量等
  • 涉及目錄,命令

    /etc/fstab
    /etc/mtab                   文件系統是否支持配額
    /etc/warnquota.conf         警告信息設置
    quotaon -auvg               開啓服務
    quotaoff                    關閉服務
    edquota                     編輯限制額度
            -t      寬限時間
            -u      用戶
            -g      用戶組
    
    quota -uvs myuser && quota -gvs myuser   查看配額
    repquota -auvs                查看整個文件系統的配額
    

Raid 磁盤陣列

  • 一個磁盤容量不夠時,這種機制將多個較小的磁碟整合成爲一個較大的磁碟裝置, 便於使用
  • fdisk 命令

定時任務

  • 單次任務 at

    /etc/init.d/atd restart
    chkconfig atd on           配置自動啓動
    /var/spool/at/            日誌記錄
    /etc/at.allow              使用者配置
    /etc/at.deny               不能使用者配置
    
    at -c n       查詢第n個任務
    at now + 5 minutes        創建任務
    batch 23:00 2009-3-17    系統空間時開始任務
    
    atq       查詢所有單次任務
    atrm  n   將第n個任務刪除
    
  • 循環任務 crontab

    /etc/crontab               系統任務
    /usr/bin/crontab         用戶任務
    /etc/cron.allow
    /etc/cron.deny
    /var/spool/cron/[user]        任務創建日誌記錄
    /var/log/cron                      任務運行日誌記錄
    
    crontab -e              編輯任務
            e.g: 59 23 1 5 * mail kiki < /home/dmtsai/lover.txt
    crontab -l              查看所有任務
    run-parts               遍歷目錄中所有文件運行
    
    anacron               運行crontab 關機期間沒有運行的任務
    

參考

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