36:数据流重导向
< << >或1> >>或1>> 2> 2>>
执行命令:从文件或者设备读取数据,经处理后输出到设备或者文件
例如:find /home -name testing> list_right 2>list_error
find /home -nametesting > list_right 2>/dev/null
find /home -nametesting > list_right 2>&1 ;输出到同一个文件
37:/dev/null输入到这个设备的数据都会消失
38:cat > catfile
使用cat在键盘上输入一些数据到文件catfile中,ctrl+D结束输入
cat > catfile < somefile
使用somefile文件内容作为输入,输出为catfile文件
cat > catfile <<eof
<<表示“输入结束的输入字符”
39:sync;syns;shutdown -h now
ls /tmp && touch /tmp/test
ls /tmp/1 || touch /tmp/1
40:ls /tmp/1 &&echo “exist” || echo “not exist” ;可以
ls /tmp/1|| echo “not exist” && echo “exist” ;不可以
命令是一个一个往下执行的
41:管道命令 pipe |
管道的前后都要是命令,前一个命令的输出为后一个命令的输入:command1 | command2 |command3
管道命令| 仅能够处理通过前一个命令传来的正确信息,也就是标准输出的信息,没有能力直接处理标准错误。
42:基本的管道命令
cut grep
43:排序命令
sort:排序
uniq:重复数据只显示一次
wc:计算输出消息的信息
44:tee:双向重导向
45:tr col join paste expand命令
46:拆分命令 split
47:参数代换 xargs
48: - 可代替stdin stdout
--end-11
第十二章 正则表达式
1:正则表达式:也成常规表达式,是通过一些特殊字符的排列,用以搜索/替换/删除一行或多行字符串。简言之,正则表达式就是在字符串处理中的表达式
2:正则表达式要运用在支持正则表达式的程序/命令上
如:grep “mail” /etc/rc.d/*
3:简单的字符串选取工具程序grep
grep [-acinv] ‘搜索字符串’ filename/目录
-c :计算找到“搜索字符串”的次数
-i :忽略大小写
-n :输出行号
提取整行
例如:grep -n ‘g..d’filename ; .表示绝对有一个任意字符
grep -n ‘o*’filename ; 显示整个内容 !!!!!!!!!!!!!! o*表示“空字符或一个以上的o”
4;格式化显示:printf
printf ‘打印格式’ 实际内容
如:printf ‘%s\t %s\t %s\t \n’`cat printf.txt`
5;sed 可以分析标准输入的数据,处理完再输出到标准输出
可以替换、删除、新增、选取特定行等处理功能
awk 类似sed
6:文件数据比较
文件\目录比较 diff patch与diff密不可分
文件比较 cmp
7:文件打印准备 pr
--end-12
第十三章 学习Shell 脚本
--end-13
第十四章 linux账户与身份管理
1:linux用户必定对于一个ID,ID与账户对应关系在/etc/passwd中
2:每个用户至少有两个ID,一个是用户ID(User ID,简称UID),一个是用户组ID(Group ID,简称GID)
3:文件就是利用UID和GID来识别拥有者和用户组的,每个文件都有UID和GID.
4:linux用户登录的过程
当我们的以telnet或者ssh登录主机时,会出现login画面,然后输入账户与密码
linux先找到/etc/passwd是否有这个账号?没有退出,有则会将该账号对应的UID和GID读出,并将家目录与shell设置读出
核对密码表,linux会进入/etc/shadow中查找对应账号与UID,核对密码是否相符,若相符,进入shell控制阶段
所以:备份linux账号时:/etc/passwd和/etc/shadow这两个文件必须要。
5:/etc/passwd 文件中可以修改用户的家目了,用户默认的shell
6:/etc/shadow 文件中若删除密码字段,则登陆不需要密码
7:用户组文件 /etc/group
如:root:x:0:root
用户组名为第一个字段,第二个字段用户组密码,第三个字段为用户组ID,第四个字段为这个用户组中的用户,可以通过“,账户名”来添加用户组的用户
8:一个用户可以加入到若干个用户组中
9:创建用户时会自动生成一个用户组,为此用户的初始化用户组
如想给此用户在加用户组,则在/etc/group中添加
对于具有多个用户组的用户,有这几个用户组的权限。对于此用户新创建的文件,此文件的用户组是谁?当前有效用户组。
10:本用户所在的用户组用 groups可获得,第一个就是有效用户组。
更改有效用户组:newgrp 用户组 ;前提是此用户是这个用户组的,会以另外一个shell登录。
如果此用户不是这个用户组的,能都登录到这个用户组呢?此时要具备两个条件:1:用户组密码栏是合法的,就是不用!开头。2:用户组中需有root
10:/etc/gshadow最大的作用是,让那些不在用户组的成员临时加入改组。不过使用的少,还是直接将用户加入该用户组就行了。
11:账户管理
linux中新增一个用户:useradd -m
修改密码 passwd username
usermod 可以修改账户信息,类似的有chsh,chfn,finger
userdel -r 删除用户
id 查看当前用户的ID信息
12:新增删除用户
用户组的内容与/etc/group和/etc/gshadow文件相关
group新增用户组
groupmod
groupdel :不能删除有用户的用户组
gpasswd :可以将用户组的管理权让给某个用户
newgrp
13:linux基本可以设置任何样式的密码,用户自能修改自己的密码,修改密码用passwd
14:su -
su -l username
15;sudo 执行sudo时系统会查看/etc/sudoers文件,看看当前用户是否具有sudo权限
且必须sudo用户组中有该成员
用sudo用户的命令可以被限制
编辑/etc/sudoers用visudo
--end-14
第十五章 linxu磁盘配额
1:磁盘配额就是限制用户使用磁盘的容量。
2:磁盘配额的限制如下:
针对整个分区;核心必须支持磁盘配额功能;磁盘配额只对一般用户有效,对root无效
3:磁盘配额对分区的限制有:
最低限制;最高限制;宽限时间
0M------------------------|最低限制25M|25M-------|最高限制30M|30M
4:基本的磁盘配额命令
查询命令:quota quotacheck quotastats warnquota repquota
编辑磁盘配额命令 edquota setquota
--end-15
第十六章 例行性命令的建立
1:两种工作任务分配方式:例行性,突发性,在linux中用at cron实现
2:at:工作只执行一次就从linux系统任务分配中取消
cron:工作将每个一段时间执行一次
3:linux系统常见的例行性任务
4:at : linux中支持服务atd ,就可以用at命令 ,默认没打开,sudo service atd restart
/etc/at.allow和/etc/at.deny是设置哪些用户可以使用at功能的文件
既然是任务分配,就要有写入工作的记录文件,at命令可以来写入工作记录文件,工作记录文件默认放在/var/spool/at/中,写入at工作记录文件后,该工作就进入任务分配中并等待执行。
5:at [-m] TIME
TIME有格式要求
如:at now + 5 minutes
at要进行工作任务分配,系统会将at独立出Bash,直接叫个atd服务来接管,可以立即离线。
可利用atq和atrm将at任务删除
6:cron服务来控制循环执行的例行性命令,这个服务默认启动。linux提供给用户的例行性工作命令crontab;
/etc/cron.allow和/etc/cron.deny是设置哪些用户可以使用corntab功能的文件;
当用户使用crontab命令建立工作任务分配后,该项工作就会被记录在/var/spool/cron/中,而且是以账号来识别的。
cron执行的每一项工作都会记录到/var/log/cron中
7:crontab [-u username] [-l|-e|-r]
例如:crontab -e ;crontab -e是针对用户的cron来设计的
系统的例行性任务可以直接编辑/etc/crontab文件。
cron服务每分钟回去读取一次/etc/crontab与/var/spool/cron中的数据内容。
--end-16