学习笔记(4)

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

时间: 2024-11-05 20:47:11

学习笔记(4)的相关文章

锋利的JQuery 学习笔记

第一章 认识JQuery ·页面加载事件(可以写多个ready())$(document).ready(function(){alert(“hello world”);}) ·链式操作:JQuery允许你在一句代码中操做任何与其相关联的元素,包括其子元素.父元素等//选择名称为myDiv的元素,为其自身添加css1的样式,然后再选择其所有子元素a,为其移除css2样式$(“#myDiv”).addClass(“css1″).children(“a”).removeClass(“css2″); ·

锋利的JQuery学习笔记之JQuery

今天终于看到了最令我兴奋的一章:JQuery与Ajax的应用.AJAX即"Asynchronous JavaScript and XML"(异步JavaScript和XML),AJAX并非缩写词,而是由Jesse James Gaiiett创造的名词,是指一种创建交互式应用的网页开发技术.在最初学习Ajax的日子里,我被ASP.NET AJAX框架提供的UpdatePanel迷惑了,以后Ajax就这么简单,所以在最初做的几个项目里,前台代码里必至少有一个UpdatePanel区域,把要

锋利的jQuery学习笔记之jQuery选择器

在介绍jQuery选择器之前,先简单介绍一下CSS选择器---> 一.CSS选择器 常见的CSS选择器有以下几种: 选择器 语法 描述 示例 标签选择器 E{CSS规则} 以文档元素为选择符 td{font-size:10px;} a{tetx-decoration:none;} ID选择器 #ID{CSS规则} 以文档元素的唯一标示ID为选择符 #node{corlor:red;} 类选择器 .className{CSS规则} 以文档元素的class作为选择符 div.node{backgro

锋利的Jquery学习笔记之Jquery的选择器

Jquery的选择器分为:基本选择器,层次选择器,过滤选择器和表单选择器. 1.基本选择器 基本选择器是Jquery中最常用的选择器,也是最简单的选择器. 2.层次选择器 如果想通过DOM之间的层次关系来获取特定元素,例如后代元素,子元素,相邻元素和同辈元素等,那么层次选择器是一个非常好的选择. 在层次选择器中,第一个和第二个选择比较常用,而后面两个在JQuery里可以用更加简单的方法代替,所以使用的几率相对较小. 3.过滤选择器 过滤选择器主要是通过特定的过滤规则来筛选出所需的DOM元素,过滤

锋利的jquery学习笔记

1.$("#tt")获取的永远都是一个jquery对象,所以要判断页面上是否存在某个对象不能像js中 if($("#tt")){ } 而是通过: if($("#tt").length > 0){ } ps:当页面中不存在id为tt的元素时,jQuery不会报错,而js中会报错 2. jQuery层选择器$("ancestor descendant")和$("parent>child") <

jQuery学习笔记(一):入门

jQuery学习笔记(一):入门 一.JQuery是什么 JQuery是什么?始终是萦绕在我心中的一个问题: 借鉴网上同学们的总结,可以从以下几个方面观察. 不使用JQuery时获取DOM文本的操作如下: 1 document.getElementById('info').value = 'Hello World!'; 使用JQuery时获取DOM文本操作如下: 1 $('#info').val('Hello World!'); 嗯,可以看出,使用JQuery的优势之一是可以使代码更加简练,使开

Js脚本之jQuery学习笔记(1)

Js脚本之jQuery学习笔记(1) 一.javascript基础 单行注释 多行注释 /* */ 数据类型 数值型 字符串型 布尔型 空值 未定义值 转义字符 函数定义:1234567891011121314<head><script language="javascript"function test(m){var xixi="嘻嘻"alert("这是javascript")document.write(xixi + m)}

jQuery学习笔记--JqGrid相关操作 方法列表(上)

1.获得当前列表行数:$("#gridid").getGridParam("reccount"); 2.获取选中行数据(json):$("#gridid").jqGrid('getRowData', id); 3.刷新列表:$(refreshSelector).jqGrid('setGridParam', { url: ''), postData: ''}).trigger('reloadGrid'); 4.选中行:$("#jqGrid

jQuery学习笔记10:Ajax技术

jQuery 库拥有完整的 Ajax 兼容套件.其中的函数和方法允许我们在不刷新浏览器的情况下从服务器加载数据. jQuery 采用了三层封装:最底层的封装方法为:$.ajax(),而通过这层封装了第二层有三种方法:.load().$.get()和$.post(),最高层是$.getScript()和$.getJSON()方法. 函数 描述 jQuery.ajax() 执行异步 HTTP (Ajax) 请求. .ajaxComplete() 当 Ajax 请求完成时注册要调用的处理程序.这是一个

jQuery学习笔记之过滤器三(向上查找兄弟元素、向下查找兄弟元素)

向上查找兄弟元素的方法:prev方法.prevAll方法.prevUntil方法 向下查找兄弟元素:next方法.nextAll方法.nextUntil方法 向上查找兄弟元素 1.prev方法 2.prevAll方法 3.prevUntil方法 向下查找兄弟元素 1.next方法 2.nextAll方法 3.nextUntil方法 jQuery学习笔记之过滤器三(向上查找兄弟元素.向下查找兄弟元素)