mkdir 創建目錄
-p: 存在于不報錯可自動創建所需的各目錄 (遞歸創建)mkdir -p a/d/c/b
-m: mode 創建時指定權限 # mkdir -m 777 filename
rmdir
刪除空目錄
-p 遞歸刪除空目錄
touch
當文件不存在時,則創建一個空文件(默認)
-c 當文件不存在時,不創建
當文件存在時
默認或-c 更新全部時間戳
-a 更新atime和ctime
-m 更新mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的時間戳(如:
touch -t 201706121620 +filename)
* 作業:如何實現只顯示指定目錄下的隱藏文件。(ls -I ) # ls -a |grep ‘^\.’
# ls -d /etc/.* #ls -a -I “[^.]*” #l.
[:digit:]:任意數字,相當于0-9
[:lower:]:任意小寫字母
[:upper:]: 任意大寫字母
[:alpha:]: 任意大小寫字母
[:alnum:]:任意數字或字母
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符
[:punct:]:標點符號
[:print:]:可打印字符
[:cntrl:]:控制(非打?。┳址?nbsp;
[:graph:]:圖形字符
[:xdigit:]:十六進制字符
l練習:
1、顯示/etc目錄下以任意一位數字開頭,且以非數字結尾的文件或目錄
ls -d /etc/[[:digit:]]*[^[:digit:]]
2、顯示/etc/目錄下以非字母開頭,后面跟了一個字母及其 它任意長度任意字符的文件或目錄
ls -d /etc/[^[:alpha:]][[:alpha:]]*
3、顯示/etc/目錄下所有以rc開頭,并后面是0-6之間的數 字,其它為任意字符的文件或目錄
ls -d /etc/rc[0-6]*
作業:
1、顯示/etc目錄下,所有以.d結尾的文件或目錄
# ls -d /etc/* .d
2、顯示/etc目錄下,所有.conf結尾,且以m,n,r,p開頭的文件或目錄
# ls /etc/[mnrp]*/*.conf
3、只顯示/root下的隱藏文件和目錄
# ls -d /root/.*
4、只顯示/etc下的非隱藏目錄
# ls /etc |grep [^.]* # ls -d /etc/*/
# ls -F |grep /(ls -F 把文件按照類型分類 /就是標識是目錄)
文件的類型:
-普通文件
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
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 比較還原回來的新文件與被刪除的文件,發現沒有區別。
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
2、查出分區空間使用率的最大百分比值
df|tr -s ‘ ‘ %|sort -t% -k5 -n|tail -n 1|cut -d% -f5
3、查出用戶UID最大值的用戶名、UID及shell類型
cat /etc/passwd |cut -d: -f1,3,7|sort -n -t : -k 2|tail -n 1
4、查出/tmp的權限,以數字方式顯示
stat /tmp| head -n 4|tail -n 1|cut -d/ -f1|cut -d'(‘ -f2
stat -c %a /tmp/
5、統計當前連接本機的每個遠程主機IP的連接數,并按從大到小排序
netstat -tun | grep ESTAB |tr -s ” ” : |cut -d: -f6 |sort -nr |uniq -c (uniq -c顯示連續重復的次數(統計次數))
原創文章,作者:MOMO,如若轉載,請注明出處:http://www.www58058.com/82845