linux一些基本常識(四)

tail -f時時監控

一開啓內存最小位u原則,儘可能優化代碼

grep -v "" /etc/passwd 這樣行不行

怎麼清除last

nice調整進程運行級別

pkill是匹配關鍵字來殺死進程的
------------------------------------------------------------------------------
文本的操做基礎:
    cat    --文本的簡單查看命令,只能查看最後一屏的信息
    cat -n    /<path>/file    --顯示行號

    more    --分頁查看文本內容
    less    --分頁查看,比more靈活
        /關鍵字    能夠實現搜索的功能,按n配置下一個,N配置上一個
    head    --局部查看命令,查看文本的頭部
        head /etc/passwd    --10行
        head -3 /etc/passwd    --頭3行
    tail    --局部查看命令,查看文本的尾部
        tail /etc/passwd    --末10行
        tail -3 /etc/passwd    --末3行
        tail -f /var/log/message    --能夠看到最新的更新內容 (動態查看)
        

=============文件內容搜索===================
    grep
        #grep root /etc/passwd        --在passwd過濾root關鍵字
        #grep -i root /etc/passwd        --忽略大小寫
        #grep -n -i root /etc/passwd    --忽略大小寫並輸入行號
        #grep -v root /etc/passwd        -v除了root這個關鍵字
        # grep -v '^$' /etc/passwd        ^$ 空行
        # grep '^root' /etc/passwd        ^root以root開頭
        # grep 'bash$' /etc/passwd        bash$以bash結尾
        # head /tmp/passwd | grep -v '^$'
        # grep  -Rl    "size_t"    /usr/include/   查找/usr/include哪些文件中含有size_t 關鍵字
# less /tmp/passwd | grep -v '^$' | grep -i -n root
 1194  cat  /tmp/passwd | grep -i -n '^root'
 1195  cat  /tmp/passwd | grep -i -n 'bash$'
# cat /etc/vsftpd/vsftpd.conf  | grep -v '^#' | grep -v '^$'

===============================
linux信息蒐集命令:
    uname    
        uname -r    內核版本
        uname -n    主機名    hostname
        uname -a    全部信息
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.2 (Maipo)

    
==================================    
    free
        free -m        內存和交換分區的使用狀況
 total       used       free     shared    buffers     cached
Mem:          1992       1953         39          0         98       1414
-/+ buffers/qcache:        440       1552
Swap:         2271          0       2271

tobal 內存總數 used 已經使用的內存數 free 空閒的內存數
shared 當前已經廢棄不用 buffers 緩存內存數 cached 緩存內存數
    
    #watch -n 1 -d free   動態觀察內存狀況
    

    瞭解/proc目錄
    cat /proc/cpuinfo         CPU信息
    cat /proc/meminfo        內存信息
    cat /proc/swaps            交換分區    
    cat /proc/version        版本
    cat /proc/scsi ide   scsi 設備信息  ide設備信息  
    cat /proc/net         網絡狀態與配置文件
    cat /proc/sys        核心配置參數  (除了這個文件,其餘的是隻讀)
    cat /proc/<PID> 以進程PID命名的目錄,每一個進程的信息分別放在該目錄下文件中
     cat /proc/sys/net/ipv4/icmp_echo_ignore_all       0關閉  1開啓
 -------------------------------------------------------------------------------------------------------
    df 查看掛載狀況
        df -h    顯示已經掛載的分區,以M爲單位顯容量    
        df -Th    顯示已經掛載的分區和分區對應的文件系統
        df -i        顯示已經掛載的分區和文件節點數
    du  查看文件實際佔用磁盤空間大小
        du -csh    /dir
        du -chs /dir/filename    統計文件或者目錄佔用的磁盤空間狀況

    
    w who whomai id finger
    w    --顯示在線用戶
    write   king  向在線的用戶king發送消息
    who    --顯示在線用戶
    whoami    --查詢當前用戶是誰
    id    --查詢當前用戶的uid gid和輔助組
    id username    --查詢指定用戶的uid gid和輔助組
    last lastlog ac
        last    --顯示最新登陸系統的用戶,及在線時間狀況
        lastlog            --報告全部用戶最近有無登陸服務器
        lastlog -u username    --報告指的用戶
        ac -p        --報告全部用戶的在線時長
        ac -p -d    --按照日期來統計用戶的在線時長



進程管理:
ps
pstree
top 系統監視工具
pgrep
pkill
kill
killall
nice
renice

ps -aux  查看進程關係
-a 顯示其餘用戶啓動的進程
-u 啓動這個進程的用戶和它啓動的時間
-x 查看系統中屬於本身的進程
-f 顯示進程的父子關係

咱們經常使用的是 ps -aux
=================================
        USER    --啓動進程用戶身份
        PID     --進程號
        %CPU    --CPU的利用率
        %MEM    --內存的利用率
        VSZ     --預分分配的虛擬內存
        RSS     --真實分配的內存
        TTY     --在哪一個終端啓用的進程
       STAT    --當前進程的狀態
                D:不可中斷的睡眠
                R:運行當中的進程
                S:可中斷的睡眠
                T:中止或被追蹤   
                Z:殭屍進程 <子進程結束 父親進程未回收子進程資源 則變成殭屍進程>  
                d:死掉的進程    
          <:高優先級別的進程
                n/N:低優先級別的進程
                s:是一個進程組,表明還有子進程
          +:前臺進程
        START   --進程啓動時間
        TIME    --進程運行了多長時間
        COMMAND --用什麼命令啓動的進程




共享內存hhr用於進程間通訊的

面對大量io讀取瓶緊,咱們該怎麼解決?

----------------------------------------------------------------------------------------

kill    根據進程ID,給進程發信號
       查看Linux下信號定義 man 7 signal
    kill PID    發進程發正常關閉信號 (默認發的是15信號)
    kill -15 PID    向進程發正常關閉信號    
    kill -9 PID    向進程發強制退出信號
    kill -1 | -HUP  --讓進程重啓,並從新加載配置文件
    
    
killall --根據完整的程序名字關閉進程
    killall -9 bash  
    killall -9  httpd
    killall -1 bash

nice  優先級 -20到19  (-20最高 19最低)
 nice -20 /bin/bash     --啓動某個程序時指定進程的優先級別
renice
# renice -20  -p 8054    --更改已經啓動的程序的進程優先級別   top   輸入



bash的特殊符號:
< << > >> &> | * ? $
    標準輸入         (鍵盤) stdin           0  
    標準正確輸出    (屏幕)stdout          1
    標準錯誤輸出    (屏幕)stderr        2
    
# ll /dev/std*
lrwxrwxrwx. 1 root root 15  5月  2 2012 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx. 1 root root 15  5月  2 2012 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx. 1 root root 15  5月  2 2012 /dev/stdout -> /proc/self/fd/1

ls > /tmp/aaa
ls /tttt
ls /tttt > tmp/aaa  ----  ls /tttt 2> /tmp/aaa

# ls -l /dev/std*
lrwxrwxrwx. 1 root root 15 Aug  3 09:34 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx. 1 root root 15 Aug  3 09:34 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx. 1 root root 15 Aug  3 09:34 /dev/stdout -> /proc/self/fd/1

    <<    --輸入追加劇定向
# cat > a2.txt <<END      ||  EOT
> gfdsjkgfdjgkldf
> fdsfdsfds
> fdsfdsf
> END      ||  EOT
    >    --輸出覆蓋重定向
    >>    --輸出追加劇定向
    2>    --錯誤覆蓋輸出重定向
    2>>    --錯誤追加輸出重定向
    &>    --輸出正確/錯誤覆蓋重定向
    &>> --輸出正確/錯誤追加劇定向

#vim scanf.c
  int main(void)
  {
      int a ,b;
    printf("input a and b:");
    scanf("%d %d",&a,&b);
    printf("a:%d b:%d\n",a,b);
    return 0;
  }
#gcc  scanf.c

#cat  txt
     100 500
標準輸入重定向
#./a.out  <  ./txt
--------------------------------------------------    
cat /root/a2.txt /root &> a.txt        --將正確和錯誤一塊兒覆蓋重定向至a.txt
cat /root/a2.txt /root  &>> a.txt         --將正確和錯誤一塊兒追加劇定向至a.txt
find / -name kk &> /tmp/findfile          --將正確和錯誤一塊兒覆蓋重定向至/tmp/findfile
find / -name kk &>> /tmp/findfile


# cat /root/a2.txt /root/ > /tmp/1.txt 2> /tmp/2.txt
# cat /root/a2.txt /root/ >> /tmp/1.txt 2>> /tmp/2.txt


|    管道

    cat /etc/passwd |grep root |grep ^root
    cat /etc/passwd | grep nologin$
        --把passwd輸出結果經過管道交給第二個命令去處理,日後的以此類推

通配符:
*    --匹配一個或者任意多個字符,也就是*表明全部
?    --匹配一個字符
$    --引用變量
ls /etc/*.conf
[root@instructor ~]# ls /etc/?conf
echo $PATH


軟連接ln要用絕對路徑來做,保證數據連接的正確,以防軟連接移到別處了就出現各類問題。
ln -s 軟連接
ln -d 應連接

真正刪除一個文件要知足2個條件(硬連接數爲0,引用技術爲0,就是有多少個進程引用這個)

因連接要主義的:不能對目錄做應連接,由於硬連接,系統有一個遍歷循環 ls -R避免造成一個循環遍歷。

因連接也不容許跨分區(由於不能保證inode號惟一)實時備份的好工具

node

相關文章
相關標籤/搜索