(一)基本命令
-
su 切换用户
- su 【-l】用户名
-
passwd 修改用户密码
- passwd 用户名
-
ls 文件列表
- -l 长格式 文件类型(-:普通文件、d:文件夹、b:块设备文件、c:字符设备文件、l:符号链接文件、p:命令管道文件、s:套接字文件)、文件权限、文件硬链接次数、文件属主、文件属组、文件大小、时间戳。
- -h 单位转换
- -a 显示隐藏文件
- -d 显示目录本身
- -i 显示文件inode号
- -r 倒叙排列
- -R 递归显示
-
cd 目录切换
- ~username 进入指定用户的家目录
- - 在当前目录和上次目录将切换
-
watch 周期性执行命令
-
-n:指定周期执行间隔时间
- watch -n 2 'cat /proc/mdstat' :每2s执行一次cat /proc/mdstat命令
-
-
type 命令类型
- 内置命令(shell内置)
- 外部命令:在文件系统某个路径下有一个与命令名称相应的可执行文件
-
which 查找命令
- 通过path环境变量查找命令所在地方
- 通过path环境变量查找命令所在地方
-
whatis 查询命令
- 查询命令功能
- 查询手册位置
-
man 手册
- 1:用户命令(/bin /use/bin /usr/local/bin)
- 2:系统调用
- 3:库用户
- 4:特殊文件
- 5:文件格式(配置文件的语法)
- 6:游戏
- 7:杂项
- 8:管理命令(/sbin /use/sbin /usr/local/sbin)
-
date 时间
- date -s "2017-07-28 17:42:00" 修改时间
-
clock
- -w系统时间到硬件时间
- -s硬件时间到系统
-
hwclock 硬件时间
- -w系统时间到硬件时间
- -s硬件时间到系统
-
cal 查看日历
- 查看日历
- cal 2017 查询2017年日历
- cal 2 2017查询2017年2月日历
-
echo 打印输出
- -e启用转移字符
- \n换行
- echo -e "123\n456" 启用换行符
-
printf 格式化打印输出
- printf "1\t2\t3\n"
-
file 文件类型
- 检查文件类型
-
文件系统
- /boot:系统启动文件,如内核、initrd、以及grub
- /dev:设备文件
- /etc:配置文件
- /home:用户家目录
- /root:管理员的家目录
- /lib:库文件
- /media:移动设备挂载点
- /mnt:其他文件系统挂载点
- /opt:第三方程序安装目录
- /proc:伪文件系统,为内存的映射文件
- /sys:伪文件系统,为硬件设备相关的属性映射文件
- /tmp:临时文件
- /var:可变化的文件
- /bin:用户命令
- /sbin:管理命令
- /usr:Unix System Resource,即Unix系统资源的缩写
- /usr/bin
- /usr/sbin
- /usr/lib
- /usr/local
- usr/local/bin
- usr/local/sbin
- usr/local/lib
-
mkdir 创建目录
- -p递归创建
- -v显示详情
- mkdir -p ./a/{b/c,d}
- mkdir -pv /home/gdh/{a,b}_{c,d}
-
tree 递归展示目录结构
-
rmdir 删除目录
-
touch 修改文件时间戳(可以创建文件)
- -c不创建目录
- -a修改访问时间
- -m修改修改时间
- -t指定改变的时间
-
stat 显示文件信息
-
rm 删除
- -r递归删除目录及其内容
- -f强制删除。忽略不存在的文件,不提示确认
- -i在删除前需要确认
-
cp 复制
- -r递归复制目录及其子目录内的所有内容
- -i交互式,询问是否覆盖...
- -P保持文件原有属性,是链接文件即保持链接本身
- -a归档复制
- 复制一个文件到另外一个文件 cp a b
- 复制多个文件到一个目录 cp a b c/
-
mv 移动文件
-
cat 查看文件
- -n显示行号
- -e在每行结束处显示"$"
-
tac 倒叙查看文件
-
more 满屏后退出
- 【b】向上翻页
- 【space】向下翻页
-
less 满屏后不退出
- 【b】向上翻页
- 【space】向下翻页
-
head 查看文件首部
- -n指定页码数
-
tail 查看文件尾部
- -f即时输出文件变化后追加的数据
- -n指定页码数
-
cut
- -d指定分隔符,默认为tab
- -f指定显示的字段
-
join
-
sed
- 常用选项
- -n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
- -e∶直接在指令列模式上进行 sed 的动作编辑;
- -f∶直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作;
- -r∶sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法)
- -i∶直接修改读取的档案内容,而不是由萤幕输出。
- 常用命令
- a ∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
- c ∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
- d ∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
- i ∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
- p ∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~
- s ∶取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
- d删除某行
- [root@localhost ruby] # sed '1d' ab #删除第一行
- [root@localhost ruby] # sed '$d' ab #删除最后一行
- [root@localhost ruby] # sed '1,2d' ab #删除第一行到第二行
- [root@localhost ruby] # sed '2,$d' ab #删除第二行到最后一行
- p显示某行
- [root@localhost ruby] # sed -n '1p' ab #显示第一行
- [root@localhost ruby] # sed -n '$p' ab #显示最后一行
- [root@localhost ruby] # sed -n '1,2p' ab #显示第一行到第二行
- [root@localhost ruby] # sed -n '2,$p' ab #显示第二行到最后一行
- [root@localhost ruby] # sed -n '1p' ab #显示第一行
- /pattern/使用模式进行查询
- [root@localhost ruby] # sed -n '/ruby/p' ab #查询包括关键字ruby所在所有行
- [root@localhost ruby] # sed -n '/\$/p' ab #查询包括关键字$所在所有行,使用反斜线\屏蔽特殊含义
- [root@localhost ruby] # sed -n '/ruby/p' ab | sed 's/ruby/bird/g' #替换ruby为bird
- [root@localhost ruby] # sed -n '/ruby/p' ab | sed 's/ruby//g' #删除ruby
- a后面新增一行
- [root@localhost ruby] # sed '1a drink tea' ab #第一行后增加字符串"drink tea"
- [root@localhost ruby] # sed '1,3a drink tea' ab #第一行到第三行后增加字符串"drink tea"
- [root@localhost ruby] # sed '1a drink tea\nor coffee' ab #第一行后增加多行,使用换行符\n
- [root@localhost ruby] # sed '/drink/a hello' ab #在有drink的行后面增加字符串hello
- c替换
- [root@localhost ruby] # sed '1c Hi' ab #第一行代替为Hi
- [root@localhost ruby] # sed '1,2c Hi' ab #第一行到第二行代替为Hi
- i前面新增一行
- [root@localhost ruby] # sed -i '$a bye' ab #在文件ab中最后一行直接输入"bye"
- [root@localhost ruby] # sed -i '$a bye' ab #在文件ab中最后一行直接输入"bye"
- [root@localhost ruby] # sed '/drink/i hello' ab #在有drink的行前面增加字符串hello
- r将指定文件内容添加至符合条件的位置
- [root@localhost ruby] # sed ‘2r /etc/fatab’ ab #将/etc/fstab文件添加至ab文件的第二行处
- [root@localhost ruby] # echo /etc/passwd | sed -r 's@^(/.*/)[^/]+/?@\1@g' #取出文件目录名称
- w将地址指定范围内的行另存至指定的文件中
- [root@localhost ruby] # sed ‘/oop/w /tmp/oop.txt’ ab #将ab文件中有oop的行另存至/tmp/oop.txt文件中
- s查找并替换 s/pattern/new/
- [root@localhost ruby] # sed ‘s/oop/OOP/’ ab #将ab文件中oop替换成OOP,默认只替换每一行出现的第一个
- [root@localhost ruby] # sed ‘s/^\//OOP/’ ab #将ab文件中行首的/替换成OOP
- [root@localhost ruby] # sed ‘s/oop/OOP/g’ ab #将ab文件中oop替换成OOP
- [root@localhost ruby] # sed ‘s/oop/OOP/i’ ab #将ab文件中oop替换成OOP,其中oop不区分大小写
- [root@localhost ruby] # sed 's/(l..e)/\1r/g' ab #将ab文件中以l**e替换成l**er
- [root@localhost ruby] # sed 's/^[[:space:]]// ab' #将ab文件中每一行的行首空格去掉:
- [root@localhost ruby] # sed 's/\(id:\)[0-9]\(\:initdefault)/\15\2/g' /etc/inittab #将/etc/inittab文件中id:*:initdefault替换成id:5:initdefault
- [root@localhost ruby] # sed 's/(l..e)/\1r/g' ab #将ab文件中以l**e替换成l**er
- [root@localhost ruby] # sed 's/^$/d' ab #删除ab文件中的空白行
- 常用选项
-
awk
-
-F:指定分隔符
- df -h | awk '{print $1,$3,$NF}'
-
-
grep
- -i:忽略大小写
- -v:匹配到的不显示
- --color:高亮显示
- 元字符表达式搜索
- .任意单个字符
- *匹配前面的字符任意次
- a.*b:匹配以a开始,以b结束
- ?:匹配0次或1次,使用时需要转义
- ():分组
- \1:应用第一个分组
- {m,n}:匹配至少m次,最多n次,使用时需要转义
- ^:定位行首
- $:定位行尾
- ^$:空白行
- \<:匹配词首
- \>:匹配词尾
- \b:匹配词首或词尾,根据位置
-
sort 排序
- -n按照数值大小排序
- -r逆序排序
- -t指定分隔符
- -k选择排序的字段
- -u去重复
- -f排序时忽略大小写
- sort -n -t: -k3 /etc/passwd
-
uniq 去相邻重复行
- -d只显示重复行
- -c显示重复次数
-
wc 统计
- -c输出字节数统计
- -m输出字符数统计
- -l输出行数统计
-
tr 转换或删除字符
- tr 'ab' 'AB'</etc/passwd
- -d删除出现的字符
-
pstree 查看进程树
-
ps 进程状态
- a:显示所有与终端有关的进程
- u:以用户的格式显示进程状态
- x:显示所有进程
- -e:显示所有进程
- -l:显示详细信息
- -f:显示UID,PPIP,C与STIME栏位
- 进程状态
- D:不可中断的睡眠
- R:运行或就绪
- S:可中断的睡眠
- T:停止
- Z:僵死
- <:高优先级
- N:低优先级
- +:前台进程组中的进程
- l:多线程进程
- s:回话进程首进程
-
pidof 根据程序名称查找id号
- pidof init
-
top 系统运行状况
- M:根据驻留内存大小进行排序
- P:根据CPU使用百分比进行排序
- T:根据累计时间进行排序
- l:是否显示平均负载和启动时间
- t:是否显示进程和CPU状态相关信息
- m:是否显示内存相关信息
- c:是否显示完整的命令行信息
- q:退出
- k:终止某个进程
-
kill 通过PID杀死进程
- kill -15 13783 结束13783进程
- kill %2 终止2号后台作业
-
killall 通过名称杀死进程
- killall vi 结束所有的vi进程
-
renice 调整进程nice值
- renice 3 3612 将PID为3612的进程的nice值调整为3
-
nice 用于以指定的进程调度优先级启动其他的程序
- -n 指定nice值
- nice -n 3 useradd gdh 以nice值为3运行useradd gdh命令
-
chkconfig 查看或设置服务状态
1 chkconfig --list #列出所有的系统服务。 2 chkconfig --add httpd #增加httpd服务。 3 chkconfig --del httpd #删除httpd服务。 4 chkconfig --level httpd 2345 on #设置httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态。 5 chkconfig --list #列出系统所有的服务启动情况。 6 chkconfig --list mysqld #列出mysqld服务设置情况。 7 chkconfig --level 35 mysqld on #设定mysqld在等级3和5为开机运行服务,--level 35表示操作只在等级3和5执行,on表示启动,off表示关闭。 8 chkconfig mysqld on #设定mysqld在各等级为on,“各等级”包括2、3、4、5等级。
-
bg:让后台程序继续运行
-
fg:将后台程序调回前台
-
jobs:查看后台程序列表
-
终端快捷方式
- Ctrl+a:跳转命令行首
- Ctrl+e:跳转命令行尾
- Ctrl+u:删除光标至行首内容
- Ctrl+k:删除光标至行尾内容
- Ctrl+l:清屏
-
history 命令的历史记录
- -c清除历史记录
- -d删除指定位置的命令
- -w保存命令历史到历史文件--在用户家目录下的.bash_history文件中
- !name执行最近一次相近的命令
- !!执行上一条命令
- !$ 应用上一次命令参数
- 【Esc+.】应用上一次命令参数
-
printenv 查询环境变量
-
alias 别名
-
unalias 删除别名
-
umask 遮罩码
- 文件为666-umask 且文件不能有执行权限,有则将权限+1
- 目录为777-umask
-
set 设置已存在的shell变量,“+”和“-”用来打开或关闭指定模式
-
输入输出
- >输出重定向
- 2>错误输出重定向
- $>正确和错误重定向
- | 管道:前一个命令的输出作为后一个命令的输入
-
tee 内容输出到屏幕和文件
-
配置
- 全局配置文件
- /etc/profile
- /etc/profile.d/*.sh
- 个人配置文件
- ~/.basn_profile
- ~/.bashrc
- 全局配置文件
-
tar 归档压缩解压
- -c:创建归档文件
- -C:指定展开目录
- -x:展开归档文件
- -f:操作的归档文件
- -t:不展开浏览文件
- -z:调用gzip命令
- -j:调用bzip2命令
- --xattrs:归档时保留扩展属性
- tar -cf test.tar test*.txt 将tets*.txt文件归档成test.tar文件
- tar -zcf test.tar.zp test*.txt:将tets*.txt文件归档并用gzip进行压缩成test.tar文件
- tar -xf test.tar 展开test.tar(如果归档文件采用了压缩算法,tar会自动根据相应的解压缩算法进行解压)
- tar -zxf test.tar.zp 解压缩test.tar.zp并展开
- tar -tf test.tar 不展开浏览tar文件(如果归档文件采用了压缩算法,tar会自动根据相应的解压缩算法进行解压浏览)
- tar -ztf test.tar.zp 不展开浏览tar.zp文件
-
gzip 压缩 gunzip 解压 zcat 不解压浏览内容
- 压缩:gzip aaa 将aaa文件压缩成aaa.gz
- 解压:gzip -d aaa.gz 将aaa.gz文件解压
- 指定压缩比:gzip -6 aaa 压缩比为6进行压缩aaa文件
-
bzip2 压缩 bunzip2 解压 bzcat不解压浏览内容
- 压缩:bzip2 aaa 压缩aaa
- 解压:bzip2 -d aaa.bz2 将aaa.bz2文件解压
- -k 保留源文件
-
xz
- 压缩:xz aaa
- 解压:xz -d aaa.xz
-
zip
- zip 目标 源1 源2 源3 ...
-
VIM 编辑器
- 进入编辑模式:按【i,o,a,I,A,O】。
- i在光标之前插入数据
- a在光标之后插入数据
- o在光标下行插入数据
- I在光标行首插入数据
- A在光标尾首插入数据
- O在光标上行插入数据
- 退出编辑模式:按ESC退出。
- 查找字符:退出编辑模式,按?aaa查找aaa字符串,按【n】和【N】进行上下页翻页。
- 删除:【dd】删除光标所在行,【ndd】删除光标以下n行数据。
- 复制:【yy】复制光标所在行,【nyy】复制光标以下n行数据。
- 粘贴:【p】将复制的数据粘贴到光标下一行。
- 撤销:【u】撤销上一次操作。
- :!command 执行shell命令
- Ctrl+r :撤销撤销操作
- Home和End键将光标移动至最前和最后位置。
- Set nu设置行号
- set nonu取消行号
- 【PgUp】和【PgDn】进行翻页
- vim +12 ab 打开ab文件并定位到12行
- vim + ab 打开ab文件并定位到最后
- vim +/init ab 打开ab文件并查找init关键字
- gg 定位行首
- G 定位最后一行
- 替换
- s/a/b/ 将当前行的第一次出现的a替换成b
- s/a/b/g 将当前行出现的a替换成b
- 1,10 s/a/b/g 将1到10行所有的a替换成b\
- 1,$ s/a/b/g 将全文的a换成b
- 删除
- 1d 删除第一行
- 1,10d 删除1到10行
- 1,$d 删除全文数据
- 分屏显示
- Ctrl+w,s:水平拆分窗口
- Ctrl+w,v:垂直拆分窗口
- Ctrl+w,↑↓←→:切换光标位置
- qa:关闭所有窗口
- 分窗口编辑多个文件
- vim -o:水平拆分
- vim -O:垂直拆分
- 进入编辑模式:按【i,o,a,I,A,O】。
-
ln 软链接
- -s 创建软链接
- 范例:ln -s aaa aaa.soft 给aaa创建一个名叫aaa.soft的软链接
- ln aaa aaa.hard 给aaa创建一个名叫aaa.hard的硬链接
-
who 查询在线用户信息
- -r:查看运行级别
-
uname -r 查看内核信息
-
runlevel 查看运行级别
-
sleep 睡眠
-
last 查询用户登录历史信息
-
lastb 查询用户登录错误历史信息
-
lastlog 显示每一个用户最近一次的成功登录信息
-
basename 获取文件名
-
W 查看系统用户登录信息
-
find 文件查找
- [root@localhost ruby] # find /etc -name 'abc' 查找/etc目录下文件名为abc的文件
- [root@localhost ruby] # find /etc -iname 'abc' 查找/etc目录下文件名为abc的文件,不区分大小写
- [root@localhost ruby] # find /etc -user 'root' 查找/etc目录下属主为root的文件
- [root@localhost ruby] # find /etc -group 'root' 查找/etc目录下属组为root的文件
- [root@localhost ruby] # find /etc -uid 0 查找/etc目录下uid为0的文件
- [root@localhost ruby] # find /etc -gid 0 查找/etc目录下gid为0的文件
- [root@localhost ruby] # find /etc -nouser 查找/etc目录下没有属主的文件
- [root@localhost ruby] # find /etc -nogroup 查找/etc目录下没有属组的文件
- [root@localhost ruby] # find /etc -type [f,d,c,b,l,p,s] 查找/etc目录下具体类型的文件
- [root@localhost ruby] # find /etc -size +10k 查找/etc目录下大于10k的文件
- [root@localhost ruby] # find /etc -size -10k 查找/etc目录下小于10k的文件
- [root@localhost ruby] # find /etc -nouser -a -type d 查找/etc目录下没有属主并且为目录
- [root@localhost ruby] # find /etc -nouser -o -type d 查找/etc目录下没有属主或者为目录
- [root@localhost ruby] # find /etc -not -type d 查找/etc目录非目录的文件
- [root@localhost ruby] # find /etc -atime -5 查找/etc目录下在5天内访问过的文件
- [root@localhost ruby] # find /etc -atime +5 查找/etc目录下在5天前访问过的文件
- [root@localhost ruby] # find /etc -ctime -5 查找/etc目录下在5天前变更过的文件
- [root@localhost ruby] # find /etc -ctime +5 查找/etc目录下在5天前变更过的文件
- [root@localhost ruby] # find /etc -mtime +5 查找/etc目录下在5天前修改过的文件
- [root@localhost ruby] # find /etc -amin +5 查找/etc目录下在5分钟前访问过的文件
- [root@localhost ruby] # find /etc -cmin +5 查找/etc目录下在5分钟前变更过的文件
- [root@localhost ruby] # find /etc -mmin +5 查找/etc目录下在5分钟前修改过的文件
- [root@localhost ruby] # find /etc -perm 644 精确查找/etc目录下权限为644的文件
- [root@localhost ruby] # find /etc -perm /644 查找/etc目录下权限有一个位匹配644的文件
- [root@localhost ruby] # find /etc -perm -644 查找/etc目录下权限包含644的文件
- [root@localhost ruby] # find /etc -perm /007 -exec chmod o-w {} \; 查找/etc目录下其他用户满权限的文件去掉写权限
- [root@localhost ruby] # find /etc -perm /007 -ok chmod o-w {} \; 查找/etc目录下其他用户满权限的文件去掉写权限,每次操作需要确认
- [root@localhost ruby] # find /etc -name "*.sh" -a -perm /007 -ok chmod o-w {} \; 查找/etc目录下以.sh结尾并且其他用户满权限的文件去掉写权限,每次操作需要确认
- [root@localhost ruby] # find /etc -size +1M | xargs echo {} >> /tmp/a.txt 查找/etc目录下大于1M的文件并将结果保存至/tmp/a.txt
- [root@localhost ruby] # find /etc -perm /007 -ls 查找/etc目录下其他用户满权限的文件的详细信息
-
locate 在文件资料库中进行文件查找
-
updatedb 更新资料库
-
whereis:查找与之相关的文件
-
cut:按列筛选数据
- -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
- -c :以字符为单位进行分割。
- -d :自定义分隔符,默认为制表符。
- -f :与-d一起使用,指定显示哪个区域。
- -n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。
- 范例:
(二)包管理
- rpm
- 安装
- -i:安装套件
- -h:显示经度
- -v:显示详情
- -vv:显示详情
- --test:测试安装,用来检测依赖是否正确,并不会真正的安装
- --replacepkgs:替换原有安装
- --force:强制安装,可以实现重装或降级
- 示例:rpm -ivh xxx.rpm:安装xxx.rpm包
- 卸载
- -e:卸载套件
- --nodeps:忽略依赖进行卸载
- rpm -e file.rpm --nodeps [删除一个rpm包]忽略依赖关系
- 查询
- -c:查询rpm包配置文件
- -d:查询rpm包帮助文件
- -q:查询指定包名是否安装
- -qa:查询已安装包
- -i:显示套件的相关信息
- -l:显示套件的文件列表
- -f:查询指定文件是由哪个包安装包生成的
- rpm -q samba 查询程序是否安装
- rpm -qa | grep httpd [搜索指定rpm包是否安装]--all搜索*httpd*
- rpm -ql httpd [搜索rpm包]--list所有文件安装目录
- rpm -qf a.txt 查询a.txt是由哪个rpm包产生的
- rpm -qc file.rpm 查询fie.rpm的配置文件列表
- rpm -qd file.rpm 查询file.rpm的帮助文件列表
- rpm -qpi xxx.rpm 查询未安装的xxx.rpm的相关信息
- rpm -qpl xxx.rpm 查询未安装的xxx.rpm的安装后的文件列表
- 升级
- -U 安装或升级
- -F 退出或升级
- rpm -Uvh xxx.rpm 安装或升级
- rpm -Fvh xxx.rpm 退出或升级
- 校验
- -V:校验包,查看变更过的文件
- 建立数据库
- --rebuilddb:根据已安装的rpm包的首部信息重新建立数据库
- --initdb:初始化数据库,有就不初始化
- 安装
- YUM
- /etc/yum.conf配置文件
- /etc/yum.repos.d yum源配置目录,文件以xx.repo结束
1 [REPO_NAME] #repo的名称 2 name=REPO_DESCRIPTION #repo的详细名称 3 baseurl=http:// ftp:// file:/// #仓库的位置 4 enabled=[1|0] #启用或禁用 5 gpgcheck=[1|0] #是否启用或禁用gpg检查gpgkey 6 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 #当gpgcheck为1时指定检查的key
-
- list:列表
- all:显示全部
- available:可用的(未安装的)
- installed:已安装的
- updates:可用升级的
- clean:清理缓存
- repolist:显示repo列表
- install:安装
- -y:自动回答yes
- --nogpgcheck:不进行gpg校验
- update:升级
- update_to:升级到指定版本
- remove:卸载
- info:查看软件包详情
- provides:查看文件是由哪个软件包安装生成的
- groupinstall:安装
- groupinfo:查看软件组详情
- groupupdate:更新
- groupremove:卸载
- list:列表
-
ldd 查看程序所依赖的库列表
- ldd /bin/bash
-
chroot 根切换
- chroot /a/b/
(三)网络命令
-
write <用户名>:给在线用户发信
-
wall:给所有指定的用户发信息
-
mail <用户名>:给指定用户发邮件
-
last:查看用户登录信息
-
lastlog:查看用户登录信息
-
traceroute www.baidu.com:查看网络路由节点
-
netstat
- -t:tcp协议
- -u:udp协议
- -l:监听
- -r:路由
- -n:以数字方式显示
- -p:显示进程号
- 范例: netstat -tuln 查看本机监听端口
- netstat -an 查看本机所有网络连接
- netstat -rn 查看本机路由表
-
setup:系统参数的快捷配置
(四)权限管理
-
用户管理
- useradd
- -u uid
- -g 基本组
- -G 附加组
- -M 不创建家目录
- -r 添加一个系统用户,系统用户uid小于500,并且没有家目录,不能登录系统
- -c 描述
- -s 指定shell
- -d 指定用户默认家目录
- id 查看用户的信息
- userdel
- -r 一并删除其他相关目录
- usermod 修改用户账号属性
- -u uid
- -g 基本组
- -G 附加组
- -l 修改用户名
- -L 锁定用户
- -U 解锁用户
- passwd
- -l 锁定用户账号
- -u 解锁用户
- -e 让密码失效,使用户下次登陆后需要修改密码
- passwd -e gdh 让最后一次修改密码天数为0
- chsh 修改用户的shell
- chfn 修改用户的注释信息
- finger 检索用户账号信息
- pwck 检查用户账号完整性
- chage 修改用户密码的信息
- -d 修改最后一次密码修改天数
- chage -d0 gdh 让最后一次修改密码天数为0
- useradd
-
组管理
- groupadd
- -g gid
- -r 创建系统组
- groupdel 删除一个用户组
- groupmod
- -g 修改gid
- -n 修改用户名
- gpasswd 给组加密码,
- newgrp 登录到另外一个组,
- groupadd
-
权限管理
- chown 修改文件属主和属组
- R 递归修改 chown -R mysql:mysql aaa/ 将aaa目录及子目录的所属着和所属组修改成mysql和mysql
- chgrp 修改文件属组
- -R 递归 chgrp mysql a.txt 将a.txt文件的属组改为mysql组
- chmod 修改文件权限
- Chmod u+r aaa/ 增加r权限
- Chmod u=r aaa/ 修改为r权限
- Chmod u=r,g=r aaa/ 修改u和g为r权限
- Chmod ug=r aaa/ 修改u和g为r权限
- Chmod g-r aaa/
- Chmod o+w aaa/
- Chmod a+rwx aaa/
- Chmod 777 aaa/
- Chmod -R 777 aaa/ 递归修改目录中的权限
- chown 修改文件属主和属组
-
特殊权限
- SUID:运行某程序时,该程序运行时以该程序自身的属主身份运行
- chmod u+s /bin/cat
- chmod u-s /bin/cat
- SGID:运行某程序时,该程序运行时以该程序自身的属组身份运行
- chmod g+s /bin/cat
- chmod g-s /bin/cat
- Sticky:在一个公共目录,每个用户都可以创建文件,删除自己的文件,但是不能删除别人的文件
- chmod o+t DIR
- chmod o-t DIR
- 四位权限表示SUID SGID Sticky
- chmod 1755 /a/b 其中第一位表示拥有SUID
- chmod 7755 /a/b 其中第一位表示拥有SUID、SGID、Sticky位
- SUID:运行某程序时,该程序运行时以该程序自身的属主身份运行
-
FACL 访问控制权限
- setfacl
- -m:设定
- u:指定用户权限
- g:指定组权限
- [root@localhost ruby] # setfacl -m u:gdh:rwx /a/b :给gdh用户在/a/b文件上设定rwx权限
- [root@localhost ruby] # setfacl -m g:gdh:rwx /a/b :给gdh用户组在/a/b文件上设定rwx权限
- -x 取消
- u:UID
- g:GID
- [root@localhost ruby] # setfacl -x g:gdh /a/b :取消gdh用户组在/a/b文件上设定的权限
- [root@localhost ruby] # setfacl -m u:gdh /a/b :取消gdh用户在/a/b文件上设定权限
- -m:设定
- setfacl
- [root@localhost ruby] # getfacl inittab 获取inittab文件的facl信息
- 文件权限详解
| 文件 | 文件夹 |
r | 可以查看文件内容 | 可以列出文件中的内容 |
w | 可以修改文件内容 | 可以创建、删除文件 |
x | 可以自行文件 | 可以进入目录 |
(五)系统参数
-
uname -r 查看内核版本
-
sysctl 查看或修改内核的运行参数
- -n:打印值时不打印关键字;
- -e:忽略未知关键字错误;
- -N:仅打印名称;
- -w:当改变sysctl设置时使用此项;
- -p:从配置文件“/etc/sysctl.conf”加载内核参数设置;
- -a:打印当前所有可用的内核参数变量和值;
- -A:以表格方式打印当前所有可用的内核参数变量和值。
-
lsmod 查看系统装载的模块
-
modinfo 查看模块信息
-
modprobe 装载或移除模块
- -a或--all:载入全部的模块;
- -c或--show-conf:显示所有模块的设置信息;
- -d或--debug:使用排错模式;
- -l或--list:显示可用的模块;
- -r或--remove:模块闲置不用时,即自动卸载模块;
- -t或--type:指定模块类型;
- -v或--verbose:执行时显示详细的信息;
- -V或--version:显示版本信息;
- -help:显示帮助。
- 示例:
- modprobe floppy 装载floppy模块
- modprobe -r floppy 卸载floppy模块
-
insmod 装载模块
-
rmmod 移除模块