文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用

mkdir 創建目錄
-p: 存在于不報錯可自動創建所需的各目錄 (遞歸創建)mkdir -p a/d/c/b
-m: mode 創建時指定權限  # mkdir -m 777 filename
     文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用
文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用  
rmdir
刪除空目錄

-p 遞歸刪除空目錄

文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用

touch 
當文件不存在時,則創建一個空文件(默認)
-c 當文件不存在時,不創建
當文件存在時
默認或-c 更新全部時間戳
-a 更新atime和ctime
-m 更新mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的時間戳(如:

                       touch -t 201706121620 +filename)

文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用

* 作業:如何實現只顯示指定目錄下的隱藏文件。(ls -I )   # ls -a |grep ‘^\.’
        # ls -d /etc/.*    #ls -a -I  “[^.]*”    #l.

文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用
[:digit:]:任意數字,相當于0-9  
[:lower:]:任意小寫字母
[:upper:]: 任意大寫字母
[:alpha:]: 任意大小寫字母
[:alnum:]:任意數字或字母
[:blank:]:水平空白字符 
[:space:]:水平或垂直空白字符 
[:punct:]:標點符號 
[:print:]:可打印字符 
[:cntrl:]:控制(非打?。┳址?nbsp;
[:graph:]:圖形字符 
[:xdigit:]:十六進制字符

l練習:
1、顯示/etc目錄下以任意一位數字開頭,且以非數字結尾的文件或目錄

ls -d /etc/[[:digit:]]*[^[:digit:]]

文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用

2、顯示/etc/目錄下以非字母開頭,后面跟了一個字母及其 它任意長度任意字符的文件或目錄
ls -d /etc/[^[:alpha:]][[:alpha:]]*

文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用
3、顯示/etc/目錄下所有以rc開頭,并后面是0-6之間的數 字,其它為任意字符的文件或目錄
ls -d /etc/rc[0-6]*

文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用

作業:
1、顯示/etc目錄下,所有以.d結尾的文件或目錄
    # ls -d /etc/* .d

文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用
2、顯示/etc目錄下,所有.conf結尾,且以m,n,r,p開頭的文件或目錄
    # ls /etc/[mnrp]*/*.conf

文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用
3、只顯示/root下的隱藏文件和目錄
   # ls -d /root/.*

文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用
4、只顯示/etc下的非隱藏目錄
  # ls /etc |grep [^.]*  # ls -d /etc/*/
  # ls -F |grep /(ls -F 把文件按照類型分類  /就是標識是目錄)

文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用

 文件的類型:

        -普通文件

        d目錄文件
        l軟鏈接文件
        c字符設備
        b塊設備
       s套接字sock
       p管道文件
file可查看文件類型
  -b 不顯示文件名 ,只列出文件辨識的結果
  -f 列出filelist中文件名的文件類型
  -F是指定的分隔符號替換輸出文件名后默認的“:”分隔符
he
hexdump -C +文件名查看頭部信息看文件類型
vim +name.sh寫腳本
輸入輸出:
 cd /dev/fd(三個設備 0來著終端默認的輸入/輸出來自鍵盤,1正確的輸出,2錯誤的輸出)
       ls -l           fd:file descriptor(文件描述符)
驗證復制一個終端進行:
             # ls /etc/passwd/app/passwd
>          # echo nihao > /dev/pts/
1>        # echo nimei 1> /dev/pts/2(輸出正確)
2>  # echo wohao 2> /dev/pts/2(輸出錯誤)
 > 2>&1 或&> # ls /etc/passwd /app/passwd > /dev/pts/2 2>&1
            # ls /etc/passwd /app/passwd &> /dev/pts/2 
tr命令的使用:
 tr 命令:(輸入重定向)(<輸出)# tr ‘asd’ ‘dfg’(轉換)
 tr -s ” 連續字符刪掉留一個
 tr -d ” 刪除某個字符 (# cp /etc/fstab /app  # cd /app # ls
        # cat fstab  # tr -d adc <fstab)
 tr -dc ”只保留空格里的字母
 tr ‘a-z’ ‘A-z’小寫轉換為大寫
 tr -t ” 沒有不轉換 # tr -t ‘adgf’ ‘bnm’(沒有f就原樣輸出)
 tr -c  取反
[root@centos7 app]# echo aaaabbbcccccccdddd | tr -t ‘abcd’ ‘edf’
  eeeedddfffffffdddd

管道 :可多級進行| 將正確結果重定向給下一條命令   2>&1 | 或 |&全部結果重定向
      將錯誤輸出改為正確輸出 2>&1
      將正確輸出改為錯誤輸出 1>&2

  獲取boot目錄所在分區的可用空間(# df -h  # df -h > df.txt # cat df.txt
                            # tr -s [:space:] < df.txt)

 df -h 
 # tr -s [:space:]|grep /boot |cut -d” ” -f5 |cut -d “%” -f1

獲取本機的IP地址
  ifconfig ens34 |grep broadcast |tr -s ‘[:space:]’|cut -d ” ” -f3

 [root@centos7 app]# tr ‘a-z’ ‘A-Z’ < ~/.bashrc (標準輸入)
 [root@centos7 app]# cat ~/.bashrc |tr ‘a-z’ ‘A-Z’//輸入輸出同時進行


<<“tee“使用tee既可以顯示在終端上也可以保存(生成)文件也可發出去
     //# echo abc | tee hello.txt

  tee -a (追加)# echo 123 |tee -a hello.txt  >>

*********************************************************************
1、將當前系統登錄用戶的信息轉換為大寫后保存至/tmp/who.out文件中
      who | tr ‘a-z’ ‘A-Z’ | tee -a /tmp/who.out

2、一個linux用戶給root發郵件,要求郵件標題為”help”,郵件正文如下:
    Hello, I am 用戶名,The system version is here,please help me to 
    check it ,thanks!
    操作系統版本信息
    echo -e ‘Hello, I am’ $USER ‘,The system version is here,please help me to check it,thanks!\n’ uname -a|mail -s “help” root

3、將/root/下文件列表,顯示成一行,并文件名之間用空格隔開
   ls -1 |tr ‘\n’ ‘ ‘

4、計算1+2+3+..+99+100的總和
    Answer1:
    #! /bin/bash
         j=0
    for ((i=0;i<=100;i++))
        do
        ((j=j+i))
       done
     echo $j

    Answer2:
  echo {1..100} |tr ‘ ‘ ‘+’ |bc
文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用
5、刪除Windows文本文件中的‘^M’字符
    #rz(添加傳入)創建 win.txt linux.txt   cat -A(查看換行符)
    #cat -A win.txt |tr -d ‘^M’
    #cat  win.txt |tr -d ‘^M’ > win1.txt(重新導入新文件)
6、處理字符串“xt.,l 1 jr#!$mn 2 c
/fe 3 uz 4”,只保留其中的數字
和空格
    echo  ‘”xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4″‘ |tr -cd [:digit:][:space:]
7、將PATH變量每個目錄顯示在獨立的一行
    echo $PATH |tr ‘:’ ‘\n’

8、將文件中每個單詞(由字母組成)顯示在獨立的一行,并無空行
   cat /etc/fstab |tr -c [a-zA-Z] ‘\n’ |tr -s [:space:]

diff 比較文件 它的使用方法過程:

     # diff f1 f2    僅比較區別(4a5 四行后面多了一行五行)
     # diff -u f1 f2 > diff.log 生成補丁  diff -u 補丁生成工具
     #mv f2 f2.orig  相當于刪除了文件 。其實是將f2名字改為f2.orig 文件內容一致
     #patch -b f1 diff.log    通過補丁還原文件生成新的含補丁文件內容的f1 而生成的f1.orig 是原文件f1
     #mv f1 f2       還原原始的新文件名f2
     #mv f1.orig f1  還原原始的舊文件名f1
     #diff f2 f2.orig  比較還原回來的新文件與被刪除的文件,發現沒有區別。

文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用
文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用

文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用

文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用

文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用

文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用

1、找出ifconfig “網卡名” 命令結果中本機的IPv4地址
    #ifconfig |head -n 2 |tail -n 1|tr -s ” ” : |cut -d: -f4
    #ifconfig  ens34 |head -n 2 |tail -n 1 |tr -s ” ” |cut -d ” ” -f3

文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用
2、查出分區空間使用率的最大百分比值
df|tr -s ‘ ‘ %|sort -t% -k5 -n|tail -n 1|cut -d% -f5

文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用

文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用
3、查出用戶UID最大值的用戶名、UID及shell類型
cat /etc/passwd |cut -d: -f1,3,7|sort -n -t : -k 2|tail -n 1

文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用
文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用

4、查出/tmp的權限,以數字方式顯示

stat /tmp| head -n 4|tail -n 1|cut -d/ -f1|cut -d'(‘ -f2
stat -c %a /tmp/

文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用

文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用

5、統計當前連接本機的每個遠程主機IP的連接數,并按從大到小排序

netstat -tun | grep ESTAB |tr -s ” ” : |cut -d: -f6 |sort -nr |uniq -c (uniq -c顯示連續重復的次數(統計次數))

文件管理的相關命令使用及標準I/O,管道,diff及文件工具的使用

原創文章,作者:MOMO,如若轉載,請注明出處:http://www.www58058.com/82845

(0)
MOMOMOMO
上一篇 2017-07-29 20:04
下一篇 2017-07-29 20:15

相關推薦

  • 配置Nginx作為反向代理服務器

    配置Nginx作為反向代理服務器      一、nginx作為反向代理的工作模型: 1、nginx作為反向代理的工作模型       nginx工作在應用層,其能理解并可以提取出http請求報文中的首部信息中的請求方法、url、http協議版本等信息。   &…

    Linux干貨 2016-10-29
  • 文本處理工具(練習+作業)

    文本處理工具(cut,sort,uniq)練習 1、找出ifconfig命令結果中本機的所有IPv4地址 [root@localhost ~]# ifconfig | tr -cs '[:digit:].' '\n'| sort -t. -k3 |tail -5 2、查出分區空間使用率的最大百分比值 [root@loc…

    Linux干貨 2016-08-07
  • 第三周作業

    1.列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。  2、取出最后登錄到當前系統的用戶的相關信息。  3、取出當前系統上被用戶當作其默認shell的最多的那個shell。  4、將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/max…

    Linux干貨 2016-12-21
  • corosync v2+pacemaker實現mariadb的高可用

    高可用mariadb拓撲圖 一、設計前提 1、時間同步 # ntpdate 172.16.0.1 或者 # chronyc sources 2、所有的主機對應的IP地址解析可以正常工作, 主機名要與命令#uname -n 所得的結果一致 因此,/etc/hosts中的內容為以下內容 ????????172.16.23.10?node1.rj.com?node…

    2017-11-02
  • Linux Cluster之LVS

    一、Linux Cluster 基礎: Cluster:計算機集合為解決某個特定問題組合起來形成的單個系統 Linux Cluster類型: LB(Load Banlancing):負載均衡 HA(High Availability):高可用。提高服務可用性,避免出現單點故障 HP(High Performance):高性能 可用性衡量公式: A=MTBF/…

    2016-11-02
  • linux密碼的破解與保護

    找回root口令:   遇到密碼丟失的情況,如果只是普通用戶的密碼丟失,那么可以讓管理員重新設定密碼。但是如果管理員用戶的密碼丟失,那該如何解決?   在 Linux環境中root 密碼忘記還是可以救回來的!只要能夠進入并且掛載 / , 然后重新設定一下root的密碼,就救回來啦!這是因為開機流程中,若強制進入runlevel 1 時, …

    Linux干貨 2016-09-22
欧美性久久久久