RHCE(Redhat 7)(一)
1-199 系统保留账号(服务用) (6及以下是1-99)
200-999 系统账号 (6及以下是100-499)
1000-232-1 普通账号 (6及以下是500-232-1)
ACL 状态符 如设会“+” ,无即“.”
ls �Cln
ls �Ct 按文件修改时间显示
ll �CR 递归显示文件权限等
ll �Cd 只显示目录信息
r读 w写 x执行 �C 在最前面表示这是个文件
system-config-users 图形化添加、删除账号
useradd �Ce 到期 -f 锁账号
id 显示账号信息
usermod �Cl改登录名 usermod �Cl 新 旧
-L 锁定 -U 接锁
usermod �Cd�Cm 改家目录(数据也会迁过去)
userdel �Cr 删账号及家目录
groupmod�Cn 新 旧 改group名
last 显示成功登录的
lastb 显示登录失败的
lastlog 显示所有账号是否有登录
w 显示登录账号 (更全,能显示登录多长时间)
who 显示登录账号
suid4 sgid 2 sticky bit 1
suid是使本来没有相应权限的用户运行这个程序时,可以访问没有权限访问的资源。(主要体现在普通用户改密码)
sgid 表示子目录组权限继承
stickybit 粘滞位(使用户只能对自己的数据执行操作)
/lib/systemd/system/graphical.target 图形界面
/lib/system/system/multi-user.target 文字界面
/etc/system/system/default.target (将图形界面或文字界面改为此链接,即可决定开机为图形界面或文字界面)
Ctrl+alt+f2-f6 文字模式 (6及以下是f1-f6)
Ctrl+alt+f1/f7 图形模式 (6及以下只有f7)
Vi
a 追加
A 本行结尾追加
o 增加新行(下面)
O 增加新行(上面)
I 直接到本行开始并进入输入模式
i 进入输入模式
:X = :wq
H J K L 左下上右
:15 15G 第15行
G 直接到结尾
gg 直接到开头
p粘贴在下面
P 粘贴在上面
u 撤销
U 只针对当前行修改撤销
Ctrl+r 恢复
vi �CO file1file2 两个垂直打开
vi �Co file1file2 两个水平分割打开
:setignorecase 忽略大小写
:setnu 显示行号
:setnonu 不显示行号
:vplit 垂直分割窗口 (1个file)
:split 水平分割窗口 (1个file)
Ctrl+ww 切换vi工作窗口 (ctrl的同时两次ww)
vi file1file2
:next :prev (vi两个file时可通过next和prev进行切换)
[abc] 3个中任1个
[^abc] 取反,abc都不包含
touchfile{1 2 3 4 } 集合,即建4个文件
ls file[12]
ls file[^12]
ls file[^12]*(如:ls D[eo]*)
history 查看历史命令
!25 重执行history 第25个命令
!$ 上一次执行的参数
$() =`` (如:$(hostname)=`hostname`)
$((A+B)) $(())表示运算,里面可以是+、-、*、/
kill -19进程号 暂停并丢入后台
Ctrl+z 丢入后台并暂停
kill -18进程号 恢复运行进程
jobs 查看后台运行进程
kill -9%1 杀掉后台进程1 (%1表示后台作业序号1)
bg 2 恢复暂停作业 = kill -18 进程号 (依然在后台)
fg 2 恢复到前台并运行
kill -15进程号 = kill -9 进程号 (不过-15有时会杀不掉)
进程通过exit 状态表示成功或失败
0表示成功,1-255表示失败
Echo $? 用来保存上一次命令的执行结果
Ctrl+c 取消的返回值为130
&>返回值为9
exit本身表终止并退出
&&表示条件然后 (成功….)
|| 表示条件否则 (错误….)
0为真,1为假
grep �Cq ‘aa’/etc/passwd (从/etc/passwd中查找aa)
= 对比字符串
-eq 对比数字
-eq 等于 -ne 不等于 �Cgt 大于 �Clt 小于 ge 大于等于 le小于等于
test表比对
test “$A”= “$B” && echo ‘yes’
[ “$A” �Ceq“$B” ] (中间均需有空格,此处[] 代表test的简写模式)
-f 文件是否存在以及是否为1个常规文件
-d 目录是否存在以及是否为1个常规目录
-x 文件是否存在以及是否带有执行权限(不管文件或目录)
-z 是否为空
以上4个配合“[ ]”使用
If [ $? �Ceq0 ] 如果上次返回为真
for … in.. ; do ; done (for语句)
if [ “$1”= ‘aaa’ ] (注意区分”” 和’’)
case $1in
‘aaa’ )
echo ‘bbb’
;;
‘bbb’ )
Echo ‘aaa’
;;
*)
Echo ‘error’
;;
exit
esac
unset AB 释放变量A、B
setA=100 设置变量A
在命令行中敲bash表示开1个子shell
env 显示当前环境变量
set 还包含函数,比env显示的多
位置变量
$1…..$9 1-9可直接用数字
${10}…${n} 10以上需加“{}”
$* 所有位置变量的值
$# 命令行参数的个数
$! 后台运行的进程号 (只显示最近的1个)
$$ 当前终端的进程号 = $1
$0 命令行本身 (非位置变量)
echo ‘$1= ‘”$1” (’’表示按原样输出)
read 分配变量值 (多了全给最后1个,不够就后面没有)
-p 指明提示符显示
echo ‘1 23 4’ | read �Cp “input:” $1 $2 $3
alias 别名
alias命令可查看所有别名
unalias ls取消别名ls
alias cp可查看cp是否是别名(如果是显示具体内容)
阻止扩展
\ (如:echofile\?,区分echo file?)
\\ (如:echofile\\)
‘’ (按原样输出)
“” (除了$ ` \ !)
环境变量文件:/etc/profile /etc/bashrc ~/.bash_profile ~/.bashrc
. 用当前用户的登录shell来执行脚本
Source 对配置文件重新初始化 (也可以用”.”)
~/.bash_logout (账号退出登录时执行)
c 字符设备 (键盘等)
b 块设备 (存储等)
ll/dev/tty3 (c 字符设备,4 主设备号,3 次设备号)
ll/dev/sda2 (b 块设备,8 主设备号,2次设备号)
块设备:
/dev/sda,/dev/sdb SCSI、SATA、USB、存储
/dev/md0,/dev/md1 软件RAID
字符设备:
/dev/tty[2-6] 虚拟控制台
/dev/null,/dev/zero 软设备
/dev/random,/dev/urandom 随机数