1. shell脚本中打印输出内容时,若使用下面的格式要注意下面的EOF前面没有空格
cat <<EOF
"**************************************************************************************"
"** This script can help your restart weblogic service and clear your weblogic cache. **"
"**************************************************************************************"
"Usage: ./RestartWeblogic_test.sh "
EOF
2.xargs 可以处理参数过长的问题,如 ls file* | xargs rm 如果file开头的文件过多时,可以逐个删除
[[email protected] zhanglei]#touch file{1..400000}
-bash: /bin/touch: Argument list too long
此时可以使用 echo file{1..400000} | xargs rm xargs可以逐个删除每个file
3.在tty的虚拟终端里面只需要使用Alt + f1(f2,f3) 就可以切换终端,无需使用Ctrl+Alt+f1(f2,f3),在图形化界面里需要使用Ctrl + Alt + f1(f2,f3)
4.ctrl + c 关闭图形化程序startx是在pts伪终端关闭的,而不是tty,图形化程序与运行5级别有区别,5级别会运行一下其他的图形化服务
5.使用vi编辑器打开多个文件可使用qall 全部关闭并且不保存,也可以使用wqall 全部保存并关闭
6.# sed -n '1~2p' /etc/passwd 打印奇数行,~2标示步进数,从第1行开始
7.# sed -n '2~2p' /etc/passwd 打印偶数行,从第2行开始
8.watch -d -n 1 'ls -/home/zz' 实时查看zz某个目录下变化情况,每一秒输出一行
9.rename 'hhh' 'HHH' file* 将file开头的文件名中包含的hhh修改成HHH
10.paste a b 将多个文件的内容合并,并用tab分隔符隔开
11.paste -d'+' a b 将多个文件的内容合并,并指定分割符为+号
12.cmd 2>all.log 1>&2 (cmd >all.log 2>&1) 两种写法均表示将正确重定向和错误重定向全部输出至文件
13.tr -c 'abc' '123' 将非abc的字符全部转成最后一个替换字符3
14 tr 'a-z' 'A-Z' file 将file中的小写字母转成大写
tr 'abc' '1234' 将abc每个字符文件替换成123,4忽略
tr -d 'abc' 删除字符集中存在的abc字符
tr -dc 'abc' 删除字符集中的非abc的字符
tr -s 'abc' 压缩字符集中连续的字符如aaa,bbb,cccc
15.cat > linux.txt 输入内容至linux.txt文件,但是会清空源文件中的内容,若不相清空文件需要使用多行重定向 cat > linux.txt <<EOF 不保存退出使用Ctrl + c,保存退出使用 Ctrl + d
16.hexdump -C 1.txt 换行符对照ASCII码,可以通过ASCii码对照表查看特殊字符对应的10进制
17.tr -d '\15(\r)' < win.txt > win2.txt ,tr不修改原文件,保留修改的后的内容需要使用重定向输出
tr -d '\r' < win.txt |cat -A 查看修改的后的文本内容
18.tr '\n' '\t' < linux.txt 将文本内容的回车修改为水平制表符
19.tr -s ' ' < win3.txt 将文件中的内容多个空格压缩成一个
df |tr -s ' ' ':'| cut -d: -f1 将输出的内容压缩空格后将单个空格以:号替换,并打印:号分隔的第一列
20.tr -s ' ' ':' < df.log 压缩字符集中的空格,并用:号分割
21.cat > f2 清空原文件,使用的是单行重定向,输入过程中每一行会根据输入回车来更新文件
22.<<EOF 多行重定向,输入的标记EOF左右无空格,通过输入内容是否为标记符来判断输入内容是否完成,遇到标记符后才进行多行输入至文件
cat > A.txt <<EOF 只有在输入EOF之后才会将内容输出至文件并保存
mail -s "call" [email protected] <<END(<file.txt 可以通过文件内容作为mail正文)
mail -s "call" [email protected] 提示输入正文,输入.号表示输入正文结束并发送邮件
cat > f2 <<EOF 不会覆盖原文件的内容,EOF结束标记的左右不能有空格,否则不算EOF结束符
23.tr 'a-z' '[:upper:]' 不能混合使用,只能[:lower:] [:upper:] 或 'a-z' 'A-Z'
24.mail -s "help" root 此命令以.结束输入正文结束,正文可以存在变量,如$HOSTNAME,也可有命令替换,命令替换的均为发件人的信息
mail -s "help" root 后面提示输出的正文通过.来终止输入并发送邮件
使用mail查看邮件之后可使用q 来退出
25.管道是将前一个命令的标准输出作为后一个命令的标准输入,所以对于错误重定向需要使用2>&1 来转换才可以作为下一条命令的输入,也可以使用 |& 来实现
ls /erro 2>&1 | tr 'a-z' 'A-Z' (|& centos6 版本以上) 将错误重定向和正确重定向管道至tr
26.echo {1..100} | tr ' ' + |bc (seq -s + 100 |bc) 空格符号' ' 不能使用[:space:]包括回车
27.管道中的 - 替换 如: tar -cvf - | tar -xvf - 打包以后再次拆包
28.ls | tee -a ls.log |tr -d '\n' -a表示追加内容而不覆盖,使用tee命令可以在保存输出的情况下再此对输出做进一步重定向
29.mail -s "help" root <<EOF 输入mail邮件的正文并且以EOF判断正文结束并发送邮件
30.ls | tr '\n' ' ' 将ls输出的内容中的回车 转成空格符
31.cat -A win.txt -A选项查看特殊字取符集
32.tr -t 'abcd' 'xyz' -t选项会忽略后面无匹配项的d
tr 'abcd' 'xyz' abc的匹配xyz,多出来的d也匹配z
33.openssl rand -base64 10 生成随机数
touch `openssl rand -base64 10 |tr -dc '[:alnum]' | tr '[:upper:]' '[:lower:]'`
34.wang g1 g2 g3 累加权限
35.pwunconv 密码文件回复到源文件 pwconv
36.修改文件 重新登录 获取令牌,而非source
37.init=/bin/bash
mount -o ...
38.chfn wang 添加用户描述
39.finger wang 查看用户的描述信息,也可以使用 # cat /etc/passwd 查看
40.用户家目录的配置文件 .bash_profile .bashrc,配置文件来自 /etc/skel
41.cp -r /etc/skel/.* /data/wang 此种写法会包括..,因为..会将上一层的/etc所有为的文件拷贝过去,正确的写法:cp -r /etc/skel/.[^.]* /data/wang
注意:*号不包括隐藏文件
42.chsh -s /sbin/noglogin wang 为了安全,不能切换使用,锁定可以,系统服务使用,修改shell类型,修改的就是passwd文件
43.net accounts windows 查看密码有效期
44.authconfig --passalgo=sha256 --update 修改密码策略其实修改的是配置文件是/etc/login.defs
45.openssl rand -base64 9 生成随机密码
46.shadow 中密码位!!表示账户锁定,删除可!!可以直接登录
47.usermod -U 账号 去!号 rhel5可以 !!双保险,centos6以后不可以
48.usermod -L 锁定可以切换,不能ssh登录
49.passwd -e 密码立马过期,登录之后换密码
50.change -d 0 用户 口令立即失效
chage wang chage -l wang
51./etc/default/useradd 有两个字段?
52.useradd -N fastfs -N选项表示创建fastfs用户并且不给出主组,直接使用默认的users组(cat /etc/default/useradd)
53.附加组 /etc/group groups root
54.id 、id root 显示会有区别,id显示的要比直接使用id root显示的信息更加详细
55.gpasswd mage
newgrp mage
56.vipw vigr 带语法检测,防止语法错误无法开机,如没有uid为0的账户
57.pwck grpck 语法检查 手动
pwck -s 可以按照uid的由小到大排序/etc/passwd文件,因为后加入的用户不论uid大小均放到文件的最下面
pwck -q 做语法检查时不输出警告信息
grpck -s 可以按照gid的由小到大排序/etc/passwd文件
58.getent passwd(group) xixi 直接查看passwd文件中的指定行(xixi用户)
getent group
getent gshadow
getent shadow
59.多服务器部署相同服务指定id号,所以可以指定创建用户的uid号
60.id 命令会输出用户的安全上下文,id root不会输出安全上下文
61.删除用户以后,用户家目录里面的文件的所属组和所属用户的变为用户的uid和gid
62.rpm -qp --scripts bind-9.9.4-37.el7.x86_64.rpm --scripts 查看软件包安装过程中的脚本
63.useradd -D 显示cat /etc/default/useradd 中的文件内容,也可以通过指定相应的参数来修改
64.echo $RANDOM 输出随机数 (man bash) echo $[RANDOM%102+1]
65.newusers passwd 批量创建账号
66.cat pass.txt | chpasswd 批量为用户加口令,注意在pass.txt文件内容不允许有空格,创建的用户不存在/etc/skel中的模板文件
pass.txt 内容如下:用户名和密码用冒号分隔,并且每行一条
username1: password1
username2: password2
cp -r /etc/skel/.[^.]* /home/zl1 来将模板文件拷贝至zl1中,注意要去除掉..,否则会将上级目录也拷贝至zl1目录中
chown -R zl1:zl1 /home/zl1 将目录及目录下的文件用户属性和所属组属性全部修改成zl1
67.usermod -G "" wang (usermod -G wang wang)用于将wang账户中的附加组清空
68.id -gn wang id -Gn wang 显示wang账户中的私有组或附加组
69.使用不完全切换需要使用当前目录的情况下可以不用切换目录,否则变成指定用户的家目录
70.su - root -c 'ls' 切换用户 并执行切换后用户的命令
71.主组在有用户存在的情况下不能删除 ,因为每一个用户必须属于一个主组
72.groupmems -l -g g1 显示组g1中有哪些用户
73.groupmems -a wang -g g1
74.gpasswd -d wang g1
75.groups username 查看username中的组,包括主组和附加组
76.userdel -r zl -r选项不仅仅删除用户的家目录还包括用户的邮件
77.authconfig --passalgo=sha256 --update 修改密码加密方法,默认是sha512(cat /etc/login.defs)
useradd -u 1000 -c "test user" -d /data/zl zl 创建用户之后查看 /etc/shadow文件对应的行
78.shadow 文件的格式
zl:$5$0OAxljIs$Za5.tY3FFsS68dcF3GZ8qqaXfxdyj.yEOPjmLhlBcp4:17624:0:99999:7:3:100:
root:用户名
$5$0OAxljIs$Za5.tY3FFsS68dcF3GZ8qqaXfxdyj.yEOPjmLhlBcp4:经过sha256加密的密码(已经使用authconfig --passalgo=sha256 --update 修改)
5:表示的是经过的sha256加密
$0OAxljIs$: 两个$$之间的是salt ,即使用加密算法时添加的随机数,所以相同的密码后面的加密字符不会相同
17624:表示上一次修改密码的时间,即为距离1970.1.1至修改时间所过去的天数
date +%s 查看现在时间距离1970.1.1过去的秒数
使用bc命令
1522724532/3600/24 = 17624 便可以计算出哪一天修改的密码
0: 表示密码使用的最短日期,如果为3,则表示密码最少要使用3天,0表示密码随时可以修改
99999: 表示密码的最长时间 99999表示密码永远不过期
7:表示密码即将过期的第7天发送提示信息
3:表示密码在过期之后还可以使用3天,但3天过后账户被锁定
100:表示多少天后账号失效
79.chfn 提示输入用户的个人信息,修改完成后可以使用cat /etc/passwd 来查看
80.chsh 可以切换shell类型,修改的就是/etc/passwd指定的shell类型
chsh -s /bin/csh zhanglei 要是用shell类型的全路径 cat /etc/shells
81.groupdel
82.groups 可以查看指定用户的组,包括主组和附加组
grpous zl
83.groupmems -l -g zl 查看zl组内的成员用户
84.gpasswd 为组添加密码
85.newgrp 当用户具有多个组的时候可以使用newgrp来切换组
86.常用的配置文件路径:
cat /etc/skel
cat /etc/default/useradd
cat /etc/login.defs
87.gpasswd 为组添加密码,任何一个用户只要知道密码都可以切换至该组,如果不设置组密码则用户不能使用newgrp来切换组,但是属于同一个用户的不同组可以使用newgrp来切换且不需要密码
88.cat /etc/passwd |wc -l (sed -n '$=' /etc/passwd) 都可以计算文件的行数
89.安全3A Authentication: 认证 Authorization: 授权 Audit 审计
90.在cp拷贝所有文件的时候要注意* 号不能匹配路径汇总的隐藏文件
原文地址:http://blog.51cto.com/9980200/2104911