<tfoot dropzone='wjetrms'><noframes date-time='wotgsf6'>

      <abbr lang='b0wg6kd'></abbr>

        文章熱詞:Linux

        日期:2019-08-09 08:33 by 楊國偉 955 0 收藏
        我要分享

        摘要:Linux 基本操作命令 文件和目錄管理 創建和删除

        創建:mkdir

        删除:rm

        删除非空目錄:rm -rf file 目錄

        删除日志 rm log (等價: $find ./-name “log” -exec rm {} ; )

        移動:mv

        複制:cp (複制目錄:cp -r)

        創建文件 touch

        查看

        顯示當前目錄下的文件 ls

        按時間排序,以列表的方式顯示目錄項 ls -lrt

        ls -l

        查看文件内容 cat 可以加 more 、less 控制輸出的内容的大小

        cat a.textcat a.text | morecat a.text| less

        權限

        改變文件的擁有者 chown

        改變文件讀、寫、執行等屬性 chmod

        遞歸子目錄修改:chown -R tuxapp source/

        增加腳本可執行權限:chmod a+x myscript

        管道和重定向

        把前一個命令的執行結果當做後一個命令的輸入 |

        串聯:使用分号 ;

        前面成功,則執行後面一條,否則,不執行: &&

        前面失敗,則後一條執行: ||

        ls /proc && echo  suss! || echo failed.

        文本處理


        文件查找 find

        find 參數很多,本文隻介紹幾個常用的

        -name 按名字查找

        -type 按類型

        -atime 訪問時間

        find . -atime 7 -type f -printfind . -type d -print  //隻列出所有目錄find / -name "hello.c" 查找hello.c文件

        文本查找 grep

        grep match_patten file // 默認訪問匹配行

        常用參數

        -o 隻輸出匹配的文本行 VS -v 隻輸出沒有匹配的文本行

        -c 統計文件中包含文本的次數

        grep -c “text” filename

        -n 打印匹配的行号

        -i 搜索時忽略大小寫

        -l 隻打印文件名

        grep "class" . -R -n # 在多級目錄中對文本遞歸搜索(程序員搜代碼的最愛)cat LOG.* | tr a-z A-Z | grep "FROM " | grep "WHERE" > b #将日志中的所有帶where條件的sql查找查找出來

        文本替換 sed

        sed [options] 'command' file(s)

        首處替換

        sed 's/text/replace_text/' file   //替換每一行的第一處匹配的text

        全局替換

        sed 's/text/replace_text/g' file

        默認替換後,輸出替換後的内容,如果需要直接替換原文件,使用 -i:

        sed -i 's/text/repalce_text/g' file

        移除空白行

        sed '/^$/d' file
        sed 's/book/books/' file #替換文本中的字符串:sed 's/book/books/g' filesed '/^$/d' file #删除空白行

        數據流處理 awk

        詳細教程可以查看 http://awk.readthedocs.io/en/latest/chapte...

        awk ' BEGIN{ statements } statements2 END{ statements } '

        工作流程

        1. 執行 begin 中語句塊;

        2. 從文件或 stdin 中讀入一行,然後執行 statements2,重複這個過程,直到文件全部被讀取完畢;

        3. 執行 end 語句塊;

        特殊變量

        NR: 表示記錄數量,在執行過程中對應當前行号;

        NF: 表示字段數量,在執行過程總對應當前行的字段數;

        $0: 這個變量包含執行過程中當前行的文本内容;

        $1: 第一個字段的文本内容;

        $2: 第二個字段的文本内容;

        awk '{print $2, $3}' file# 日志格式:'$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"'#統計日志中訪問最多的10個IPawk '{a[$1]++}END{for(i in a)print a[i],i|"sort -k1 -nr|head -n10"}' access.log

        排序 sort

        -n 按數字進行排序 VS -d 按字典序進行排序

        -r 逆序排序

        -k N 指定按第 N 列排序

        sort -nrk 1 data.txtsort -bd data // 忽略像空格之類的前導空白字符

        去重 uniq

        消除重複行

        sort unsort.txt | uniq

        統計 wc

        wc -l file // 統計行數wc -w file // 統計單詞數wc -c file // 統計字符數

        上一篇:九型人格

        下一篇:PHP curl常用的5個例子


        評論