鸟哥的Linux私房菜基础篇笔记--9
来源:互联网 发布:剧本下载软件 编辑:程序博客网 时间:2024/05/23 12:20
382.利用[ ]来判断。
(1)判断的参数和test 命令是相同的。
[ -z “$HOME” ] ; echo $?
(2)注意事项:
在中括号内的每个组件都需要有空格键来分割。
在中括号内的变量,最好都以双引号引起来。
在中括号内的常量,最好都以单或双引号引起来。
(3)错误例子:
#name=”Vbird Tsai”
#[ $name == “Vbird” ]
bash: [ : too many arguments
这个报错显示的意思是太多的参数了。
因为没有加”” 所以就会变成这样,[ Vbird Tsai == “Vbird” ]
是不是不对劲,
如果加上双引号,[ “Vbird Tsai” == “Vbird” ],所以就没事了。
384.shift 脚本命令。
(1)shift 数字 的意思就是将最前面的几个参数。
看书上解释吧。
391.在脚本中定义一个函数。
(1)zhige () {
echo $PATH
}
zhige
相当于
function zhige () {
echo $PATH
}
zhige
(2)在一个函数中。
zhige () {
echo $1
}
zhige root
这个$1代表的是在引用zhige后面加上的root,而不是在执行脚本后面加的参数,你懂吧。
394.在脚本中,n++ 。
(1)在一个脚本中,n++ 是不可用的,用了也没有效果。
395.脚本中的for 循环。
(1)for animal in dog cat alephant
do
echo $animal
done
(2)for i in {1..40}
do
done
(3)for i in `cat /etc/`
do
done
(4)for ((i=0 ; i>=5;i++))
do
done
393.while 和 until循环。
(1)while [ 判断条件 ] 当满足条件的时候,进行循环,当条件不满足时就会退出循环
do
done
(2)until [ 判断条件 ] 当不满足条件的时候,进行循环,当条件满足的时候退出循环。
do
done
397. sh 脚本的追踪和调试。
(1)sh -n test.sh
不要执行test.sh ,只是检查语法是不是正确,如果语法正确,不会有任何显示。
(2)sh -x test.sh
会真正的执行test.sh ,还会显示出执行脚本的步骤。
410.useradd 创建用户命令。
(1)useradd -r vbird
创建一个系统用户,账号的UID会有限制(参考/etc/login.defs),不会主动创建主文件夹。
(2)useradd -D
将useradd 默认值调用出来,这个数据是由/etc/default/useradd提供的。
(3)创建用户的时候对于用户组的两种机制。
私有用户组机制:系统会创建一个与账号一样的用户组作为初始用户组,这种用户组的设置机制会比较保密,这是因为用户都有自己的用户组,而且主文件夹权限将会设置700(仅有自己可进入自己的主文件夹)只故,使用这种机制将不会发参考GROUP=100这个设置值。现在用的就是这个。
公共用户组机制:就是以GROUP=100这个设置值作为新建账号的初始用户组,因此每个账号都属于users这个用户组。
(4)useradd 命令参考的文件有: /etc/default/useradd /etc/login.defs /etc/skel
/etc/default/useradd 提供默认的shell、模板目录、在哪里创建家目录、是否创建邮
件文件。
/etc/login.defs /etc/shadow 文件内容所需要的默认值,还有GID和UID的最小值和
最大值,用户家目录的默认权限等。
/etc/skel 用户家目录的模板目录。
413.passwd 命令。
(1)passwd root :给root修改密码。
(2)passwd -l : l 是lock的意思,就是将账号上锁。
(3)passwd -u : u 是unlock的意思。
(4)passwd -S : 列出密码的相关参数,即shadow文件内的大部分信息,也就是当
前用户密码的状态。
(5)非交互式修改密码: echo “123456” | passwd --stdin root
415.chage 命令。
(1)chage -l root 列出root的密码详细参数。
(2)chage -d 0 zhige 在用户登陆的时候强制用户修改密码。
416.usermod 命令。
(1)usermod -l newname oldname : 修改用户名。
(2)usermod -c “zhige is a binggan” zhige : 修改用户/etc/passwd文件中第五列的说明,是覆盖修改。
(3)usermod -a -G group1 zhige :与G和用可增加次要组的支持而非设置。
(4)usermod -G group1 zhige :设置group1为zhige的附加用户组。
418.finger chfn 命令。
(1)finger root : 会列出root的一些信息。
(2)而chfn会将修改或者添加finger root 列出的信息,chfn有change finger的意思。
419.chsh 命令。
(1)chsh -l :列出目前系统上面可用的shell,其实就是/etc/shells的内容。
(2)chsh -s : 设置修改shell,只能修改root的shell。
420.groupadd 命令。
(1)groupadd -r zhige :新建一个叫zhige的系统用户组。
420.groupmod 命令。
(1)groupmod -g 201 -n newname oldname :-g修改用户组的GID,-n修改用户组组名。
421.gpasswd 命令。
(1)gpasswd -A zhige group1 : 设置用户组的管理员。成为这个组的管理员后并不会加入到这个组当中,也就不会有组相应的权限。
(2)gpasswd -r group1 : 将groupname 的密码删除。
(3)gpasswd -M zhige green red group1 : 定义用户组的成员。
(4)gpasswd -a zhige group1 : 将zhige加入到group1中。
(5)gpasswd -d zhige group1 : 将zhige删除出group1这个组外。
424.如何重新挂载,加上一些原来没有的属性。
(1)mount -o remount,acl :重新挂载,加上acl属性。
424.设置acl属性命令setfacl。
(1)当需要单独设置一个用户对目录的权限的时候,就会用到setfcal命令了。
(2)setfacl -m u:zhige:rwx acl_test1 :设置zhige用户对文件的特殊属性为rwx。
(3)setfacl -m u::rwx acl_test1 : 当中间的用户名没有填写时,代表设置该文件所有者,所以上面显示root的权限为rwx了。
(4)setfacl -d -m u:zhige:rx 目录 : 设置目录的默认权限,在该目录下新建文件或
还可以 者目录会继承这个设置。
setfacl -m d:u:zhige:rx 目录
(5)setfacl -k 目录 : 删除目录的默认权限。
(6)setfacl -b 文件或目录 : 删除目录或者文件所有的acl权限。
(7)setfacl -R -m u:zhige:rwx 目录 : 递归设置acl权限。
(8)setfacl -x u:zhige:rwx :删除后面的acl权限。
(9)setfacl -m m:r acl_test1 :设置文件acl_test1的有效权限。
425.查看文件或者目录的acl权限。
(1)getfacl acl_test1
(2)在使用getfacl acl_test1 的时候回发现有一个mask::r-x,它的意思有点像是有效权限,用户或组所设置的权限必须存在于mask的权限设置范围内才会生效。是针对acl权限用户设置的,不会对文件所属者和文件所属组产生影响
(3)当执行命令:setfacl -m u:zhige:rwx test.sh : 系统会默认将mask修改成rwx,如果有特殊需求就需要用上面的方法修改了。
428.命令su 。
(1)su zhige : 当su直接加用户登录的时候,读取的变量设置方式为non-login
shell 的方式。
(2)non-login shell和 login-shell 的区别在于是不是重新读取登录用户的环境变量。
(3)su -l zhige :用login-shell的方式登录。
su -zhige 也可以
(4)su -m zhige :表示使用目前的环境变量,而不读取新用户的配置文件。
(5)[zhige oatest $] su - -c “head -n 3 /etc/shadow ” : 当前用户位zhige ,切换到root用户执行命令head -n 3 /etc/shadow 。需要root密码,su - 就是登录root的意思。
430.命令 sudo 。
(1)sudo -u sshd touch /tmp/mysshd : 用用户sshd的身份在/tmp/ 新建文件
mysshd,用户和用户组都位sshd。
(2)sudo -u sshd sh -c “mkdir ~zhige/www; cd ~zhige/www ; echo “This is test” > index.html ”
在有多个命令的时候使用 sh -c “” ,多个命令用;隔开。
(3)因为sshd是系统账号,所以是不能登陆的,不能用sshd新建一个属于它的文件,上文提到的方式可以。
(4)sudo 执行的重点是,能否使用sudo必须要看/etc/sudoers的设置值,而可使用sodu是通过输入用户自己的密码来执行后续的命令串。
(5) 用 visudo 去编辑 /etc/sudoers 文件。
(6)文件的内容:
root ALL=(ALL) ALL
上面这一行的四个参数的意思分别是:
1.用户账号:系统的哪个账号可以sudo这个命令。
2.登录者的来源主机名:意思这个账号可以有哪台网络主机连接过来。
3.可切换的身份:这个账号可以切换什么身份来执行后续的命令。
4.可执行的命令:这个命令务必使用绝对路径编写。
(7)在文件中:
%wheel ALL=(ALL) ALL
%的意思是用户组的意思
zhige ALL=(root) NOPASSWD: /usr/bin/passwd
NOPASSW 在使用sodu的时候不用输入密码。
zhige ALL=(root) !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]* , \
!/usr/bin/passwd root
加上!的意思是不让zhige使用这个命令,\的意思是一行写不开,分割到下一行,虽
然分割到下一行,但是还算是一行的内容。
(8)visudo 文件中的别名。
User_Alias ADMINS = zhige1 , zhige2 , zhige 3
ADMINS ALL=(root) /bin/su -
别名必须使用大写字母
440.如果你想要知道每个账户的最近登录时间.
(1)你可以使用lastlog 这个命令,lastlog会读取/var/log/lastlog这个文件(二进制文件)。
440.如果你想要知道目前系统上正在登录的账号。
(1)w 和 who
441.用户对谈。
(1)write zhige pts/2
会进入交互模式,结束的时候,请按下Crtl+D 结束输出。
write 用户名 终端接口
(2)如果用户不想受到任何的信息。
在用户当前登录界面,mesg n , 就不会受到其他用户发送给他的信息,但是root
发的消息还是需要接收的。
如果想要解开的话,就执行 mesg y 。
如果想要知道mesg 的状态,就直接执行mesg 就可以了。
(3)如果想要给所有的用户都发这个消息呢,就可以使用。
wall “I will sutdown my linux server ”
442.邮件mail。
(1)一般来说,mailbox都会放置到/var/spool/mail里面,一个账号一个mailbox(文件的形式),举例子来说我的zhige就具有/var/spool/mail/zhige这个mailbox。
(2)echo “邮件内容” | mail -s “标题” 用户名
echo “test test ” | mail -s “test” zhige
mail -s “test” zhige < /root/.bashrc
mail -s “test”ssz940728@163.com < /root/.bashrc
用非交互的方式给用户zhige 发邮件。
(3)mail -s “test” zhige
用交互的方式给用户zhige 发邮件。
结束的时候在最后一行输入一个 . 就可以。
(4)查看指定用户的邮件。
mail -u zhige
(5)mail : 默认查看的是当前登陆的用户的邮件,在这个里,有的邮件前面是>N,说明这个邮件还没有读过。如果想要知道这个mail内部命令有哪些,可以在&之后输入? 。
在&后可以输入的命令。
h 40列出信件标头,如果查阅40左右封信件的标题,可以输入”h 40 ”,可以用来翻页。
d 5 删除后续邮件号码对应的邮件,要配合q才会有意义。
s 5 /home/zhige/mail.file 将邮件标号为5的邮件保存到/home/zhige/中。
exit/e 是不保存离开。
q 会进行两项操作,将刚才删除的信件一处mailbox之外,或者将刚才有阅读过的
信件存入 ~/mbox , 且一处mailbox之外 (后面这个默认是没有的)。
(6)mail -f /var/spool/mail/zhige 查看用户zhige的邮件。
(7)mail -f /home/zhige/Mail....(可以tab),不知道对不对。
443.一些账号检查工具。
(1)pwck : 这个命令检查/etc/passwd这个账号配置文件内的信息,与实际主文件夹是否存在等信息,还可以比较/etc/passwd /etc/shadow 的信息是否一致,如果/etc/passwd内的数据字段错误时,会提示用户修改。
系统账号没有创建主文件夹也会被报出错误。
444.手动建立一个账号。
(1)现在的账号的用户名是可以使用数字开头的,也可以使用纯数字。
(2)手动建立账号的步骤。
1.先建立所需要的用户组。 (vim /etc/group)
2.将/etc/group与 /etc/gshadow同步 (grpconv)
3.新建账号的各个属性。(vim /etc/passwd)
4.将/etc/passwd与/etc/shadow同步 (pwconv)
5.新建该账号的密码 (passwd zhige )
6.新建用户主文件夹(cp -a /etc/skel /home/zhige)
7.更改用户主文件夹的属性 (chown -R zhige:zhige /home/zhige)
455.重新挂载的命令。
(1)mount -o remount,usrquota,grpquota /home
当重新挂载的时候,系统会同步更新/etc/mtab这个文件。
如果要设置quota,那么你必须要确定/etc/mtab已经加入usrquota和grpquota的支持
到你所想要设置的文件系统中。
kill命令
(1)kill -HUP pid
其中 pid 是进程标识。如果想要更改配置而不需停止并重新启动服务,请使用该命令。在对配置文件作必要的更改后,发出该命令以动态更新服务配置。
根据约定,当您发送一个挂起信号(信号 1 或 HUP)时,大多数服务器进程(所有常用的进程)都会进行复位操作并重新加载它们的配置文件。
也可以想成是reload的做法。
- 鸟哥的Linux私房菜基础篇笔记--9
- 鸟哥的Linux私房菜基础篇笔记---1
- 鸟哥的Linux私房菜基础篇笔记--2
- 鸟哥的Linux私房菜基础篇笔记--3
- 鸟哥的Linux私房菜基础篇笔记--4
- 鸟哥的Linux私房菜基础篇笔记--5
- 鸟哥的Linux私房菜基础篇笔记--6
- 鸟哥的Linux私房菜基础篇笔记--7
- 鸟哥的Linux私房菜基础篇笔记--8
- 鸟哥的Linux私房菜基础篇-学习笔记
- 《鸟哥的linux私房菜 基础篇》第三章学习笔记
- 《鸟哥的Linux私房菜基础篇》阅读笔记——第6、14章
- “鸟哥的linux私房菜基础篇(第三版)”--学习笔记
- 鸟哥的Linux私房菜 基础篇 第三版 学习笔记 序
- 鸟哥的Linux私房菜(基础学习篇)笔记
- 鸟哥的linux私房菜 ---- 笔记
- 鸟哥的linux私房菜笔记
- 鸟哥的Linux私房菜笔记
- ROC和AUC介绍以及如何计算AUC
- OpenCl
- 开心的金明-SSL 1052
- 代理模式
- 谷歌推荐的Android图片加载库(Glide)介绍
- 鸟哥的Linux私房菜基础篇笔记--9
- 加密算法比较
- 数据传输过程详解
- bundler安装,关于源码的修改
- union和union all的区别
- unable to load dll 的解决方法
- MySQL没有 data 目录的解决方法或者重建 data 目录
- eclipse中使用hibernate,不能找到hibernate.cfg.xml的问题
- 微服务之Restful API 设计简述