1:df命令
用于显示linux服务器的文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用
了多少空间,目前还剩下多少空间等信息。
•命令格式:df [选项] [文件]
如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。默认情况下,磁盘空间将以 1KB 为单位进行显示。
•常用选项
•-a 全部文件系统列表
•-h 方便阅读方式显示
•--sync 在取得磁盘信息前,先执行sync命令
2:du命令
du命令也是查看使用空间的,但是与df命令不同的是du命令是对文件和目录使用的空间的查看,
还是和df命令有一些区别的。也就是,不管你在哪个目录下执行df命令,输出显示的都是
磁盘空间的占用,而执行du命令,只会显示当前目录下的空间占用情况。
•命令格式:du [选项] [文件]
•常用选项
•-a 列出目录下所有文件的大小
•-h 方便阅读方式显示(human-readable)
•-s 仅显示总计,只列出最后加总的值
3:find命令
find命令在目录结构中搜索文件,并执行指定的操作。
•命令格式:find [路径] [选项] [动作]
•常用选项
•与时间有关的选项
•-mtime n : n为数字,意思为在n天之前的“一天内”被更改过的文件;
•-mtime +n : 列出在n天之前(不含n天本身)被更改过的文件名;
•-mtime -n : 列出在n天之内(含n天本身)被更改过的文件名;
•-newer file : 列出比file还要新的文件名
•与用户或用户组有关的选项
•-user name : 列出文件所有者为name的文件
•-group name : 列出文件所属用户组为name的文件
•-uid n : 列出文件所有者为用户ID为n的文件
•-gid n : 列出文件所属用户组为用户组ID为n的文件
•与文件名称及权限有关的选项
•-name filename :找出文件名为filename的文件
•-size [+-]SIZE :找出比SIZE还要大(+)或小(-)的文件
•-type TYPE :查找文件的类型为TYPE的文件,TYPE的值主要有:一般文件(f)、
设备文件(b、c)、 目录(d)、连接文件(l)、socket(s)、FIFO管道文件(p);
•-perm mode :查找文件权限刚好等于mode的文件,mode用数字表示,如0755;
例:
find . -size +12k //查找当前目录中大于12KB的文件
4:zip压缩与unzip解压缩
•zip
将文件压缩成.zip格式的文件。
•命令格式:zip [选项] [压缩后的文件名] [文件/文件夹]
•常用选项:
•-r 递归打包包含子目录的全部内容
•-q 表示为安静模式,即不向屏幕输出信息
•-o 表示输出文件,需在其后紧跟打包输出文件名
•-P 后跟一个密码,表示加密密码
•unzip
对.zip文件的格式进行解压缩
•命令格式:unzip [选项] [压缩文件] [解压后的文件]
•常用选项:
•-d 后跟解压路径,指定解压路径(跟在压缩文件后)
•-l 显示压缩文件内所包含的文件
•-n 解压缩时不覆盖原有文件(默认)
•-f 解压缩时覆盖原有文件
•-q -P 与zip命令相似
5:tar打包与压缩
首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;
压缩则是将一个大的文件通过一些压缩算法变成一个小文件。
tar原本只是一个打包命令,但它同时还是实现了对 7z、gzip、xz、bzip2 等工具的
支持,所以可以通过tar命令实现对文件的压缩和解压。
•命令格式:tar [必要选项+选择选项] [压缩文件名] [压缩文件或解压文件]
必要选项是必须要有的,它告诉tar要做什么事情,选择选项是辅助使用的,可以选用。
•常用选项
•-c 建立新的压缩文件
•-z 支持gzip压缩解压文件
•-v 显示操作过程
•-f(选择选项) 指定压缩文件,在 f 之后要立即压缩文件名,不能有其他选项
•-x 从压缩的文件中提取文件
•-C(选择选项) 切换到指定目录
常用操作:
压缩:tar -zcvf something.tar something
解压:tar -zxvf something.tar -C /path
6:grep命令
grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行
打印出来。
•命令格式:grep [选项] [要搜索的字符] [文件夹/目录]
•常用选项
•-a 将二进制文件以text文件的方式搜寻数据
•-c 计算找到要搜索字符的次数
•-i 忽略大小写
•-n 顺便输出行号
•-v 反向选择,即显示出没有‘搜索字符串’内容的哪一行
•--color=auto 将找到的关键词部分加上颜色显示
7:cp命令
cp命令用来复制文件或者目录。
•命令格式:cp [选项] [源文件或目录] [目的文件或目录]
•常用选项
•-a 将源文件的特性一块复制(如最后修改时间会和源文件一致)
•-i 若目标文件已经存在,再覆盖时先询问操作的进行
•-r 递归持续复制,用于目录的复制行为
•-u 目标文件与源文件有差异时才会复制
8:ps命令
ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。
ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,
如果想要动态的显示进程信息,可以使用top命令。
使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。
•命令格式
ps [参数]
•ps标识进程的5种状态码
D 不可中断
R 运行
S 中断
T 停止
Z 僵死
•常用选项
•-A :所有的进程均显示出来
•-a :不与terminal有关的所有进程
•-u :有效用户的相关进程
•-x :一般与a参数一起使用,可列出较完整的信息
•-l :较长,较详细地将PID的信息列出
9:kill命令
kill命令用来终止指定的进程的运行,是Linux下进程管理的常用命令。对于一个后台
进程须用kill命令来终止,需要先使用ps/jobs/top等工具获取进程PID,然后使用
kill命令来杀掉该进程。kill命令是通过向进程发送指定的信号来结束相应进程的。
在默认情况下,采用编号为15的TERM信号。TERM信号将终止所有不能捕获该信号的进程。
对于那些可以捕获该信号的进程就要用编号为9的kill信号,强行“杀掉”该进程。
•命令格式
kill [参数] [进程号]
•常用参数
注:最前面的数字为信号的代号,使用时可以用代号代替相应的信号。
•-1 SIGHUP,启动被终止的进程
•-2 SIGINT,相当于输入ctrl+c,中断一个程序的进行
•-9 SIGKILL,强制中断一个进程的进行
•-15 SIGTERM,以正常的结束进程方式来终止进程
•-17 SIGSTOP,相当于输入ctrl+z,暂停一个进程的进行
•-l(小写L) 列出所有的已知信号名称
10:killall命令
killall命令用于杀死指定名字的进程。kill命令杀死指定进程PID的进程,这使得我们
必须要先找到进程的PID,而killall把这两个过程合二为一,是一个很好用的命令。
•命令格式
killall [参数] [进程名]
•常用参数
•-I 忽略小写
•-g 杀死进程组而不是进程
•-i 交互模式,杀死进程前先询问用户
•-l(小写L) 列出所有的已知信号名称
•-q 不输出警告信息
•-s 发送指定的信号
•-v 报告信号是否成功发送
•-w 等待进程死亡
11:file命令
file命令是用来检测并显示文件类型。
•命令格式:file [参数] [文件或目录]
•常用参数
•-b 列出辨识结果时,不显示文件名称。
•-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
•-L 直接显示符号连接所指向的文件的类别。
•-v 显示版本信息。
12:chgrp命令与chown命令
chgrp指令用以变更文件与目录所属群组,可采用群组名称或群组识别码进行操作。
•命令格式:chgrp [参数] [更改到的组] [文件或目录]
•常用参数
•-c 当发生改变时输出调试信息
•-R 处理指定目录以及其子目录下的所有文件
•-v 运行时显示详细的处理信息
chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以
是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员
经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的
权限。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。
•命令格式:chown [参数] [所有者] [:所有者组] [文件或目录]
•常用参数:与chgrp一致
13:time命令
time命令用于测算一个命令(即程序)的执行时间。
在程序或命令运行结束后,在最后输出了三个时间,它们分别是:
user:用户CPU时间,命令执行完成花费的用户CPU时间,即命令在用户态中执行时间总和;
system:系统CPU时间,命令执行完成花费的系统CPU时间,即命令在核心态中执行时间总和;
real:实际时间,从command命令行开始执行到运行终止的消逝时间;
•命令格式:time [参数] [命令]
14:linux的帮助命令
简单记住一些即可:help命令只能用于显示内建命令的帮助信息(如help cd),而如果
想要显示外部命令,就要用--help(如ls --help)。man命令没有内建与外部命令的
区分,man命令中的1,2,3章节数分别表示:标准命令,系统调用,库函数。若感觉man
显示的信息都还不够,可以尝试使用info命令。
15:mount命令与umount命令
mount命令用于挂载文件系统到指定的挂载点。
•命令格式:mount [参数] [要挂载的设备名称] [挂载点]
•常用参数
•-a 加载文件“/etc/fstab”中描述的所有文件系统
•-r 将文件系统安装为只读
•-v 详细显示安装信息
•-w 将文件系统安装为可写,为命令默认情况
•-t 指定设备的文件系统类型
•常见的设备文件系统类型为
•nfs 网络文件系统
•ext2 Linux目前常用的文件系统
•ntfs windows NT/2000/xp的文件系统
•-o 指定挂载文件系统时的选项,有些也可以写到/etc/fstab中
•常用的有
•ro 以只读方式挂载
•rw 以读写方式挂载
•loop 挂载回旋设备
•defaults 使用所有选项的默认值(auto、nouser、rw、suid)
•auto/noauto 允许/不允许以 –a选项进行安装
•dev/nodev 对/不对文件系统上的特殊设备进行解释
•exec/noexec 允许/不允许执行二进制代码
•suid/nosuid 确认/不确认suid和sgid位
•user /nouser 允许/不允许一般用户挂载
•codepage=XXX 代码页
•iocharset=XXX 字符集
需要注意的是,挂载点必须是一个已经存在的目录,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用,umount以后会恢复正常。
umount命令用以卸除目前挂在Linux目录中的文件系统。
•命令格式:umount [参数] [设备名称] [挂载点]
umount可分别通过设备名称和挂载点卸载文件系统。即以下三种方式卸载:
umount [参数] [设备名称] [挂载点]
umount [参数] [设备名称]
umount [参数] [挂载点]
•常用参数
•-a 卸除/etc/mtab中记录的所有文件系统
•-v 执行时显示详细的信息
•-t <文件系统类型> 仅卸除选项中所指定的文件系统。
若卸载时显示device busy,是因为有程序正在访问这个设备,最简单的办法就是让访问该设备的程序退出以后再umount。可能有时候用户搞不清除究竟是什么程序在访问设备,如果用户不急着umount,则可以用以下方式来卸载设备。
umount -l 挂载点
选项–l 并不是马上umount,而是在该目录空闲后再umount。还可以先用命令 ps aux 来查看占用设备的程序PID,然后用命令kill来杀死占用设备的进程,这样就umount的非常放心了。
16:命令行管道 |
在命令行中,管道就是用 | 连接两个命令,以前面一个命令的标准输出作为后面命令的标准输入。
•命令格式:command1 | command2
如:ls -al /etc | less
通过管道将前一个命令(ls)的输出作为下一个命令(less)的输入,然后就可以一行一行地看。
常与命令行管道结合使用的一些命令:
•cut
将一段信息的某一段切出来,处理的信息是以行为单位。
•常用格式
•cut -d '分割字符' -f fields
•cut -c 字符范围
参数:
•-d : 后面接分隔符,与-f一起使用;
•-f : 依据-d的分隔符将一段信息切割成为数段,用-f取出第几段的意思;
•-c : 以字符(characters)的单位取出固定字符区间;
例:
echo This is a test | cut -d ' ' -f 3-5
//将This is a test的值按照' '进行分割,后取出第3到5个值
export | cut -c 12-
//对export的输出进行切分,每行输出从第12个字符往后的内容
•grep
可参考前面关于grep的描述
例:
export | grep -in --color=auto 'bin'
//列出export输出中带有bin的行,并给bin加上颜色,不区分大小写,带有行号。
•sort
可以依据不同的数据类型进行排序。
命令格式:sort [参数] [文件或输入]
常用参数:
•-f 忽略大小写
•-b 忽略最前面的空格符
•-M 以月份的名字来排序,如 JAN, DEC等
•-n 使用“数字”进行排序(默认是以文字类型来排序的)
•-r 反向排序
•-u : uniq,相同的数据,仅出现一行代表
•-t : 分隔符,默认是[Tab]来分割
•-k : 用哪个字段来进行排序,与-t相关
例:
cat /etc/passwd | sort -t ':' -k 3 -n
//根据 passwd中每行,按':'分隔符进行分隔后,按照第3个字段使用纯数字的方式进行排序。
•uniq
重复的行只显示一个,uniq命令只能去连续重复的行,不是全文去重
•命令格式:uniq [-ic]
参数:
-i : 忽略大小写
-c : 进行计数,在行首显示改行重复出现的次数
•wc
输出信息的整体数据
•命令格式wc [-lwm]
参数:
-l : 仅列出行
-w : 仅列出多少字(英文单字)
-m : 多少字符
补充
1.locate命令
命令格式:locate pattern
locate用于根据要查找的字符,来在系统中查找与字符相匹配的文件名。
locate与find 不同: find 是去硬盘找,locate 只在/var/lib/slocate资料库中找。
locate的速度比find快,它并不是真的查找,而是查数据库,一般文件数据库在/var/lib/slocate/slocate.db中,所以locate的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为:
locate -u
2. xargs命令
xargs命令可以获取上一个命令的输出并将它作为参数传给其他指令。
管道虽然可以做到将上一个命令的标准输出作为后面命令的标准输入,但是不能将上一个命令的标准输入作为后面命令的命令参数。
如果没有指定确定的指令,xargs会默认执行echo指令。
常用参数:
- -d 选项
默认情况下xargs将其标准输入中的内容以空白(包括空格、Tab、回车换行等)分割成多个之后当作命令行参数传递给其后面的命令,并运行之,我们可以使用 -d 命令指定分隔符,例如:
echo '11@22@33' | xargs echo
输出:
11@22@33
默认情况下以空白分割,那么11@22@33这个字符串中没有空白,所以实际上等价于 echo 11@22@33 其中字符串 ‘11@22@33’ 被当作echo命令的一个命令行参数
echo '11@22@33' | xargs -d '@' echo
输出:
11 22 33
指定以@符号分割参数,所以等价于 echo 11 22 33 相当于给echo传递了3个参数,分别是11、22、33
- -p 选项
使用该选项之后xargs并不会马上执行其后面的命令,而是输出即将要执行的完整的命令(包括命令以及传递给命令的命令行参数),询问是否执行,输入 y 才继续执行,否则不执行。这种方式可以清楚的看到执行的命令是什么样子,也就是xargs传递给命令的参数是什么,例如:
echo '11@22@33' | xargs -p -d '@' echo
输出:
echo 11 22 33
?...y ==>这里询问是否执行命令 echo 11 22 33 输入y并回车,则显示执行结果,否则不执行
11 22 33 ==>执行结果
- -n 选项
该选项表示将xargs生成的命令行参数,每次传递几个参数给其后面的命令执行,例如如果xargs从标准输入中读入内容,然后以分隔符分割之后生成的命令行参数有10个,使用 -n 3 之后表示一次传递给xargs后面的命令是3个参数,因为一共有10个参数,所以要执行4次,才能将参数用完。例如:
echo '11@22@33@44@55@66@77@88@99@00' | xargs -d '@' -n 3 echo
输出结果:
11 22 33
44 55 66
77 88 99
00
- -E 选项
该选项指定一个字符串,当xargs解析出多个命令行参数的时候,如果搜索到-e指定的命令行参数,则只会将-e指定的命令行参数之前的参数(不包括-e指定的这个参数)传递给xargs后面的命令
echo '11 22 33' | xargs -E '33' echo
输出:
11 22
可以看到正常情况下有3个命令行参数 11、22、33 由于使用了-E ‘33’ 表示在将命令行参数 33 之前的参数传递给执行的命令,33本身不传递。等价于 echo 11 22 这里-E实际上有搜索的作用,表示只取xargs读到的命令行参数前面的某些部分给命令执行。
注意:-E只有在xargs不指定-d的时候有效,如果指定了-d则不起作用,而不管-d指定的是什么字符,空格也不行。
常用命令:
1.批量删除某种类型的文件,并在删除前进行确认
find /opt -type d -print0 | xargs -p rm -v -rf
2.找出所有的.png文件并用tar工具进行归档整理
find ~/Downloads/ -name *.png -type f -print0 | xargs -0 tar -cvzf images.tar.gz
补充:xargs 的-0选项不仅可以将分隔符从默认的空格变成 NULL,还会将单引号、双引号、反斜线等统统默认为是普通字符。所以说,-0选项特别适合处理命令参数中含有引号、空格、反斜线的情况。
参考:
https://www.cnblogs.com/lemonbar/archive/2014/08/24/3933390.html
https://www.cnblogs.com/xd502djj/p/3809375.html