文件管理的相關命令使用及標準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
下一篇 2017-07-29

相關推薦

  • 馬哥教育網絡班22期+第2周課程練習

    1、  Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 cp命令 單源復制:cp [OPTION]… [-T] SOURCE DEST 多源復制:cp [OPTION]… SOURCE… DIRECTORY 多源復制:cp [OPTION]… -t DIRECTORY SOU…

    Linux干貨 2016-08-22
  • 第二天作業

    一、Linux 文件管理類命令   cd、pwd、mkdir、rmdir、ls、cp、rm、mv、cat、tac、more、less、head、tail、touch     1、目錄類相關命令     cd:change directory 切換目錄     pwd:print …

    Linux干貨 2016-08-22
  • N22-第九周作業

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash # declare -i log_user declare -i notlog_user while read&n…

    Linux干貨 2016-10-24
  • 第6天預習xargs命令的用法

    Xargs用法詳解 1. 簡介   之所以能用到這個命令,關鍵是由于很多命令不支持|管道來傳遞參數,而日常工作中有有這個必要,所以就有了xargs命令,例如: find /sbin -perm +700 |ls -l     &n…

    Linux干貨 2016-08-05
  • 8月3日作業

    文件權限相關的課堂練習: 1)當用戶xiaoming對/testdir 目錄無執行權限時,意味著無法做哪些操作?     用戶小明不能進入/testdir,不能刪除,不能創建。使用ll能看到有哪些文件,但是看不到具體信息 2)當用戶xiaoqiang對/testdir 目錄無讀權限時,意味著無法做哪些操作? 不能查看文…

    Linux干貨 2016-08-07
  • 抓包獲取QQ好友IP地址

    作者:網海過客 原文連接:https://www.chinasa.net/archives/326.html 原理:通過抓包軟件,抓取QQ進程,向QQ好向發送UDP數據包,獲取QQ好友IP地址 抓包軟件:科來網絡分析系統 步驟: 1、打開抓包軟件,選擇網卡,本地進程分析。 2、向QQ好友發起語音通話 3、在抓包軟件里,找到QQ進程,數據包,過濾UDP協議,在…

    Linux干貨 2017-06-30
欧美性久久久久