欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux系統(tǒng)特殊權(quán)限和通配符及特殊字符使用詳解

 更新時(shí)間:2025年08月25日 09:25:39   作者:koboides  
本文概述Linux權(quán)限掩碼、SUID/SGID設(shè)置及通配符(如~、.、..)與引號(hào)(單/雙引號(hào))的使用區(qū)別,結(jié)合應(yīng)用案例與練習(xí)題,幫助理解文件目錄權(quán)限控制和命令字符串處理技巧

一、Linux系統(tǒng)基礎(chǔ)權(quán)限

1. 默認(rèn)權(quán)限掩碼及設(shè)置命令umask

1.1 umask命令說(shuō)明

umask是通過(guò)八進(jìn)制的數(shù)值來(lái)定義用戶創(chuàng)建文件或目錄的默認(rèn)權(quán)限的。系統(tǒng)會(huì)根據(jù)預(yù)先設(shè)定的 umask 值計(jì)算出默認(rèn)情況下創(chuàng)建的文件或目錄權(quán)限。

1)為什么創(chuàng)建文件默認(rèn)權(quán)限為644,目錄為755?

umask 權(quán)限掩碼??刂葡到y(tǒng)的文件和目錄的默認(rèn)權(quán)限。

[root@buffes buffes]# umask 
0022

針對(duì)文件來(lái)說(shuō):默認(rèn)權(quán)限計(jì)算方法
6 6 6
0 2 2 -
-----------
6 4 4  ###系統(tǒng)的文件默認(rèn)權(quán)限
==============================

2)umask掩碼的3位每一位數(shù)字是否有【奇數(shù)】,如果有奇數(shù)(奇數(shù)位加1)

測(cè)試:
[root@buffes buffes]# umask 021
[root@buffes buffes]# umask 
0021
[root@buffes buffes]# touch f021
[root@buffes buffes]# ls -l f021 
-rw-r--rw-. 1 root root 0 5月  21 10:40 f021

計(jì)算:
6 6 6
0 2 1 -
-----------
6 4 5  ###系統(tǒng)的文件默認(rèn)權(quán)限
0 0 1
---------------
6 4 6

測(cè)試:
[root@buffes buffes]# umask 033
[root@buffes buffes]# umask 
0033
[root@buffes buffes]# touch f033
[root@buffes buffes]# ls -l f033
-rw-r--r--. 1 root root 0 5月  21 10:42 f033


結(jié)論:文件默認(rèn)權(quán)限結(jié)論
1.權(quán)限從666開始計(jì)算。
2.如果偶數(shù),正常做減法。
3.如果是奇數(shù),奇數(shù)位加一。

3)針對(duì)目錄默認(rèn)權(quán)限

1.權(quán)限從777開始計(jì)算。
2.和掩碼正常做減法。


測(cè)試:
[root@buffes buffes]# mkdir d033
[root@buffes buffes]# ls -ld d033
drwxr--r--. 2 root root 6 5月  21 10:44 d033
[root@buffes buffes]# umask 045
[root@buffes buffes]# mkdir d045
[root@buffes buffes]# ls -ld d045
drwx-wx-w-. 2 root root 6 5月  21 10:45 d045


UID大于199,并且用戶和組同名,umask為002
cat /etc/bashrc
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ];
then
       umask 002
else
       umask 022
fi

/home/buffes 默認(rèn)700,  #控制/etc/login.defs


想一想???為什么系統(tǒng)把默認(rèn)權(quán)限定為:
默認(rèn)644,目錄755呢? #安全臨界值

1.2 有關(guān)權(quán)限生產(chǎn)環(huán)境應(yīng)用案例及思路

運(yùn)營(yíng)電商 jd,站點(diǎn)目錄給什么權(quán)限安全呢?
目錄755
[root@buffes buffes]# mkdir /data/html -p
[root@buffes buffes]# ls -ld /data/html/
drwxr-xr-x. 2 root root 6 5月  21 11:07 /data/html/
web服務(wù)運(yùn)行時(shí)候有一個(gè)【虛擬用戶www】,
1)虛擬用戶www 可進(jìn)入查看程序文件,不可以寫、刪文件。

[root@buffes buffes]# useradd www
[root@buffes buffes]# chown -R www.www /data/html
[root@buffes buffes]# ls -ld /data/html
drwxr-xr-x. 2 www www 6 5月  21 11:07 /data/html  #可以寫、刪文件


普通站點(diǎn)目錄:【用戶和組都是root,權(quán)限755】
[root@buffes buffes]# ls -ld /data/html
drwxr-xr-x. 2 root root 6 5月  21 11:07 /data/html/


[root@buffes buffes]# mkdir /data/html/upload -p ###存放圖片,文件
[root@buffes buffes]# ls -ld /data/html/upload/
drwxr-xr-x. 2 root root 6 5月  21 11:15 /data/html/upload/

圖片、文件目錄授權(quán):【用戶和組www,權(quán)限755】
[root@buffes buffes]# chown -R www.www /data/html/upload/
[root@buffes buffes]# ls -ld /data/html/upload/
drwxr-xr-x. 2 www www 6 5月  21 11:15 /data/html/upload/

解決upload上傳目錄安全:
1)不讓上傳:程序:控制這個(gè)目錄上傳的內(nèi)容只能是.jpg,.zip。
2)不讓執(zhí)行:nginx:針對(duì)upload訪問的時(shí)候,除了.jpg,.zip之外,不提供訪問。
3)不讓執(zhí)行:動(dòng)態(tài)服務(wù)器和靜態(tài)服務(wù)器分離,訪問的時(shí)候只有靜態(tài)服務(wù)器(不安裝PHP,java,python)
4)不讓執(zhí)行:磁盤上掛載的時(shí)候,設(shè)置禁止程序運(yùn)行(二進(jìn)制程序)。

不管什么業(yè)務(wù)都沒有改程序文件的需求。
程序文件 [644 root root]
程序文件 [644 www www]    #不推薦

三劍客sed 企業(yè)木馬案例:
[root@buffes buffes]# touch suid.txt
[root@buffes buffes]# ls -l suid.txt
-rw-r--r--. 1 root root 0 5月  21 11:55 suid.txt

2. linux特殊權(quán)限位

[suid]
1)suid(setuid)位通過(guò)S字符標(biāo)識(shí)。
2)存在于基本權(quán)限的用戶權(quán)限位的x權(quán)限對(duì)應(yīng)的位置。
3)如果用戶權(quán)限位對(duì)應(yīng)的x權(quán)限位上有x權(quán)限,則suid就用小寫的s標(biāo)識(shí)。
4)suid的s對(duì)應(yīng)的數(shù)字權(quán)限為4。
5)完整權(quán)限用八進(jìn)制數(shù)4000表示。

創(chuàng)建文件備用測(cè)試
[root@buffes buffes]# touch suid.txt
[root@buffes buffes]# ls -l suid.txt
-rw-r--r--. 1 root root 0 5月  21 11:55 suid.txt

數(shù)字權(quán)限設(shè)置suid測(cè)試:
chmod 4644 suid.txt

[root@buffes buffes]# chmod 4644 suid.txt
[root@buffes buffes]# ls -l suid.txt
-rwSr--r--. 1 root root 0 5月  21 11:55 suid.txt
[root@buffes buffes]# chmod u+x suid.txt
[root@buffes buffes]# ls -l suid.txt
-rwsr--r--. 1 root root 0 5月  21 11:55 suid.txt

取消設(shè)置suid測(cè)試:
[root@buffes buffes]# chmod 644 suid.txt
[root@buffes buffes]# ls -l suid.txt
-rw-r--r--. 1 root root 0 5月  21 11:55 suid.txt

字符設(shè)置suid
chmod u+s suid.txt
ls -l suid.txt
chmod u-s suid.txt
ls -l suid.txt

2.1 為什么會(huì)有SUID?

例子:普通用戶修改密碼。
	[buffes@buffes ~]$ passwd
	更改用戶 buffes 的密碼 。
	為 buffes 更改 STRESS 密碼。
	(當(dāng)前)UNIX 密碼:
	新的 密碼:
	重新輸入新的 密碼:
	passwd:所有的身份驗(yàn)證令牌已經(jīng)成功更新。
1)修改密碼passwd =======>>修改/etc/shadow文件

buffes用戶使用passwd命令,修改/etc/shadow文件,來(lái)實(shí)現(xiàn)修改密碼的。
ls -l /etc/shadow 
[buffes@buffes ~]$ ls -l /etc/shadow 
----------. 1 root root 2484 5月  21 12:10 /etc/shadow
傳統(tǒng)權(quán)限分析,buffes是其他用戶,修改/etc/shadow權(quán)限---,沒有權(quán)限修改。。
事實(shí)呢?改了

suid的特殊作用:可以繞過(guò)基礎(chǔ)權(quán)限體系,可以修改沒有權(quán)限修改的文件。
基于二進(jìn)制命令的。

[buffes@buffes ~]$ ls -l `which passwd`
-rwsr-xr-x. 1 root root 27856 4月   1 2020 /bin/passwd
1)給一個(gè)命令設(shè)置suid以后,所有使用這個(gè)命令的用戶,都擁有和這個(gè)命令對(duì)應(yīng)的用戶的權(quán)限。

問題:
cd 不好用
1)bash內(nèi)置命令,C6系統(tǒng)中沒有對(duì)應(yīng)文件。
2)有對(duì)應(yīng)文件。授權(quán)系統(tǒng)文件的cd,執(zhí)行cd很可能執(zhí)行的是bash內(nèi)置的cd。
3)
[root@buffes ~]# which cd
/usr/bin/cd
[root@buffes ~]# cd /usr/bin/
[root@buffes bin]# mv cd cdd
[root@buffes bin]# cd /root
[root@buffes ~]# ls cdd
ls: 無(wú)法訪問cdd: 沒有那個(gè)文件或目錄
[root@buffes ~]# cd /usr/bin
[root@buffes bin]# ls cdd
cdd

-rwxr-xr-x. 1 root root 62872 8月  20 2019 /bin/rm
[root@buffes bin]# find /bin/ -type f -perm 4755|xargs ls -l
-rwsr-xr-x. 1 root root 73888 8月   9 2019 /bin/chage
-rwsr-xr-x. 1 root root 57656 8月   9 2019 /bin/crontab
-rwsr-xr-x. 1 root root 32096 10月 31 2018 /bin/fusermount
-rwsr-xr-x. 1 root root 78408 8月   9 2019 /bin/gpasswd
-rwsr-xr-x. 1 root root 44264 4月   1 2020 /bin/mount
-rwsr-xr-x. 1 root root 41936 8月   9 2019 /bin/newgrp
-rwsr-xr-x. 1 root root 27856 4月   1 2020 /bin/passwd
-rwsr-xr-x. 1 root root 23576 4月   1 2020 /bin/pkexec
-rwsr-xr-x. 1 root root 32128 4月   1 2020 /bin/su
-rwsr-xr-x. 1 root root 31984 4月   1 2020 /bin/umount


suid生產(chǎn)場(chǎng)景實(shí)際用途。
1.所有普通用戶都能用到
2.普通用戶想修改沒有權(quán)限文件時(shí)候使用。
3.命令是沒有破壞作用的。
比如:ping,passwd

3.sgid權(quán)限知識(shí)

對(duì)于二進(jìn)制命令或者程序來(lái)說(shuō),sgid的功能和suid基本相同,唯一的區(qū)別是suid是獲得命令所屬用戶的身份和權(quán)限,而sgid是獲得命令的所屬用戶組的身份和權(quán)限,因此,有關(guān)sgid對(duì)于二進(jìn)制命令或者程序方面的知識(shí)就不詳細(xì)敘述了。

3.1 suid核心知識(shí)

1)與suid不同的是,sgid既可以針對(duì)文件,也可以針對(duì)目錄設(shè)置!
2)sgid的權(quán)限是針對(duì)用戶組權(quán)限位的。
對(duì)于文件來(lái)說(shuō),sgid的功能如下:
1)sgid僅對(duì)二進(jìn)制命令及程序有效。
2)二進(jìn)制命令或程序,也需要有可執(zhí)行權(quán)限x配合。
3)執(zhí)行命令的任意用戶可以獲得該命令程序執(zhí)行期間所屬組的身份和權(quán)限。


理解sgid:
locate====>讀/var/lib/mlocate/mlocate.db <====updatedb

[root@buffes bin]# ls -l /var/lib/mlocate/mlocate.db
-rw-r-----. 1 root slocate 1423565 5月  21 03:23 /var/lib/mlocate/mlocate.db
結(jié)論沒有權(quán)限可以查詢/var/lib/mlocate/mlocate.db

事實(shí)上是可以查的。
[buffes@buffes ~]$ locate cp

原因:就是locate命令被設(shè)置了sgid
[buffes@buffes ~]$ ls -l `which locate`
-rwx--s--x. 1 root slocate 40520 4月  11 2018 /bin/locate

測(cè)試:取消sgid
[root@buffes bin]# chmod g-s /bin/locate 
[root@buffes bin]# ls /bin/locate -l
-rwx--x--x. 1 root slocate 40520 4月  11 2018 /bin/locate

查看:
[buffes@buffes ~]$ locate cp
locate: 無(wú)法執(zhí)行 stat () `/var/lib/mlocate/mlocate.db': 權(quán)限不夠


參考解答:
[root@buffes ~]# mkdir /home/admins             #<==創(chuàng)建共享目錄admins。
[root@buffes ~]# groupadd adminuser             #<==添加用戶組adminuser。
[root@buffes ~]# ls -ld /home/admins 
drwxr-xr-x. 2 root root 4096 Apr 30 16:54 /home/admins
[root@buffes ~]# chgrp adminuser /home/admins/  #<==給adminis目錄授權(quán)adminuser用戶組。
[root@buffes ~]# ls -ld /home/admins
drwxr-xr-x. 2 root adminuser 4096 Apr 30 16:54 /home/admins  #<==查看授權(quán)結(jié)果。
[root@buffes ~]# touch /home/admins/buffes.txt  #<==創(chuàng)建測(cè)試文件。
[root@buffes ~]# ls -l /home/admins/


來(lái)看一道RHCE認(rèn)證考試題(了解即可)。
創(chuàng)建共享目錄/home/admins,要求屬組為adminuser,adminuser組成員對(duì)admins目錄有寫入、讀取和執(zhí)行的權(quán)限,其他所有用戶沒有任何權(quán)限(root除外),在/home/admins目錄中創(chuàng)建的文件會(huì)自動(dòng)繼成adminuser組。
參考解答:
[root@buffes ~]# mkdir /home/admins             #<==創(chuàng)建共享目錄admins。
[root@buffes ~]# groupadd adminuser             #<==添加用戶組adminuser。
[root@buffes ~]# ls -ld /home/admins 
drwxr-xr-x. 2 root root 4096 Apr 30 16:54 /home/admins
[root@buffes ~]# chgrp adminuser /home/admins/  #<==給adminis目錄授權(quán)adminuser用戶組。
[root@buffes ~]# ls -ld /home/admins
drwxr-xr-x. 2 root adminuser 4096 Apr 30 16:54 /home/admins  #<==查看授權(quán)結(jié)果。
[root@buffes ~]# touch /home/admins/buffes.txt  #<==創(chuàng)建測(cè)試文件。
[root@buffes ~]# ls -l /home/admins/
total 0
-rw-r--r--. 1 root root 0 Apr 30 19:59 buffes.txt  #<==文件默認(rèn)用戶和組都是root。
[root@buffes ~]# chmod 2770 /home/admins  #<==授權(quán)sgid權(quán)限給admins目錄。
[root@buffes ~]# ls -ld /home/admins/
drwxrws---. 2 root adminuser 4096 Apr 30 20:10 /home/admins/  #<==查看授權(quán)結(jié)果。
[root@buffes ~]# touch /home/admins/newfile.txt  #<==在創(chuàng)建新文件。
[root@buffes ~]# ls -l /home/admins/
total 0
-rw-r--r--. 1 root adminuser 0 Apr 30 20:04 newfile.txt  
#<==新創(chuàng)建的文件用戶組為adminuser了,而非默認(rèn)的root了。
-rw-r--r--. 1 root root      0 Apr 30 19:59 buffes.txt
整個(gè)配置過(guò)程,已滿足題意需求。

二、通配符與特殊符號(hào)

1. 通配符

1.代表特殊含義的一些符號(hào)。
2.bash命令行操作的時(shí)候。

作用于文件名的通配符:
符號(hào)	作用
*	    匹配任意(0個(gè)或多個(gè))字符或字符串,包括空字符串※
?	    匹配任意1個(gè)字符,有且只有一個(gè)字符

字符集合(匹配一堆字符/文本)
[abcd]	匹配abcd中任何一個(gè)字符,abcd也可是其他任意不連續(xù)字符
[a-z]	匹配a到z之間的任意一個(gè)字符,字符前后要連續(xù),也可以用連續(xù)數(shù)字[1-9]

[!abcd]	表示不匹配括號(hào)里面的任何一個(gè)字符,也可書寫為[!a-d],這里的!號(hào)可以用^替代,即[^abcd]

*的作用:經(jīng)常使用
ls *
rm -f *.txt
ls *
rm -f f*


[root@buffes ~]# find ./ -name "*.txt"
./a.txt
./aaa.txt
./girlLove/girlLove.txt

[root@buffes ~]# find /etc/ -type f -name "*hosts"
/etc/hosts


?的作用(了解)
[root@buffes ~]# touch a.txt
[root@buffes ~]# touch aaa.txt
[root@buffes ~]# ls ?.txt
a.txt
[root@buffes ~]# ls ???.txt
aaa.txt

[abcd]的實(shí)踐(了解)
[root@buffes ~]# ls [abcd].txt
a.txt
[root@buffes ~]# touch b.txt
[root@buffes ~]# ls [abcd].txt
a.txt  b.txt
[root@buffes ~]# touch bb.txt
[root@buffes ~]# ls [abcd].txt
a.txt  b.txt

[a-z]或[1-9]
[root@buffes ~]# touch {1..3}.txt
[root@buffes ~]# ls [a-z].txt
a.txt  b.txt
[root@buffes ~]# ls [1-9].txt
1.txt  2.txt  3.txt

[^a-z]或[!1-9](了解)
[root@buffes ~]# ls *.txt
1.txt  2.txt  3.txt  aaa.txt  a.txt  bb.txt  b.txt  cd.txt
[root@buffes ~]# ls [^1-9].txt
a.txt  b.txt
[root@buffes ~]# ls [a-z].txt
a.txt  b.txt
[root@buffes ~]# ls [!a-z].txt
1.txt  2.txt  3.txt

2. 與路徑和位置有關(guān)的特殊符號(hào)

符合作用
~用戶的家目錄,超級(jí)用戶為/root,普通用戶為/home
-代表上一次(相對(duì)于當(dāng)前路徑)用戶所在的路徑
.代表當(dāng)前目錄(點(diǎn)號(hào)還有很多其它含義,暫且不表)
代表上一級(jí)目錄
有一個(gè)環(huán)境變量名字叫OLDPWD,用來(lái)時(shí)刻記錄上一次所在的路徑。
所以 cd -的時(shí)候,實(shí)際就是 cd $OLDPWD

[root@buffes ~]# echo $OLDPWD
/etc
[root@buffes ~]# cd -
/etc
[root@buffes etc]# echo $OLDPWD
/root
[root@buffes etc]# cd -
/root
[root@buffes ~]# cd /etc/sysconfig/
[root@buffes sysconfig]# echo $OLDPWD
/root
[root@buffes sysconfig]# cd -
/root
[root@buffes ~]# echo $OLDPWD
/etc/sysconfig
[root@buffes ~]# cd -
/etc/sysconfig
[root@buffes sysconfig]# cd $OLDPWD
[root@buffes ~]# pwd
/root
[root@buffes ~]# 
[root@buffes ~]# 
[root@buffes ~]# 
[root@buffes ~]# cd $OLDPWD
[root@buffes sysconfig]# pwd
/etc/sysconfig

2.1 單引號(hào)

(‘’)所見即所得,即輸出單引號(hào)內(nèi)容時(shí)會(huì)將單引號(hào)內(nèi)的所有內(nèi)容都原樣輸出,或者描述為單引號(hào)里面看到的是什么就會(huì)輸出什么,被稱之為強(qiáng)引用

[root@buffes ~]# echo 'date'
date
[root@buffes ~]# a=123
[root@buffes ~]# echo $a
123
[root@buffes ~]# echo '$a'
$a
[root@buffes ~]# echo "$a"
123

希望看到啥就輸出啥就用單引號(hào)。

2.2 雙引號(hào)(常用)

(“”) 輸出雙引號(hào)內(nèi)的所有內(nèi)容時(shí),如果內(nèi)容中有命令(要反引下)、變量、特殊轉(zhuǎn)義符等,會(huì)先把變量、命令、轉(zhuǎn)義字符解析出結(jié)果,然后再輸出最終內(nèi)容,被稱為弱引用。推薦使用

1)不知道用什么引號(hào)就用雙引號(hào)。
[root@buffes ~]# echo $(date)
2030年 05月 24日 星期五 23:26:09 CST
[root@buffes ~]# echo '$(date)'
$(date)
[root@buffes ~]# echo "$(date)"
2030年 05月 24日 星期五 23:26:28 CST

2.3 無(wú)引號(hào)

賦值時(shí),如果變量?jī)?nèi)容有空格會(huì)使得賦值不完整。而在輸出內(nèi)容時(shí),也會(huì)將含有空格的字符串視為一個(gè)整體輸出;如果內(nèi)容中有命令(要反引下)、變量等,會(huì)先把變量、命令解析出結(jié)果,然后輸出最終內(nèi)容;如果字符串中帶有空格等特殊字符,則有可能無(wú)法完整地輸出,因此需要改加雙引號(hào)。

一般連續(xù)的字符串、數(shù)字、路徑等可以不加任何引號(hào)賦值和輸出,不過(guò)無(wú)引號(hào)的情況最好用雙引號(hào)替代之,特別是變量賦值時(shí)內(nèi)容很簡(jiǎn)單,且沒有空格,這個(gè)時(shí)候 不加引號(hào)也可以和雙引號(hào)類似,雙引號(hào)引起來(lái)的內(nèi)容是一個(gè)整體。

[root@buffes ~]# echo $a
123
[root@buffes ~]# echo $(date)
2030年 05月 24日 星期五 23:27:54 CST

雙引號(hào)引起來(lái)的內(nèi)容是一個(gè)整體。
[root@buffes ~]# echo 123 456
123 456
[root@buffes ~]# a=123 456
-bash: 456: 未找到命令
[root@buffes ~]# echo $a
123
[root@buffes ~]# a=“123 456”
[root@buffes ~]# echo $a
123 456

2.4 反引號(hào)(相當(dāng)于$())

(``) 一般用于引用命令,執(zhí)行的時(shí)候命令會(huì)被執(zhí)行,相當(dāng)于$(),賦值和輸出都要將命令用``引起來(lái)里面是可執(zhí)行的命令。

[root@buffes ~]# date
2030年 05月 24日 星期五 23:31:02 CST
[root@buffes ~]# echo $(date)
2030年 05月 24日 星期五 23:31:09 CST
[root@buffes ~]# echo `date`
2030年 05月 24日 星期五 23:31:19 CST
[root@buffes ~]# tar zcf /tmp/etc_$(date +%F).tar.gz /etc
tar: 從成員名中刪除開頭的“/”

2.4 其他特殊符號(hào)

;	
表示一個(gè)命令的結(jié)束
也是命令間的分隔符

#	
1)root用戶的命令提示符
2)表示是注釋內(nèi)容,是用來(lái)給管理員看的,系統(tǒng)不會(huì)執(zhí)行#號(hào)開頭的內(nèi)容
3)命令替換用的分隔符 比如VIM里的替換  :%s#129#921#g

	
|	表示管道,將一個(gè)命令處理后的中間內(nèi)容輸出給下一個(gè)命令繼續(xù)處理
	[root@buffes ~]# cat /etc/services |grep 3306
	mysql           3306/tcp                        # MySQL
	mysql           3306/udp                        # MySQL
	 1)管道傳輸?shù)氖菙?shù)據(jù)流(文件內(nèi)容),不是文件(文件名)。
	 2)不需要管道直接可以用命令處理。
		[root@buffes ~]# grep 3306 /etc/services 
		mysql           3306/tcp                        # MySQL
		mysql           3306/udp                        # MySQL
	 3)分組功能,同時(shí)過(guò)濾多個(gè)字符串
	 grep -E ==egrep 
	 [root@buffes ~]# egrep "3306|1521" /etc/services 
	mysql           3306/tcp                        # MySQL
	mysql           3306/udp                        # MySQL
	ncube-lm        1521/tcp                # nCube License Manager
	ncube-lm        1521/udp                # nCube License Manager

$	
	1)代表普通用戶的命令提示符
	2)字符串前加$符號(hào),代表字符串變量?jī)?nèi)容
	[buffes@buffes ~]$ a=buffes
	[buffes@buffes ~]$ echo $a
	buffes
	[root@buffes ~]# echo $LANG #字符集設(shè)置
	zh_CN.UTF-8
	[root@buffes ~]# echo $PS1  #命令行的變量
	[\[\e[35;1m\]\u@\[\e[33;1m\]\h\[\e[34;1m\] \W\[\e[0m\]]\$
	[root@buffes ~]# echo $HOME
	/root
	
\	逃脫符或轉(zhuǎn)義字符,即將有特殊含義的字符(通配符或正則表達(dá)式)還原成字符本意
    \? 只表示問號(hào)本身
	
touch \?.txt #代表創(chuàng)建?.txt這個(gè)文件。
[root@buffes ~]# ls ?.txt
1.txt  2.txt  3.txt  a.txt  b.txt
[root@buffes ~]# ls \?.txt
ls: 無(wú)法訪問?.txt: 沒有那個(gè)文件或目錄
[root@buffes ~]# touch ?.txt
[root@buffes ~]# ls
1.txt  aaa.txt  bb.txt  girlLove      buffes_dir
2.txt  abc      b.txt   girlLove.zip  user.list
3.txt  a.txt    cd.txt  buffes        老男孩Linux58期開班典禮3_-.pptx
[root@buffes ~]# touch \?.txt
[root@buffes ~]# ls
1.txt    abc     cd.txt        buffes_dir
2.txt    a.txt   girlLove      ?.txt
3.txt    bb.txt  girlLove.zip  user.list
aaa.txt  b.txt   buffes        老男孩Linux58期開班典禮3_-.pptx
[root@buffes ~]# ls ?.txt
1.txt  2.txt  3.txt  a.txt  b.txt  ?.txt
[root@buffes ~]# ls \?.txt
?.txt

{}	
1)生成序列
[root@buffes ~]# echo {1..10}
1 2 3 4 5 6 7 8 9 10
[root@buffes ~]# echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
[root@buffes ~]# echo {z..a}
z y x w v u t s r q p o n m l k j i h g f e d c b a
[root@buffes ~]# echo {10..1}
10 9 8 7 6 5 4 3 2 1

seq 數(shù)字序列
1)默認(rèn):
[root@buffes ~]# seq 5
1
2
3
4
5

=============
打奇偶數(shù)
seq 1      2       5 
    起始   步長(zhǎng)   結(jié)束
[root@buffes ~]# seq 1 2 5 
1
3
5
[root@buffes ~]# seq 2 2 6 
2
4

[root@buffes ~]# seq 6 -1 1
6
5
4
3
2
1
[root@buffes ~]# seq -w 10
01
02
03
04
05
06
07
08
09
10

用途:
touch stu{1..10}.txt
[root@buffes ~]# echo {00..10}
00 01 02 03 04 05 06 07 08 09 10
[root@buffes ~]# echo {00..10}|xargs -n 1
00
01
02
03
04
05
06
07
08
09
10
[root@buffes ~]# seq -s " " 5
1 2 3 4 5
[root@buffes ~]# seq -w -s " " 10
01 02 03 04 05 06 07 08 09 10
[root@buffes ~]# seq 10
1
2
3
4
5
6
7
8
9
10
[root@buffes ~]# seq -w 10
01
02
03
04
05
06
07
08
09
10
[root@buffes ~]# seq -w 10|sed -r 's#(.*)#\1#g'
01
02
03
04
05
06
07
08
09
10
[root@buffes ~]# seq -w 10|sed -r 's#(.*)#useradd buffes\1#g'
useradd buffes01
useradd buffes02
useradd buffes03
useradd buffes04
useradd buffes05
useradd buffes06
useradd buffes07
useradd buffes08
useradd buffes09
useradd buffes10
[root@buffes ~]# echo -e {00..10}"\n"
00
 01
 02
 03
 04
 05
 06
 07
 08
 09
 10
[root@buffes ~]# echo -e {00..10}"\n"|column -t
00
01
02
03
04
05
06
07
08
09
10
總結(jié)seq:
seq 10    #豎向打印序列
seq -w 10 #補(bǔ)全位數(shù)打印序列。
seq 起始 步長(zhǎng) 結(jié)束 #打印奇數(shù)和偶數(shù)序列
步長(zhǎng)為正數(shù)就是從小到大,否則從大到小。起始數(shù)字>結(jié)束數(shù)字
seq -w -s" " 10 #-s指定分隔符,橫向打印序列


2)引用變量作為變量與普通字符的分隔
[root@buffes ~]# a=123
[root@buffes ~]# echo "I am$a歲了"
I am123歲了
[root@buffes ~]# 
[root@buffes ~]# echo "I am$ale"
I am
[root@buffes ~]# 
[root@buffes ~]# 
[root@buffes ~]# 
[root@buffes ~]# echo "I am${a}le"
I am123le


bash里特殊符號(hào)
名稱	解釋
&&	前一個(gè)命令執(zhí)行成功,再執(zhí)行后面一個(gè)命令
||	前一個(gè)命令執(zhí)行失敗,再執(zhí)行后面一個(gè)命令
!	
1)在Bash中表示取反
2)在vi/vim中表示強(qiáng)制
3)!ls表示找出最近一次以ls開頭的命令并運(yùn)行



&& 并且的意思 and 前面正確,后面才輸出

echo 123 && echo 456 #前面命令能正確輸出,則打印456,否則不打印。

生產(chǎn)場(chǎng)景使用:
cd /etc/sysconfig/network-scripts/ &&\
tar zcf /tmp/ifcfg-eth0.tar.gz ./ifcfg-eth0
[root@buffes ~]# echo $? #驗(yàn)證命令是否執(zhí)行成功,0表示成功,非0表示失敗。
0

|| or或者 
前面錯(cuò)誤,后面才輸出
前面正確,后邊不輸出。
[root@buffes ~]# cho 123 || echo 456
-bash: cho: 未找到命令
456

作用:
[root@buffes ~]# echo adsfas||echo 1
adsfas
輸出1,表示前面命令執(zhí)行錯(cuò)誤,否則,命令執(zhí)行正確。


! 取反
[root@buffes ~]# ! cho 123 || echo 456
-bash: cho: 未找到命令

2.5 練習(xí)題

1)豎向打印a到z,共26個(gè)字母。
2)查找/下,包含.conf的所有文件,并打包,將壓縮包備份到/opt下。
3)批量添加test01-test1010個(gè)用戶,并設(shè)置對(duì)應(yīng)數(shù)字密碼。
4)橫向打印1,4,7序列。
5)描述下單引號(hào),雙引號(hào),反引號(hào)的含義。
6)使用cat命令將下面內(nèi)容輸入到文件test.txt里。
	http://www.etiantian.org
	http://bbs.etiantian.org
	http://www.etiantian.org
	http://blog.etiantian.org
	http://www.etiantian.org
	http://blog.etiantian.org
7)對(duì)題6的內(nèi)容,統(tǒng)計(jì)域名出現(xiàn)的次數(shù),并倒序排序。
8)題6中同時(shí)過(guò)濾包含bbs和blog字符串的行。
9)如何能讓執(zhí)行一個(gè)命令成功后再執(zhí)行另一個(gè)命令?
10)把題6中的etiantian.org替換為buffes。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Linux locate命令的使用方法

    Linux locate命令的使用方法

    這篇文章主要介紹了Linux locate命令的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • CentOS 7.0服務(wù)器安裝配置LAMP服務(wù)器(Apache+PHP+MariaDB)

    CentOS 7.0服務(wù)器安裝配置LAMP服務(wù)器(Apache+PHP+MariaDB)

    這篇文章主要介紹了CentOS 7.0服務(wù)器安裝配置LAMP服務(wù)器(Apache+PHP+MariaDB),需要的朋友可以參考下
    2016-10-10
  • centos7.2.1511安裝jdk1.8.0_151及mysql5.6.38的方法

    centos7.2.1511安裝jdk1.8.0_151及mysql5.6.38的方法

    這篇文章主要介紹了centos7.2.1511安裝jdk1.8.0_151及mysql5.6.38的方法,較為詳細(xì)的講述了centos7.2.1511安裝jdk1.8.0_151及mysql5.6.38的具體步驟與相關(guān)設(shè)置技巧,需要的朋友可以參考下
    2018-01-01
  • 詳解如何在Ubuntu上檢查、開啟、關(guān)閉端口

    詳解如何在Ubuntu上檢查、開啟、關(guān)閉端口

    在深入探討如何在Ubuntu上檢查、開啟、關(guān)閉端口之前,理解網(wǎng)絡(luò)基礎(chǔ)概念、端口的工作原理以及Ubuntu的網(wǎng)絡(luò)架構(gòu)是至關(guān)重要的,文中通過(guò)代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-06-06
  • Packetdrill的簡(jiǎn)明使用手冊(cè)

    Packetdrill的簡(jiǎn)明使用手冊(cè)

    今天小編就為大家分享一篇關(guān)于Packetdrill的簡(jiǎn)明使用手冊(cè),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-11-11
  • 用DNSPod和Squid打造自己的CDN (八) 測(cè)試并運(yùn)行SQUID

    用DNSPod和Squid打造自己的CDN (八) 測(cè)試并運(yùn)行SQUID

    想要測(cè)試SQUID是否正常,必須要先把www.naizhao.com這個(gè)域名解析到2.2.2.2這個(gè)IP上。跟上一章一樣,如果你是網(wǎng)通用戶就不需要做任何操作,DNSPod會(huì)給你返回2.2.2.2這個(gè)IP
    2013-04-04
  • 解決linux下vim中文亂碼的方法

    解決linux下vim中文亂碼的方法

    在vim中編輯一個(gè)中文文本時(shí),有時(shí)候看起來(lái)有亂碼,以前都是修修補(bǔ)補(bǔ)的弄沒有亂碼了就不管了,這個(gè)問題一直都很困擾我。突然想到這個(gè)問題想把它給解決掉,在網(wǎng)上有很多這方面的資料,但是說(shuō)得不是很到位,經(jīng)過(guò)了一天的折騰并做了一些小測(cè)試終于搞定了。下面來(lái)一起看看吧。
    2016-12-12
  • APACHE支持.htaccess偽靜重寫出錯(cuò) No input file specified的解決方案

    APACHE支持.htaccess偽靜重寫出錯(cuò) No input file specified的解決方案

    這篇文章主要介紹了APACHE支持.htaccess偽靜重寫出錯(cuò) No input file specified的解決方案,需要的朋友可以參考下
    2016-09-09
  • linux系統(tǒng)刪除文件后,仍占用磁盤空間的問題

    linux系統(tǒng)刪除文件后,仍占用磁盤空間的問題

    這篇文章主要介紹了linux系統(tǒng)刪除文件后,仍占用磁盤空間的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • apache禁止搜索引擎收錄、網(wǎng)絡(luò)爬蟲采集的配置方法

    apache禁止搜索引擎收錄、網(wǎng)絡(luò)爬蟲采集的配置方法

    這篇文章主要介紹了apache禁止搜索引擎收錄、網(wǎng)絡(luò)爬蟲采集的配置方法,注意一定要寫到Location節(jié)點(diǎn),否則不起作用,可以精確匹配,也可以IP匹配,需要的朋友可以參考下
    2014-06-06

最新評(píng)論