ubantu命令大全
****************************************2015年10月21日**************************************************
0、sudo apt-get install samba 下载samba
1、长久显示隐藏文件:sudo nautilus
2、暂时显示隐藏文件:快捷键 ctrl+h
3、文字界面登陆tty2~tty6:ctrl+alt+【f2~f6】
4、进入图形界面桌面:ctrl+alt+f7
5、切换输入法:上档键
6、显示日期:date +%y/%m/%d/%H/%M
7、显示日历:cal [[month ]year]
8、计算器:bc进入 scale=3代表答案小数几位 quit离开
9、~ 表示自己的主文件夹
10、sudu fdisk -l 查看硬盘情况
11、df 查看文件系统挂载情况
12、mount 查看文件系统属性情况
mount -a 挂载/etc/fstab里面配置的文件
13、partprobe 将内核的partition table更新
****************************************2015年10月22日**************************************************
1、[tab][tab] 接在一串命令的第一个命令之后表示 命令补全 cal[tab][tab]
2、[tab][tab] 接在一串命令的第二个命令之后表示 文件补齐 ls -al ~/.bash[tab][tab] (列出自己主文件夹下
一.bash开头的文件)
3、ctrl+c 中断目前程序。(比如 find /)
4、ctrl+d 代表键盘输入的结束标志;也可以代替exit。
5、man+[代号]+命令 查询该命令的用法。
代号 代表内容
1 用户在shell环境中可以操作的命令或可执行文件
3 一些常用函数与函数库,大部分都是C的函数库
5 配置文件或者是某些文件的格式
6、在man的功能下,输入 /+内容 表示搜索该内容。
7、whatis [命令或数据]=man -f [命令或数据]
8、apropos [命令或数据]=man -k [命令或数据]
9、info与man类似,但是可以进入node
10、nano+[存在或未存在的文件] 都是在自己的文件夹下( home)。
11、shutdown reboot halt poweroff 只有root权限的问题才能使用
12、init+level等级
runlrvel 0:关机
runlrvel 3:纯命令行模式
runlrvel 5:含有图形界面模式
runlrvel 6:重启
13、sudo su 切换到root用户
14、nano /etc/issue 欢迎界面修改。
15、chgrp+组名+文件 更改某一文件的组。
16、chown+[所有者:][组]+文件 更改组和所有者。
17、cp+源文件+目标文件 拷贝。
18、修改文件权限
chmod xyz 文件 x,y,z表示三个权限修改的值(值为 r:4 w:2 x:1的和)
chmod u=rwx,g=rw,o=r 文件
chmod a=rwx 文件 全部权限
chmod a-x 文件 全部权限减去可执行
chmod a+x 文件 全部权限加上可执行
19、chgrp、chmod、chown -R 持续更改,连同子目录下的所有文件
19、cd /tmp 切换到tmp目录下
20、touch testing/one 在testing目录下创建one文件
21、su - rockylee 切换到了rockylee用户下
22、rm 文件 删除文件。(拥有上级目录的w属性才行)
23、rmdir 目录 删除目录
24、ls -l 文件或目录 列出文件或目录下的东西。包括隐藏文件。
****************************************2015年10月23日**************************************************
1、. 代表当前目录,也可用./来表示
2、.. 代表上一层目录,也可用../表示
3、uname -r 可以查看实际内核版本
4、lsb_release -a 查看lsb的版本
5、- 代表前一个工作目录
6、pwd 显示当前所在绝对位置
7、mkdir -p test/test1/test2 自行创建多层目录
8、mkdir 当目录不存在时创建
mkdir -p test/test1/test2 一直从test开始创建,存在的话则跳过
9、rmdir 目录为空时才能删除
rmdir -p test/test1/test2 从最小子目录一直向父级删到目录不为空
11、ehco $PATH 显示PATH变量值
12、mv /bin/ls /root 移动
13、PATH = "$PATH":/root 添加/root到PATH
14、ls
-d 只列出目录本身
-a 列出全部,包括隐藏文件
-l 列出非隐藏类的全部文件详细信息
-al 列出所有文件的详细信息
ls -l [--time=mtime] 文件 默认时间修改的时间
ls -l --time=atime 文件 取用时间(内容被读取时,cat命令)
ls -l --time=ctime 文件 状态时间(权限、属性等改变)
ls -i 文件或目录 显示inode号码
15、cp
cp ~/test.txt /tmp/test 复制test.txt并更改名字为test
cp -i ~/test.txt /tmp/test 覆盖前确认操作
cp -r /etc /tmp -r表示复制目录,但是与前面一样权限会有所改变
cp -a /var/log/wtmp wtmp2 包括权限与时间等的完全复制
cp -s bashrc bashrc_slink 新建快捷方式,不会更改bashrc的link数
cp -l bashrc bashrc_llink 新建硬连接,源文件的link数增加1
cp -u ~/.bashrc /tmp/bashrc 源文件与目标文件有差异时才会被复制,常用语备份当中
-d 复制链接文件的快捷方式属性,不加-d表示复制链接文件所指向的文件
cp [源文件 ](1...n) 目标文件 将多个数据复制到同一个目录去
****************************************2015年10月25日**************************************************
1、rm
rm -i 文件 互动模式,询问是否要删除文件
rm -r test 将该目录下的所有东西都删除包括自己
2、mv 目录1 目录2 如果都在同一父目录下,目录2不存在,只是将目录1重命名目录2。
3、mv 文件[ 文件] 目录 移动
4、basename /sss/ss/s 结果为s
5、dirname /sss/ss/s 结果为/sss/ss
6、cat
cat /etc/issue
cat -n /etc/issue 内容加上行号
cat -A 文件 包括特殊字符
7、tac 文件 反着显示
8、nl -b a -n rz -w 3 /etc/issue
(添加行号) (空行也列出行号) (行号自己字段右边,其余加0) (行号站位为3) (文件)
9、more、less
10、head
head test 默认显示前10行
head -n 20 test 显示前20行
head -n -100 test 只是不打印后面100行
11、tail
tail test 默认显示最后10行
tail -n 20 test 显示最后20行
tail -n +100 test 100行以后,的内容
tail -f test 持续检测,输入会立即被显示。(乌班图貌似不行)
12、tail -n 20 test | tail -n 10 取10到20行内容。
13、od
od -t a 文件 默认字符输出
od -t c 文件 使用ASCII输出
od -t d 文件 10进制decimal
od -t f 文件 浮点数floating
od -t o 文件 8进制octal
od -t x 文件 16进制hexadeciaml
15、touch
touch -d "2 days ago" 文件 atime、mtime变为当前时间前2天,ctime变为当前时间
touch -t 0712190202 文件 atime、mtime变为当前时间前2天,ctime变为当前时间
****************************************2015年10月26日**************************************************
1、umask 新建文件的默认权限(文件忽略X,目录有X)
umask 结果为0022的话,表示创建者属性减去0、组减去2、其他减去2
umask -S 结果为u=rwx,g=rx,o=rx(文件最终无法被执行,所以忽略X)
umask 002 修改默认权限值
2、chattr 设置隐藏属性
chattr [+-=][ASacdistu] 文件或目录名称
+:增加 a:只能增加内容,不能修改和删除数据
-:减去 i:不能删除,改名,设置连接也无法写入或添加数据
=:仅有后面的参数属性
3、lsattr [-adR] 文件或目录 显示文件隐藏属性
-a:隐藏文件也要秀出来
-d:如果是目录,仅仅秀目录
-R:连同子目录的数据一并秀出来
4、文件特殊权限
SUID(4) 仅对二进制程序有效;执行者对该程序须有x可执行权限;
执行过程中有效;执行者将有所有者的权限
SGID(2) 二进制程序;执行者须有x权限;
执行者在执行的过程中将会获得用户组的支持
SBIT(1) 目录;当用户对此目录具有wx权限是,用户在该目录下创建的文件或目录
仅有自己和root才能删除
chmod 7666 test 结果为-rwSrwSrwT(大写表示没有x权限),其余的修改方式请参照前面chmod用法
5、file 文件 查看某个文件的基本数据
6、which [-a] 命令 寻找[所有结果]“执行文件”
7、whereis [-bmsu] 文件或目录 在数据库里面查找。(-b:只查找二进制文件 -m:说明文件manual下 -s:source源文件 -u:其他)
8、locate [-ir] keyword 在数据库里面查找。(-i:忽略大小写 -r:后面可接正则表达式)
9、find
find 目录 -mtime n 在n天之前,“一天内”被更改过的文件
find 目录 -mtime +n 在n天之前,被更改(不含第n天)
find 目录 -mtime -n n天之内,被更改(不含第n天)
find 目录 -newer file 比file还新的文件
find / -user rockylee 找到所有属于rockylee的文件
find / -nouser
find / -nogroup
find / -group root
find / -name passwd 文件名为passwd的文件
find / -type s 文件类型是socket
find / -perm +7000 含有---s--s--t权限的问价
find / -perm 7000
find / -perm -7000
find -name rockylee -exec 命令; 将找到的结过做处理(例如:ls -l {} \ 详细列出来 -print 默认处理)
find / -size +1000k 找出大于1M的文件
find / -name '*test*' 找出文件名包含test
****************************************2015年10月27日**************************************************
2、adb
adb kill-server 停止服务
adb start-server 启动服务
adb devices 查看设备状态
3、/etc/init.d/udev restart 重启udev
4、dumpe2fs
dumpe2fs -b /dev/sda1 列出保留为坏道的部分
dumpe2fs -h /dev/sda1 只是列出superblock的数据
dumpe2fs /dev/sda1 superblock和所有的blockgroup
5、ls -l /lib/modules/$(uname -r)/kernel
/fs linux支持的文件系统
6、cat /proc/filesystems 系统目前加载到内存中支持的文件系统
****************************************2015年10月28日**************************************************
1、df
df [文件] 默认显示系统内(文件)部分文件系统
df -h [文件] 以易读的方式显示出来(GB、MB等)
df -a [文件] 所有文件系统包括内存中/proc等
df -T [文件] 文件系统type
df -i [文件] innode数量和总量
****************************************2015年10月29日**************************************************
1、du [-a:文件和目录 -h:以G/M显示占有的容量 -s:只是列出子目录目录 -S:不包括子目录下得总计 -k:KB -m:MB]
du 显示当前目录下所有的目录容量
du -a 将文件的容量也显示出来
du -sm /* 检查根目录下得每个目录所占的容量
2、ln
ln 源文件 目标文件 硬连接
ln -s 源文件 目标文件 快捷方式
****************************************2015年10月30日**************************************************
1、parted(一般磁盘大小大于2TB使用,否则用fdisk即可)
parted /dev/sdb print 列出分区资料表
parted /dev/hdc mkpart
logical ext3 19.2GB 19.7GB 从19.2G~19.7G建立一个逻辑分区
parted /dev/hdc rm 8 删除8号分区
2、adb
adb devices 列出连上的设备
adb shell getprop 获得设备属性信息
adb shell ps 查看设备进程信息
****************************************2015年11月2日**************************************************
0、*.zip zip是压缩程序,unzip是解压程序
zip [参数] [打包后的文件名] [打包的目录路径]
-a 将文件转成ASCII模式
-F 尝试修复损坏的压缩文件
-h 显示帮助界面
-m 将文件压缩之后,删除源文件
-n 特定字符串 不压缩具有特定字尾字符串的文件
-o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间
-q 安静模式,在压缩的时候不显示指令的执行过程
-r 将指定的目录下的所有子目录以及文件一起处理
-S 包含系统文件和隐含文件(S是大写)
-t 日期 把压缩文件的最后修改日期设为指定的日期,日期格式为mmddyyyy
1、*.Z compress程序压缩的文件(uncompress、gzip解压,zcat查看)
2、*.gz gzip程序压缩的文件(gzip解压,zcat查看)
gzip [-cdtv#] 文件名
-c: 将压缩的数据输到屏幕上,可以通过数据重定向解决
-d: 解压缩
-t: 检验一个压缩文件的一致性,查看文件是否有误
-v: 显示压缩比
-#: 压缩等级(-1最快最差,-9最慢最好,一般默认-6)
gzip [-9] -c man.config > man.config.gz
保留源文件
3、*.bz2 bzip2程序压缩的文件(bzip2 -d、bunzip2解压,bzcat查看)
bzip2 [-cdkzv#] 文件名
-c: 将压缩的数据输到屏幕上,可以通过数据重定向解决
-d: 解压缩
-z: 压缩
-t: 检验一个压缩文件的一致性,查看文件是否有误
-v: 显示压缩比
-#: 压缩等级(-1最快最差,-9最慢最好,一般默认-6)
bzip2 [-9] -c 源文件 > 目标 最佳压缩比压缩,并保留源文件
4、*.tar tar程序打包的数据,并没有压缩过
*.tar.gz 先打包命令在压缩命令 或者 一个命令
*.tar.bz2 先打包命令在压缩命令 或者 一个命令
压缩:tar -jcv -f file.tar.bz2 要被压缩的文件或目录
tar -zcv -f file.tar.gz 要被压缩的文件或目录
查看:tar -jtv -f file.tar.bz2
tar -ztv -f file.tar.gz
解压: tar -jxv -f file.tar.bz2 -C 欲解压的目录
tar -zxv -f file.tar.gz -C 欲解压的目录
解压都会保留源文件
j:bz2 z:gzip v:处理过程显示 c:新建压缩文件 t:重点查看文件名 x:解压或解压缩,与-C表示在特定目录解开
-P:保留备份数据原来的属性与权限(一般不用,主要是怕解压时覆盖其他文件,貌似ubantu14.04失效) -p:允许备份数据中含有根目录存
在之意
tar -jtv -f test.tar.bz2 | grep '1' 查看压缩包并筛选'1'的查询结果
tar -jtv -f test.tar.bz2 | grep -v '2$' 查看压缩包并筛选‘尾部非2’的查询结果
tar -jxv -f test.tar.bz2 test/w/1 解压1,不破坏压缩文件
tar -jcvp -f test.tar.bz2 --exclude=test/3/4 --exlude=test1/2 test test1
不打包test/3/4,test1/2,有时候需要除去test.tar.bz2包自身
tar -jcvp -f test.tar.bz2 --newer-mtime="2015/11/01" test
内容变更时间在20151101之后,--newer表示atime、mtime都在之后
tar -cv -f - /etc | tar -xv -f -
把/etc复制到当前目录(一边打包一边解包)
****************************************2015年11月3日**************************************************
1、dump [-Suvj] [-level] [-f 备份文件] 待备份数据
-S:显示备份需要多大容量,单位是b
-u:dump时间写入/etc/dumpdates文件(ubantu14.04无)
-v:dump文件的过程显示出来
-j:最后bzip2一下,默认压缩等级为2
-level:0~9(不是文件系统的话,只能使用0)
-W:列出在/etc/fstab里面具有dump设置的分区是否备份过
dump -S 待备份数据
dump -u -0 -f /tmp/boot.dump / 以0等级备份,问价并写入时间
dump -W
2、restore
rsetore -t [-f dumpfile] [-h] 查看dump文件
rsetore -C [-f dumpfile] [-D 挂载点]
与实际比价差异
rsetore -i [-f dumpfile] 进入restore互动模式
restore -r [-f dumpfile] 还原整个文件系统,请你一定要还原的位置
还原部分文件的restore互动模式
restore -i -f dumpfile
help->ls->cd 位置->add 文件或文件夹->加错了可以delete相应文件或文件夹->extract 还原->quit
3、dd if=/dev/zero of=/tmp/test.img bs=1M count=10
创建10M大小的test.img文件
****************************************2015年11月6日**************************************************
1、mkisofs
mkisofs [-r] [-v] [-o 镜像文件] [-m file] 待备份文件 [-V vol] -graft-point isodir1=systemdir1 isodir2=systemdir2 ...
-r:通过RockRifge产生支持UNIX/Linux文件数据,可记录较多信息
-v:显示构建iso过程
-o:镜像文件名
-m file:排除文件
-V vol:新建Volume
-graft-point:利用等式,让系统文件能够分类地构建在iso文件内部。一般也可以不加,并不能使用等式。
2、mount -o loop test.img /mnt
3、umount /mnt
4、dd 能进行普通文件的备份,也能进行扇区的读写
dd if="input file" of="output file" [bs="block size" count="number"]
dd if=/dev/hdc of=/tmp/test.back bs=512 count=1
将hdc磁盘第一个大小为512byte的扇区拷出(也就是MBR和分区表)
dd if=/dev/hdc1 of=/dev/hdc9
讲hdc1完整复制给hdc9,hdc9必须大于hdc1哈
5、cpio 可以备份任何东西,包括设备设备文件
find / | cpio -ovcB > /tmp/boot.cpio
备份
cpio -ivcdu < /tmp/boot.cpio 还原
cpio -ivct < /tmp/boot.cpio 查看
-o:输出到设备或文件
-B:默认512的block可以增加到5120
-i:输入到系统
-d:自动新建目录
-u:自动新的文件覆盖久的文件(可不要)
-t:查看新建的文件或设备的内容
-v:显示过程
-c:新的portable format方式储存
6、file 文件 显示文件的格式
****************************************2015年11月9日**************************************************
1、LANG=zh_CN.big5 设置linux语系
2、文件格式转换
dos2UNIX [-kn] file [newfile]
UNIX2dos [-kn] file [newfile]
3、语系编码转换
iconv --list 列出iconv支持的语系
iconv -f 原本编码 -t 新编码 filename [-o newfile]
****************************************2015年11月10日**************************************************
1、type [-tpa] name
不加参数 判断命令是否为内置
-t 结果file是外部命令,alias:别名,bulitin:内置。
-p 外部命令的话显示完整路径
-a 将含有name命令都列出来
2、shell变量
= 例如:myname=VBird
"" 双引号里的特殊数字符有效,比如:$。
'' 单引号内的一切字符都是纯文本
\ 转义字符,可将空格等转义
export [name] 使变量成为环境变量,便可以在其他进程中执行(不加环境变量默认显示所有环境变量)
unset name 取消变量
3、反单引号`` 先执行。比如:ls -al `find -name .bashrc /`
4、? 上个命令所传回的值
5、locale -a 显示支持的语系
6、read -P "Please inter your name" -t 30 name_var
30秒内输入值到name_var变量,提示信息是"Please ..."
7、declare/typeset 声明变量
declare [-aixr] varible
-a 数组
-i int
-x 环境变量
-r 只读,一般只能通过注销再登陆取消
-p 列出变量类型
declare [+aix] varible 取消对应属性
8、ulimit [-SHacdfltu] [配额] 文件系统和程序的限制(注销再登陆,设置消失)
-H 严格的限制,必定不能超过
-S 警告的限制,超过有警告信息
-a 后面不接参数,表示列出所有限制
-c 内核文件(进程发生错误,内存信息写成的文件)的最大容量。
-f 此shell进程能创建的最大文件容量。单位是KB
-d 进程可以使用的最大断裂内存容量
-l 可用于锁定的内存量
-t 可以最大使用CPU的时间
-u 单一用户可以使用的最大进程数量
9、变量内容的删除
${var_name#匹配内容} #表示从前往后删除最短匹配
${var_name##匹配内容} #表示从前往后删除最长匹配
${var_name%匹配内容} #表示从后往前删除最短匹配
${var_name%%匹配内容} #表示从后往前删除最长匹配
10、变量内容替换
${var_name/匹配内容/替换内容} 从前往后替换一个
${var_name//匹配内容/替换内容} 从前往后全部替换
****************************************2015年11月16日**************************************************
1、echo ${username-test} 如果username不存在,那么输出为test。否则为username。
2、echo ${username:-test} 如果username不存在或者为空,那么输出为test。否则为username。
3、echo ${username+test} 如果username不存在,那么输出为空。否则为test。
4、echo ${username:+test} 如果username不存在或者为空,那么输出为空。否则为test。
5、echo ${username=test} 如果username不存在,那么输出为test并且username赋值为test。否则为username,并且不赋值。
6、echo ${username:=test} 如果username不存在或者为空,那么输出为test并且username赋值为test。否则为test,并且不赋值。
7、echo ${username?无此变量} 如果usernmae不存在,输出bash: username: test。否则输出为test。
8、echo ${username:?无此变量} 如果usernmae不存在或者为空,输出bash: username: test。否则输出为test。
9、alias
不加参数 显示所有的别名
alias vi=vim 用vi替代vim
unalias vi 取消vi别名
10、历史命令
history [n] 列出最近使用的n条命令
history [-c] 将目前shell中的history内容全部消除
history [-raw] -r:将histor内容读到目前shell的history记忆中
-a:将目前新增的history命令写入文件
-w:将目前history记忆内容写入文件
!number 执行第number命令
!! 执行上一个命令
!al 执行最近以al开头的命令
11、.或source 将配置文件读入当前shell环境
12、set 设置整个命令输入环境
-u 默认不启用,启用后,当使用未设置的变量时,会显示错误信息。(+u取消)
-v 默认不启用,启用后,在讯息被输入前,会先显示信息的原始内容
-x 默认不启用,启用后,在命令被执行前,会显示命令内容
-h 默认启用,与历史命令有关
-H 默认启用,与历史命令有关
-m 默认启用,与工作管理有关
-B 默认启用,与刮号[]的作用有关
-C 默认不启用,使用>等式,若文件存在时,该文件不会被覆盖
13、常用组合按键 执行结果
Ctrl+C 终止目前的命令
Ctrl+D 输入结束(EOF),例如邮件结束的时候
Ctrl+M 就是Enter
Ctrl+S 暂停屏幕的输出
Ctrl+Q 回复屏幕的输出
Ctrl+U 在提示符下,将整行命令删除
Ctrl+Z 暂停目前的命令
14、命令行通配符与特殊符号
* 代表0个到无穷多个任意字符
? 代表一定有一个任意字符
[] 代表一定有一个在中括号内的字符
[0-9] 代表'0'到'9'字符之间所有字符
[^abc] 非a,b,c的其他任意字符
15、bash环境中的特殊符号
符号 内容
# 批注
\ 转义
| 分割两个管道命令的界定。前一个命令的标准输出就是后一个命令的标准输入(忽略标准错误输出)。
; 连续命令执行分隔符
~ 用户主文件夹
$ 使用变量前导符
& 作业控制,将命令变成背景下工作
! 逻辑“非”
/ 目录分割符
>,>> 数据流重定向,输出导向,分别是“替换”与“累加”
<,<< 数据流输入导向
'' 不具有变量置换的功能
"" 具有变量置换的功能
`` 中间内容先执行
() 中间为子shell的起始与结束
{} 在中间为命令块的组合
16、输出数据重定向
[1]> 正确输出覆盖重定向
[1]>> 正确输出累加重定向
2> 错误输出覆盖重定向
2>> 错误输出累加重定向
find / -name .bashrc > right 2> false
正确的覆盖输出到right,错误的覆盖输出到error
find /home -name .bashrc 2> /dev/null
错误信息输出到黑洞设备,也就是忽略
find /home -name .bashrc > list 2> &1
find /home -name .bashrc &> list
按照和屏幕一样的顺序输出到文件
17、输入数据重定向
< 输入重定向
<< 输入结束
case 范例一:
cat > testfile
i love you
you know?
#按ctrl+d离开
#文件内容和文件都已创好
break;
case 范例二:
cat > testfile < ~/.bashrc
break;
case 范例三:
cat > testfile << "eof"
i love you
you know?
eof
#输入结束,不需要快捷键
end;
18、命令执行顺序
cmd1;cmd2 先执行cmd1,再执行cmd2
cmd1 && cmd2 cmd1正确执行,再执行cmd2
cmd2 || cmd2 cmd1错误执行,再执行cmd2
19、cut
echo $PATH | cut -d ':' -f 3,5
取出PATH变量中以:分割的第三个和第五个dir
export | cut -c 12 输出每一行的第十二个字符
export | cut -c 12- 输出每一行的第十二个字符至以后的字符
export | cut -c 12-20 输出每一行的第十二个字符至二十
20、last 显示登录信息
21、grep [-acinv] [-A] [-B] [--color=auto] '查找字符串' filename
-a 将二进制文件以text文件方式查找数据
-c 计算找到的次数
-i 忽略大小写
-n 顺便输出行号
-v 反向选择,即显示没有'查找字符串'内容的那一行
--color=auto 加上颜色显示
-A 后面可加数字,查询结果后面跟上几行
-B 后面可加数字,跟上前面几行
****************************************2015年11月17日**************************************************
1、sort
sort [-fbMnrtuk] [file or stdin]
-f 忽略大小写
-b 忽略前面的空格部分
-M 以月份的名字来排序,例如JAN,DEC等的排序方法
-n “纯数字”进行排序
-r 反向排序
-u uniq,相同数据中,仅出现一行代表
-t 分隔符,默认[tab]分隔
-k 哪个分隔区间
cat /etc/passwd | sort -t ':' -k 3
以冒号分隔的第三个区间,升序。
2、uniq [-ic]
-i 忽略大小写字符的不同
-c 计数
3、wc [-lwm] 什么都不加,默认都列出来
-l 行数
-w 单词数
-m 字符数
4、tee 双向重定向(一份输出到文件,一份stdout)
last | tee test | more last数据一份丢到test文件。一份丢到more。
5、tr
tr -d '[a-z]' 删除小写字母
tr '[a-z]' '[A-Z]' 所有小写转成大写
tr -s 'e' 重复字符去掉。(ee变成e)
6、col
col -x 将tab转换为空格
col -b 在文字内有反斜杠(/) 时,仅保留反斜杠最后接的那个字符
7、join [-ti12] file1 file2
-t join默认以空格分隔数据,并且对比“第一个字段”(数据前面以某个字符的分隔部分),如果两个文
件的数据的“第一个字段”相 同,则合并为一个数据,且“第一个字段”放在最前面。
-i 忽略大小写差异
-1 代表file1要用哪个字段分析来作为“第一个字段”
-2 代表file2要用哪个字段分析来作为“第一个字段”
join -t ':' -1 4 /etc/passwd -2 3 /etc/group
8、paste [-d] file1 file2 将多个文件一行一行地以某一分隔符分开地连接
-d 后面可接分隔符,默认是tab
9、- 代表stdin或stdout
9、expand [-t] file tab键转为空格键
-t 后面可接数字,一般一个tab转为8个空格
10、split [-bl] file PREFIX 切割(文件会以PREFIXaa,PREFIXab等来新建小文件)
-b 以大小来切割(b、k、m等)。split -b 300k 文件 前缀
-l 文件行数来切割
11、xargs [-0pen] command
-0 如果stdin有特殊字符,还原成一般字符。
-p 每次都要询问
-e 后面可接一个字符串,当分析道这个字符串时,就会停止
-n 每次执行命令使用几个参数
cut -d ':' -f 1 /etc/passwd | xargs -p -n 5 finger
每次取5个参数输入到finger(查询账户信息),并询问。
****************************************2015年11月23日**************************************************
1、正则表达式通配符
[0-9] 代表'0'到'9'字符之间所有字符
[^abc] 非a,b,c的其他任意字符
* 重复字符,0到无穷多个
. 一定有一个字符
^the 以the开头
\.$ 以小数点结尾
^$ 空白行
\{数字一,[数字二]\} 限定连续重复字符范围。例:grep -n 'o\{2,\}' xx.test 连续出现两个至无穷个o
[:alnum:] 代表英文大小写字符及数字
[:alpha:] 大小写字符
[:blank:] 空格键与tab键
[:cntrl:] 键盘上面的控制按键,即包括CR、LF、Tab、Del等
[:digit:] 数字
[:graph:] 处空格符外其他所有按键
[:lower:] 代表a-z的小写字母
[:print:] 任何可被打印出来的字符
[:punct:] 标点符号,即" ' ? ! ; : # $
[:upper:] 大写字符
[:space:] 任何产生空白的字符,包括空格键 tabC R等
[:xdigit:] 16进制数字类型,因此包括0-9、A-F、a-f的数字与字符
2、sed [-nefr] [动作]
-n 安静模式(经过处理的行才会列出)
-e 直接在命令行模式上进行sed的动作编辑
-f 直接将sed的动作写在一个文件内
-r sed的动作支持的是扩展型正则表达式的语法(默认是基础正则表达式)
-i 直接修改读取的文件内容,而不是由屏幕输出
动作:[n1[,n2]]function
n1,n2 行数
function参数
a 新增
c 替换
d 删除
i 插入
p 打印
s 直接进行替换(文件里)。可搭配正则表达式。例如:sed -i 's/\.$/\!/g' test .结尾的点替换成
!
****************************************2015年11月30日**************************************************
1、拓展正则表达式(grep仅支持基础表达式。使用grep -E或egrep拓展。)
+ 重复一个或一个以上的RE字符 例:egrep -n 'go+d' test 查找god good goood 等
? 零个或一个的前一个RE字符 例:egrep -n 'go+d' test 查找god gd
| 用或的方式查找出数个字符串 例:egrep -n 'gd|god' test 查找god gd
() 找出组字符串 例:egrep -n 'g(la|oo)d' test 查找glad good
()+ 多个重复组的判别 例:echo 'gxyxyxyd'| egrep 'g(xy)+d'
2、awk 主要是处理每一行的字段内的数据,默认分隔符为空格或[tab]
变量 意义
NF 当前行的字段数
NR 目前是第几行数据
FS 目前的分隔符,默认是空格键
cat /etc/passwd | awk '{FS=":"} $3<10 {print $1 "\t" $3}'
3、diff 比较文件新旧版本的区别
diff [-bBi] from-file to-file
-b 忽略一行中仅有多个空白的区别(例如:about me 和 about me)
-B 忽略空白行的区别
-i 忽略大小写的区别
diff -Naur old new > test.patch 区别制作成一个补丁文件
4、cmp [-s] file1 file2
-s 将所有的不同点的字节处都列出来。默认值输出第一个发现的不同点
5、patch -pN < test.patch 更新
patch -R -pN < test.patch 还原
-pN 取消N层目录。如果在同一目录下就是0.
6、sh [-x] 子进程执行shell脚本
-x 会将执行过程显示出来
source 当前进程执行shell脚本
7、$((13%3)) 运算内容
8、test可[]替代
关于某个文件名的“文件类型”判断
-e 该文件名是否存在
-f 该文件名是否存在且为文件
-d 该文件名是否存在且为目录
-b 该文件名是否存在且为一个block device设备
-c 该文件名是否存在且为一个character device设备
-S 该文件名是否存在且为一个Socket文件
-p 该文件名是否存在且为一个FIFO(pipe)文件
-L 该文件名是否存在且为一个连接文件
例如:test -e /etc && echo "yes" || echo "No"
关于文件权限检查
-r 检测该文件名是否存且具有“可读”的权限
-w 检测该文件名是否存且具有“可写”的权限
-x 检测该文件名是否存且具有“可执行”的权限
-u 检测该文件名是否存且具有“SUID”的属性
-g 检测该文件名是否存且具有“SGID”的属性
-k 检测该文件名是否存且具有“Sticky bit”的属性
-s 检测该文件名是否存且且为“非空白文件”
两个文件之间的比较 test file1 -[] file2
-nt file1是否比file2新
-ot file1是否比file2旧
-ef 判断是否为同一文件。主要判定两个文件是否指向同一个inode(hard link)。
连个整数之间的判断
-eq 数值相等
-ne 数值不等
-gt n1大于n2
-lt n1小于n2
-ge n1大于等于n2
-le n1小于等于n2
判定字符串的数据
test -z string 判定字符串是否为空
test -n string 判定字符串是否为不空
test str1=str2 判定是否相等
test str1!=str2 判定是否不相等
多重条件判定
-a 多个条件同时成立。test -r file1 -a -x file2 或 [ -r file1 -a -x file2 ]
-o 任何一个条件成立。test -r file1 -o -x file2
! 反向。test ! -x file
9、shell脚本参数(sh test 参数1 参数2)
$0 test文件名
$# 参数个数
$@ 代表"$1"、"$2"。每个变量都是独立的。
$* "$1c$2"。c为分隔符,默认空格。
shift 3 偏移三个变量($#输出总个数减去3)
10、条件判断
if [条件判断];then
else if [条件判断];then
else
fi
11、case语句
case $变量名称 in
"第一个变量内容")
程序段
;;
"第二个变量内容")
程序段
;;
*)
程序段
;;
esac
12、函数
function fname(){
}
13、循环
while [condition]
do
程序段落
done
until [condition]
do
程序段落
done
for var in con1 con2 con3 ...
do
程序段
done
for ((i=0;i<=100;i=i+1))
do
程序段
done
****************************************2015年12月1日**************************************************
0、相关文件
/etc/passwd 账号信息(账号,密码x,uid,初始用户组gid等)
/etc/shadow 账号密码
/etc/group 用户组信息(用户组名称,密码,GID等)
/etc/gshadow 几乎与/etc/group一样(第二个字段是密码,如果为!表示不具有用户管理员)
/etc/default/useradd useradd的默认值
/etc/login.defs uid/gid的密码参数
/etc/skel 用户主文件夹参考的基准目录(就是复制过去)
/etc/pam.d/passwd 使用pam_cracklib.so测试密码,并替代/etc/login.defs内PASS_MIN_LEN
1、groups 查看当前用户支持的用户组(输出的第一个用户组为有效用户组)
2、newgrp 组名 切换当前用户的有效用户组
3、useradd [-u uid] [-g 初始用户组] [-G 次要用户组] [-mM] [-c 说明栏] [-d 主文件绝对路径] [-s shell] 用户账号名
-M 强制不要创建用户主文件(系统账号默认值)
-m 强制要创建用户主文件(一般账号默认值)
-c passwd的第9列说明内容
-s 后面接一个shell,若美欧制定默认是/bin/bash
-e 失效日期
-f shadow第7字段。0为立刻失效,-1为永不失效
-D useradd默认属性值
-r 创建一个系统账号
****************************************2015年12月2日**************************************************
1、修改账户密码
用户使用
passwd 修改自己密码
root使用
passwd [-l] [-u] [--stdin] [-S] [-n 日数] [-x 日数] [-w 日数] [-i 日期] 账号
--stdin 前一个管道的数据(ubuntu不支持)
-l 将/etc/shadow第二列最前面加上!使密码失效
-u 与-l相反
-S 列出密码相关参数即shadow大部分内容
-n shadow第四字段,多久不可修改密码天数
-x shadow第五字段,多久必须改动密码
-w shadow第六字段,密码过期前的警告
-i shadow第七字段,密码失效日期
echo "abc123" | passwd --stdin test
ubuntu貌似不支持
root修改test用户密码,但是不安全(直接使用passwd test)
passwd -i 10 自创建起,10天密码失效
2、chage [-ldEImMW] 账号名
-l 列出账号的详细密码参数
-d 修改shadow的第三字段(最近一次更改密码的日期),格式 YYYY-MM-DD
-E 修改shadow的第八字段(账号失效日),格式 YYYY-MM-DD
-I 修改shadow的第七字段(密码失效日)
-m 修改shadow的第四字段(密码最短保留天数)
-M 修改shadow的第五字段(密码需要多久更改)
-W 修改shadow的第六字段(密码过期前警告日期)
chage -d 0 test 账号新建时间被更改为1970/1/1
3、usermod [-cdeGlsuLU] 账号名
-c /etc/passwd第五列,账号说明
-d /etc/passwd第六列,主文件夹
-e 修改shadow的第八字段(账号失效日),格式 YYYY-MM-DD
-f 修改shadow的第七字段(密码失效日)
-g 后面接初始用户组,gid
-G 后面接次要用户组,/etc/group
-a 与-G合用可增加次要用户组的支持而非设置
-l 修改账号名称
-s shell文件夹
-u uid
-L 在那时将用户密码冻结,让他无法登录
-U 解锁,与-L相反
usermod -c "fox" test
usermod -e "1994-08-24" test
4、userdel [-r] 账号名 -r连同主文件夹和mailpool一起删
5、finger
finger 列出目前登录的用户与登录时间
finger test 列出test账户的相关属性(名字等)
finger -s test 仅列出用户的账号、全面、终端机代还与登录时间等
finger -m test 列出后面接的账号相同者,而不是利用部分对比
6、chfn [-foph] 账号名
什么都不加 互动更改模式
-f 完整大名
-o 办公室房间号
-p 办公室电话
-h 家里的电话
7、chsh 修改shell
8、id
什么都不加 列出当前用户的所有id
id test 列出test用户的id(也可用来查询test账号是否存在)
9、groupadd [-g gid] [-r] 用户组名
-g 特定gid
-r 系统用户组
10、groupmod [-g gid] [-n groupname] 用户组名
-g 修改既有的gid数字(不要随意修改)
-n 修改既有的组名
11、groupdel grouptest 删除grouptest(有用户关联无法删除)
12、gpasswd
root动作
gpasswd test 修改test密码
gpasswd [-A user1,...] [-M user3,...] test
-A后面接test的管理员账号
-M将某些账号加入这个用户组
gpasswd [-rR] test -r删除密码,-R使之失效
管理员动作
gpasswd [-ad] user test
-a添加用户到test
-d从test删除用户
****************************************2015年12月3日**************************************************
1、mount 直接查看挂载参数
2、setfacl [-bkRd] [{-m|-x} acl 参数] 目标文件
-m 设置后续的acl参数给文件使用,不可与-x合用
-x 删除后续acl参数,不可与-m合用
-b 删除素有的acl参数设置
-k 删除默认的acl参数
-R 递归设置acl,包括子目录都会被设置起来
-d 设置默认acl参数。只对目录有效,在该目录新建的数据会引用此默认值
针对特定的用户(-m u:[用户列表]:[rwx] 无用户表示文件所有者)
针对特定的用户组(-m g:[用户组列表]:[rwx] 无用户表示文件所属组)
针对有效权限mask (-m m:[rwx]) 对用户、用户组、other进行权限交集
针对默认权限(-m d:[ug]:用户列表:[rwx] 目录)
3、getfacl 目标文件 查看所有权限,包括附加acl权限
4、su [-lm] [-c 命令] [username]
什么都不加 使用non-longin shell方式,但是很多环境变量并没有切换(不推荐)
- 使用login-shell的变量文件读取方式来登录系统,不加用户名,代表root
-l 与-类似,但是必须加账号
-m 与-p是一样的,表示使用目前的环境设置,而不读取新用户的配置文件
-c 仅执行一次命令
5、env 查看环境变量
6、sudo [-b] [-u 新用户账号]
-b 将后续的命令让系统自行执行,而不与目前的shell产生影响
-u 后面可以接欲切换的用户,若无代表切换身份为root
sudo -u sshd touch /tmp/test
7、sh -c "一连命令;接着;接着;"
8、visudo 能够修改sudo能执行的命令(鸟哥p430相关语法)
****************************************2015年12月4日**************************************************
1、w或者who 查询当前登录在系统上的用户
2、lastlog 每个账号的最近登录时间
3、write 用户账号 中断端口 与相同主机上的用户交谈
4、mesg
mesg 显示mesg的状态
mesg n 拒绝接受消息,root的消息不能拒绝,但是不显示
mesg y 接受所有消息
5、wall 针对系统上面的用户发送广播
6、mail 用户 -s "标题" 结束行为.;Cc:抄送
mail 查看状态,并等待输入命令(?来查看命令)
7、一些检查工具
pwck 检查/etc/passwd这个账号配置文件内的信息,与实际主文件夹是否存在
pwconv 将/etc/passwd的密码移到/etc/shadow
pwunconv 将/etc/shadow密码移到/etc/passwd,并删除/etc/shadow(不推荐)
chpasswd chpasswd -m "username:明文密码"。进行加密并修改username密码
****************************************2015年12月5日**************************************************
1、quotacheck [-avugfM] [/mount_point] 扫描文件系统并新建Quota的配置文件
-a 扫描所有在/etc/mtab内,含有quota支持的文件系统,加上此参数后,/mount_point可不必写,因为扫
描了所有的文件系统了
-u 针对用户扫描文件与目录的使用情况,会新建 aquota.user
-g 针对用户组扫描文件与目录的使用情况,会新建 aquota.group
-v 显示扫描过程的信息
-f 强制扫描文件系统,并写入新的quota配置文件(不推荐)
-M 强制以读写的方式扫描文件系统,只有在特殊的情况下才会使用
quotacheck -avug 针对含有usrquota、grpquota参数的文件系统就行扫描
quotacheck -avugmf 强制扫描
2、quotaon [-avug]
quotaon [-vug] [/mount_point] 启动quota服务
-u 针对用户启动quota(aquota.user)
-g 针对用户组启动quota(aquota.group)
-v 显示启动过程的相关信息
-a 根据/etc/mtab内的文件系统设置启动有关的quota,若不加-a的话,则后面需要加特定的文件系统
quotaon -auvg
3、quotaoff [-a]
quotaoff [-ug] [/mount_point] 关闭quota服务
-a 关闭全部的文件系统的该项服务(根据/etc/mtab)
-u 仅针对后面接的 /mount_point 关闭 user quota
-g 。。。
4、edquota [-u username] [-g groupname]
edquota -t 修改宽限时间
edquota -p 范本账号 -u 新账号
-u 设置username的权限值
-g 设置groupname的权限值
-t 修改宽限时间
-p 复制范本
5、quota [-uvs] [username]
quota [-gvs] [groupname] 显示针对用户或者用户组的quota报表
-u ...
-g ...
-v 显示每个用户在文件系统中的quota值
-s 使用1024倍数的值
6、repquota -a [-vugs]
-a 直接到 /etc/mtab 查询具有quota标志的文件系统,并显示报表
-v 输出的数据将含有文件系统的详细信息
-u 显示出所有用户的quota限制
-g 。。。
-s 使用M、G为单位
7、dd if=/dev/zero of=bigfile bs=1M count=300
创建一个300M的空文件
8、warnquota 查看超过soft的账号并发送邮件(/etc/warnquota.conf配置文件)
9、setquota [-u | -g] 账号名称 block(soft) block(hard) inode(soft) inode(hard) 文件系统
直接于命令中设置quota限额
****************************************2015年12月7日**************************************************
1、软件磁盘阵列设置
mdadm --detail /dev/md0
cat /proc/mdstat 查询磁盘阵列信息
mdadm --create --auto=yes /dev/md[0-9] --raid-devices=N --level=[015] --spare-devices=N [/dev/sdx /dev/hdx ... 或者 sdd
{5,6,7,8,9}]
--create 为新建RAID的参数
--auto=yes 决定新建后面接的软件磁盘阵列设备,即 /dev/md0,/dev/md1等
--raid-devices=N 使用几个磁盘作为阵列设备
--spare-devices=N 使用几个磁盘作为备用
--level=[015] 设置磁盘阵列的等级,一般建议0,1,5
--detail 后面所接的那个磁盘阵列设备的详细信息
2、mdadm --manage /dev/md[0-9] [--add 设备] [--remove 设备] [--fail 设备]
--add 会将后面的设备加到这个md中
--remove 从磁盘阵列md中删除后面接的设备
--fail 会将后面的设备设置成为出错的状态
3、mdadm --stop /dev/md0 关闭/dev/md0
****************************************2015年12月8日**************************************************
1、LVM(分区标识符需要改为8e)
pvscan 检查是否有PV的存在
pvcreate /dev/sdd{5,6,7,8} 创建PV
pvdisplay 详细列出每个PV的信息
pvmove /dev/sdd6 /dev/sdd9 内容移动
vgcreate [-s N[mgt]] VG名称 PV名称
-s 接每个PE的大小
vgscan 检查VG的存在
vgdisplay 详细显示每个VG的信息
vgextend liyangvg /dev/sdd9 添加sdd9
vgreduce liyangvg /dev/sdd9 删除sdd9
vgremove liyangvg 删除一个VG
lvcreate [-L N[mgt]] [-n LV名称] VG名称
lvcreate [-l N] [-n LV名称] VG名称
-L 后面接容量,单位是MGT,取最接近的PE倍数
-l 后面接PE的个数
-n 后面接LV的名称
lvdisplay 相信显示LV状态
/dev/liyangvg/liyanglv (以后直接对其进行文件系统格式化)
lvresize -l +179 /dev/liyangvg/liyanglv
将新加入的PV内的PE加入lv
resize2fs /dev/liyangvg/liyanglv
将文件系统的容量确实增加
resize2fs [-f] [device] [size] (需要新进行解挂载和检查)
-f 强制进行操作
[device] 设备文件
[size] 加上单位MG。不加size的话表示整个分区的容量
e2fsck -f /dev/liyangvg/liyanglv
检查文件系统
lvcreate -l 60 -s -n liyangss /dev/liyangvg/liyanglv
为liyanglv新建一个liyangss快照
-s 快照
-n 快照名
-l 跟个数
2、at
/etc/init.d/atd restart 重启atd
at [-mldv] TIME
at -c 工作号码
-m 当at的工作完成后,及时没有输出信息,以email通知用户改工作已完成
-l 相当于atq,列出目前系统上面的所有该用户的at调度
-d 相当于atrm,可以取消一个在at调度中的工作
-v 可以使用较明显的格式列出at调度中的任务列表
-c 可以列出后面接的该项工作的实际命令内容
TIME
HH:MM 今日 ex>04:00
HH:MM YYYY-MM-DD 某日 ex> 04:00 2009-03-17
HH:MM[am|pm] [Month] [Date]
某日 ex>04pm March 17
HH:MM[am|pm] + number [minutes|hours|days|weeks]
ex>now + 5 minutes ex>04pm + 3days
3、atq 查询目前主机上有哪些at工作调度
4、atrm 5 删除第五个工作
5、batch 与at类似,是由atq/atrm管理。只有当CPU负载低于0.8的时候才会执行。
6、crontab [-u username] [-l|-e|-r] 循环执行
-u 只有root才能进行,也即是帮助其他用户新建/删除crontab工作调度
-e 编辑crontab的工作内容
-l 查阅crontab的工作内容
-r 删除所有的工作内容
7、anacron 检查执行未执行的crontab(关机等造成的)
anacron [-sfn] [job] ..
anacron -u [job] ..
-s 开始执行各项工作,会一句时间记录文件的数据判断
-f 强制执行,而不去判断时间记录的时间戳
-n 立刻执行未进行的任务,而不延迟等待时间
-u 仅更新时间记录文件的时间戳,不执行
job ...
****************************************2015年12月9日**************************************************
1、ps -l 显示进程
2、& 在终端后台中工作。(新建一个子进程之间pipe通信)
3、ctrl+z 将目前的工作丢到后台中“暂停”(比如编辑工作、查找操作)
4、jobs [-lrs]
-l 列出job number,pid,命令字符串等(默认)
-r 仅列出正在后台run的工作
-s 仅列出正在后台stop的工作
5、fg %jobnumber 将后台的工作弄到前台执行
6、kill -signal %jobnumber 将信号传到后台job
kill -l
-l 列出目前可以使用的信号
kill -signal pid 将信号传递到某个进程
signal 代表给予后面接的那个什么样的指示
-1 重新读取一次参数的配置文件(- SIGHUP)
-2 代表由键盘输入ctrl+c(-SIGINT)
-9 立刻强制删除一个工作(-SIGKILL)
-15 以正常的程序方式终止工作(与 -SIGTERM一样)
-17 ctrl+z暂停一个进车(-SIGSTOP)
7、nohup [命令或参数] 在终端机前台工作
nohup [命令或参数] & 在终端机后台工作(脱机或注销系统都行)
****************************************2015年12月10日**************************************************
1、ps aux 查看所有的进程数据
ps -lA 同上
ps axjf 同上,加上部分进程树状态
ps -l 仅列出与你的操作环境bash有关的进程
-A 进程均显示出来,与-e相同
-a 与terminal有关的进程
-u 有效用户(effective user)相关的进程
x 通常与a这个参数一起使用,可列出较完整
输出格式
l 详细PID信息列出
j 工作格式
-f 做一个更为完整的输出
2、top [-d 数字]
top [-bnp] 动态查看进程的变化
-d 接秒数。默认5s。
-b 以批次的方式执行top。通常重定向输出批处理结果。
-n 与-b搭配,需要进行几次top的输出结果
-p 指定pid监测
在top执行过程中可以使用的按键命令
? 显示能输入的所有命令
P 以CPU的使用资源排序
M 以内存的使用资源排序
N 以PID排序
T 由该进程使用的CPU时间累积排序
k 给予某个pid一个信号
r 给与某个pid重新制定一个nice值
q 离开top软件
3、echo $$ 打印出当前bash的pid
4、pstree [-A|U] [-up]
-A 各进程树之间以ASCII字符来连接
-U 各进程树之间以utf8码字符来连接,某些终端接口可能有误
-p 同时列出每个进程的pid
-u 同时列出每个进程所属账号名称
5、killall -signal [-iIe] [command name](命令名称为ps最后一个字段)
-i 交互式询问
-I 忽略命令名称的大小写
-e 完整命令名称,不超过15字符
6、nice [-n 数字] command 新执行的命令给予新的nice值
-n 数字范围-20~19
renice [number] pid
7、free [-b|-k|-m|-g] [-t] 查看内存使用情况(默认KB)
-t 在输出的最终结果中显示物理内存与swap总量
8、uname [-asrmpi] 查看系统内核相关信息
-a 所有系统相关的信息(包括下面的数据)
-s 内核名称
-r 内核版本
-m 硬件名称
-p CPU类型
-i 硬件平台
9、uptime 查看系统启动时间与工作负载
10、netstat -[atunlp]
-a 所有的连接、监听、Socket数据
-t 列出tcp网络数据包数据
-u udp
-n 不列出进程服务名称,以端口号显示
-l 列出正在网络监听的服务
-p 列出该网络服务的进程pid
11、dmesg 内核产生的log
12、vmstat 检测系统资源变化
vmstat [-a] [延迟[总计检测次数]]CPU/内存等信息
vmstat [-fs] 内存相关
vmstat [-S 单位] 设置显示数据的单位
vmstat [-d] 与磁盘有关
vmstat [-p 分区] 与磁盘有关
-a 使用inactive/active替代buffer/cache的内存输出信息
-f 开机到目前为止系统fork的进程数
-s 将一些时间(开机至目前为止)导致的内存变化情况列表说明
-S 后面可接单位,让显示的数据有单位。
-d 列出磁盘读写总量统计表
-p 列出分区,可现实该分区的读写总量统计表
13、fuser [-umv] [-k [i] [-signal]] file/dir
找出正在使用该文件或文件系统的程序(由文件、设备去找)
-u 除了进程pid之外,同时列出该进程的所有者
-m 后面接的文件名会主动上提到该文件系统的顶层,对umount不成功很有效
-v 列出每个文件与程序还有命令的完整相关性
-k 找出使用该文件/目录的PID,并试图以SIGKILL这个信号给予该PID
-i 必须与-k配合,在删除pid之前询问
-signal 例如-1 -15等,不加默认为SIGKILL
14、lsof [-aUu] [+d] 列出被进程所打开的文件名
-a 多项数据需要“同时成立”才显示结果
-U 仅列出Unix like系统的socket文件类型
-u 后面接username,列出该用户相关进程打开的文件
+d 后面接目录,即找出某个目录下面已经被打开的文件
15、pidof [-sx] program_name 找出正在执行的进程的pid
-s 仅列出一个PID而不列出所有的PID
-x 同时列出该program name可能的ppid那个进程的pid
****************************************2015年12月11日**************************************************
1、getenforce 获得目前selinux的模式(enforcing、permissive、getenforce)
2、sestatus [-vb]
-v 检查列于/etc/sestatus.conf内的文件与程序的安全上下文内容
-b 将目前策略的规则布尔值列出,即某些规则是否要启动
3、/etc/selinux/config selinux配置文件
4、setenforce [0|1] 0转成permissive,1转成enforcing
5、seinfo [-Atrub] selinux策略查询与规则管理
-A 列出SELinux的状态、规则布尔值、身份识别、角色、类型等
-t selinux的所有类型种类
-r selinux所有角色种类
-u selinux所有身份标识种类(user)
-b selinux所有规则种类
6、sesearhc [-a] [-s 主体类型] [-t 目标类型] [-b 布尔值]
-a 列出该类型或布尔值的所有相关信息
-t 例如 -t httpd_t
-b 后面接布尔值的规则,-b httpd_enable_ftp_server
7、getsebool [-a] [布尔值条款] 查询布尔值
8、setsebool [-P] 布尔值=[0|1] 修改布尔值
9、默认安全上下文查询与修改
semanage {login|user|port|interface|fcontext|translation} -l
semanage fcontex -{a|d|m} [-frst] file_spec
-a 增加
-m 修改
-d 删除
****************************************2015年12月12日**************************************************
1、stand alone服务
/etc/init.d/cron status 查看状态
/etc/init.d/cron restart 重启
service [servicename] (start|stop|restart|...)
service --status-all 将所有的stand alone服务全部列出来
2、lld $(which sshd) 查询ssd服务动态函数库支持(比如看它是否用到libwrap.so)
3、rpm -q tcp_wrappers 查看是否安装tcp_wrappers
4、netstat -tulp 找出目前开通的网络服务
netstat -lnp 找出所有监听网络的服务
5、chkconfig 管理系统服务默认开机启动
chkconfig --list [服务名称] 列出系统上被chkconfig管理的服务
chkconfig [--level [0123456]] [服务名称] [on|off]
修改服务启动等级
chkconfig [--add|--del] [服务名称]
--add 增加一个服务名称给chkconfig管理,该服务必须在/etc/init.d内
--del 删除一个给chkconfig管理的服务
****************************************2015年12月16日**************************************************
1、logrotate 日志文件轮替
logrotate [-vf] logfile
-v 显示过程
-f 无论是否符合配置文件数据,强制每个日志文件进行rotate操作
例如:logrotate -vf /etc/logrotate.conf
执行/etc/logrotate.conf内容
2、mvli
****************************************2016年1月11日**************************************************
1、depmod [-Ane] 记录了在内核支持的模块的各项依赖性。不加任何参数时,主动分析当前内核的模块,并且重新写
入/lib/modules/$(uname -r)/modules.dep。
-A 查找比modules.dep内要新的模块,有新模块才会更新。
-n 不写入modules.dep,输出到屏幕
-e 显示出目前已加载的不可执行的模块名称
2、lsmod 目前加载到内核中的模块
3、modinfo [-adln] [module_name|filename]
不加参数,什么信息都有
-a 列出作者名称
-d 列出该modules的说明
-l 列出授权
-n 列出详细路径
4、insmod 模块加载,但不会主动分析模块间的依赖(modules.dep)。后面接完整路径。
5、rmmod [-fw] module_name 删除模块
-f 强制删除,不论是否正在被使用
-w 使用完之后再删除
6、modprobe [-lcfr] module_name 推荐使用。会检测模块间的依赖属性
-c 列出目前系统所有的模块
// -l 列出目前在/lib/modules/$(uname -r)/kernel 当中所有模块的完整文件名
-f 强制加载模块
-r 类似rmmod,删除模块
7、mkinitrd [-v] [--with=模块名] initrd文件名 内核版本
创建一个initrd虚拟磁盘文件
8、grub-install /dev/hda 将grub安装在目前系统的MBR下面
grub-install --root-directory=/home /dev/hda3
将grub安装在/dev/hda3的bootsector里面
grub-install --recheck /dev/hda1 重新生成device.map
9、sensors-detect 芯片组检测
10、sensors 温度、电压等检测
11、ldconfig [-f conf] [-C cache] 动态库的连接信息
ldconfig [-p]
-f conf 使用conf作为library函数库的取得路径
-C cache 使用cache作为缓存暂存的函数库资料
-p 列出目前所有函数库数据内容
12、ldd [-vdr] [filename] 判断程序包含哪些动态库
-v 列出所有的内容信息
-d 重新将数据有丢失的link显示出来
-r 将ELF有关的数据内容显示出来
****************************************2016年1月12日**************************************************
1、rpm -ivh packname [--xxx] 软件管理程序
-i install
-v 查看更详细的安装信息画面
-h 以安装信息栏显示安装进度
--nodeps 出现依赖问题,执意安装
--replacefiles 覆盖以前的文件
--replacepkgs 重复安装
--force 上面两个的合体
--test 测试一下,可以找出依赖性问题
--justdb 更新软件在数据库里面的信息
--nosignature 略过数字证书检查
--prefix 新路径 安装到其他非正规路径
--noscripts 不想让该软件在安装过程中自行执行某些系统命令
2、rpm -Uvh packname 未安装安装,已安装升级
rpm -Fvh packname 未安装不安装,已安装升级
3、rpm查询 p692
4、rpm -Va 列出目前软件所有可能被改动的软件名称
rpm -V 已安装软件 列出该软件可能被修改过的文件
rpm -Vp 某个rpm文件的文件名 列出该软件可能被修改过的文件
rpm -Vf 系统上某个文件 列出某个文件是否被改动
5、rpm --rebuilddb 重建数据库
6、rpmbuild --rebuild srpm 将后面接的srpm进行编译与打包
rpmbuild --recompile srpm 编译打包安装
rpmbuild -ba rp-pppoe.spec 编译并同时生成rpm与srpm
rpmbuild -bb rp-pppoe.spec 编译并同时生成rpm
7、yum [option] [查询工作项目] [相关参数]
[option]
-y 需要用户输入时,自动提供yes的响应
--installroot=/some/path将该软件安装在/some/path
[查询工作项目]
search 搜索某个软件名称或描述的关键字
list 与rpm -qa一致
info 类似rpm -qai
provides 类似rpm -qf
install 后街软件
update 后街软件
remove 后街软件
yum repolise all 列出所使用的容器有那些
yum clean [packages|headers|all]
packages 删除软件文件
headers 将下载的软件头文件删除
all 软件本身与列表
yum [组功能] [软件组]
grouplist 列出可使用的组列表
groupinfo 接groupname,了解该group内含的所有组名称
groupinstall 安装一整组的软件
groupremove 删除某组

浙公网安备 33010602011771号