常用命令
ls
ls 命令用于显示指定工作目录下内容(列出目前工作目录下所含文件及子目录)
- ls -a : 列出当前目录下的所有文件,包括以.头的隐含文件
- ls -l或ll : 列出当前目录下文件的详细信息
- ls [0-9] : 显示包含数字的文件名和目录名
pwd
- pwd 命令用于显示工作目录
- pwd : 查看当前所在目录的绝对路径
cd
cd 命令用于切换当前工作目录至dirName 其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的home目录 "~" 也表示为home 目录,"."则是表示目前所在的目录,".."表示目前目录位置的上层目录
- cd .. : 回当前目录的上级目录
mkdir
mkdir 命令用于建立目录
- mkdir 目录名 : 创建一个目录
- mkdir -p test/testing:递归式去创建一些嵌套目录(在当前目录下的test目录中,建立一个名为testing的子目录。若test目录不存在,则建立一个)
rmkdir
rmkidr 命令从一个目录删除一个或多个子目录,删除目录时也必须具有对其父目录的写权限 注意:不能删除非空目录
rm
rm 命令用于删除一个文件或目录
- 参数
- -i : 删除已有文件或目录之前先询问用户
- -r : 递归处理,将制定目录下的所有文件与子目录一并处理
- -f : 强制删除文件或目录
- rm 文件名 文件名 : 删除一个 文件或多个文件
- rm -rf 非空目录名 :递归删除一个非空目录下的一切
- rm -r * : 删除当前目录下的所有文件及子目录
- 删除文件可以直接使用rm 命令,若删除目录则必须配合选项"-r"
cat
cat 命令用于连接文件并打印到标准输出设备上 cat 主要有三大功能:
- 一次显示整个文件
$ cat fileName
- 从键盘创建一个文件
$ cat > fileName : 只能创建新文件,不能编辑已有文件
- 将几个文件合并为一个文件
$ cat file1 file2 > file
- 常用参数
- -b 对非空输出行号
- -n 输出所有行号
- 实例
- 把log1.log的文件内容加上行号后输入long2.long这个文件里
cat -n log1.log log2.log
- 把log1.log、log2.log和log3.log的文件内容加上行号(空白含不加)之后的内容附加到log.log里
cat -b log1.log log2.log log3.log log.log\
- 使用here doc生成新文件
cat >log.txt <<EOF
>Hello
>World
>PWD = $(pwd)
>EOF
$ ls -l log.txt
$ cat log.txt
Hello
World
PWD=当前工作目录绝对路径
- 反向展示
tac log.txt
more
more 命令类功能似于 cat,more 会以一页一页的显示,方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按back键就会往回一页显示
- 参数命令
- +n : 从第n行开始显示
- -n : 一次显示的行数
- -s : 当遇到连续两行以上的空白行,就代换为一行的空白行
- 常用操作命令
- Enter : 向下n行,需要定义。默认为1行
- 空格键 : 向下滚动一屏
- Ctrl+b : 返回上一屏
- !命令 : 调用Shell,并执行命令
- q : 退出more
- 实例
- 显示文件中从第3行起的内容
$ more +3 Example.txt
- 在所列出文件目录详细信息,借助管道使每次显示5行
$ ls -l | more -5
less
less与more 类似,但使用less可以随意浏览文件,而more 仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件
- 常用命令
- -i : 忽略搜索时的大小写
- -b : 设置缓冲区的大小
- -e : 当文件显示结束后,自动离开
- 实例
- 查看文件
less log1.log
- ps查看进程信息并通过less分页显示
ps -ef | less
- 查看命令历史使用记录并通过less分页显示
history | less
- 浏览多个文件
less log1.log log2.log
head
head命令用来将一个或多个文件或管道数据的第一行(默认为10行)打印到标准输出中,该命令正好和tail命令互补
- 常用参数
- -n : 显示行数
- 实例
- 显示1.log文件中前20行
head -n 20 1.log
- 显示1.log文件中前20字符
head -c 20 1.log
- 显示1.log最后的5到10行
tail -n 10 1.log | head -n 5
tail
tail 命令用于查看日志文件
- 常用参数:
- -f : 循环读取(常用于查看递增的日志文件)
- -n : 显示
- 实例
- 读取日志文件
ping 127.0.0.1 > ping.log & (后台运行:可使用jobs -l查看,也可使用fg将其移动到前台运行) 执行此命令后在当前目录下生成日志文件ping.log tail -f ping.log
mv
mv 命令用来移动或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命名该文件) 当第二参数为目录时,可将多个文件空格分割作为第一参数,移动多个文件到参数2指定的目录中
- 实例 (1) 将文件test.log重命名为test.txt mv test.log test.txt (2) 将文件log1.txt,log2.txt,log3.txt移动到根test3目录中 mv log1.txt log2.txt log3.txt /test3 (3) 将文件test.log 改名为file.log,如果file已存在,则询问是否覆盖 mv -i test.log file.log (4) 移动当前文件夹下的所有文件到上一级目录 mv * ../
cp
cp 命令主要用于复制文件或目录
- 语法: cp [option] source dest 或 cp [option] source ... directory
- 参数说明 -a : 此选项通常在复制目录时使用,它保留连接、文件属性、并复制目录下的所有内容。其作用等于dpr参数组合 -d : 复制时保留连接。 -f : 覆盖已存在的目标文件而不给出提示 -i : 与选项-f相反,在覆盖已存在目标文件前给出提示,要求用户确认是否覆盖,回答“y”时目标文件将被覆盖 -p : 除复制文件的内容,还把修改时间和访问权限也复制到新文件中 -r : 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件 -l : 不复制文件,只是生成链接文件
- 实例 (1) 复制a.txt到testing目录下,保持原文件时间,如果原文件存在提示是否覆盖 cp -ai a.txt test (2) 为a.txt建议一个链接 cp -l a.txt link_a.txt (3) 将当前目录"test/"下的所有文件复制到新目录“newtest”下 cp -r test/ newtest
scp
scp 命令用于linux之间复制文件和目录 scp 是linux系统下基于ssh登陆进行安全的远程文件拷贝命令 scp 是加密的,rcp是不加密的,scp是rcp的加强版
- 语法 scp [可选参数] file_source file_target
- 参数说明 -1 : 强制scp命令使用协议 ssh1 -2 : 强制scp命令使用协议 ssh2 -4 : 强制scp命令只使用IPv4寻址 -6 : 强制scp命令只使用IPv6寻址 -B : 使用批处理模式 -C : 允许压缩 -p : 保留原文件的修改时间,访问时间和权限 -q : 不显示传输进度条 -r : 递归复制整个目录
- 实例 (1) 从本地复制到远程 命令格式: scp local_file remore_username@remote_folder 或者 scp loacl_file remote_username@remote_ip:remote_file 或者 scp local_file remote_ip:remote_folder 或者 scp local_file remote_ip:remote_file 指定用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名称不变,第二个指定了文件名 3,4 个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名不变,第4个指定了文件名 应用实例: scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/other/music scp /home/space/music/1/mp3 root@www.rumoob.com:/home/root/other/music/001.mp3 scp /home/space/music/1/mp3 www.rumoob.com:/home/root/other/music scp /home/space/music/1/mp3 www.rumoob.com:/home/root/other/music/001.mp3 复制目录命令格式: scp -r local_folder remote_username@remote_ip:remote_folder 或者 scp -r remote_ip:remote_folder 应用实例: scp -r /home root@www.runoob.com:/home scp -r www.runoob.com:/home (2) 从远程复制到本地 从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可,如下实例 scp root@www.runoob.com:/home /home/1.mp3 scp www.runoob.com:/home /home (3) 如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用-P参数来设置命令的端口号,命令格式如下: #scp 命令使用端口号4588 scp -P 4588 remote@www.runoob.com:/usr/local/sin.sh /home/administrator 注意:使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的
which
在linux要查找某个文件,但不知道放在那里了,可以使用下面的一些命令来搜索: which 查找可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文件名称
which是在PATH就是指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果。使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
- 常用参数
- 查看ls命令是否存在,执行那个
which ls
- 查看which
which which
- 查看cd
which cd
whereis
whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(-b)、man说明文件(-m)和源代码文件(-s)。如果省略参数,则返回所有信息。whereis及locate都是基于系统内建的数据库搜索,因此效率很高,而find则是遍历硬盘查找文件。
- 常用参数:
- -b : 定位可执行文件
- -m : 定位帮助文件
- -s : 定位源代码文件
- -u : 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件
- 实例
- 查找locate程序相关文件
whereis locate
- 查找locate的源码文件
whereis -s locate
- 查找locate的帮助文件
whereis -m locate
locate
locate 通过搜寻系统内建文档数据库达到快速找到档案,数据库由updatedb程序来更新,upatedb是由cron daemon周期性调用的。默认情况下locate命令在搜寻数据库时比在由整个硬盘进行资料搜寻快,但较差劲的是locate所找到的档案若是最近才建立或刚更名的,可能会找不到,在内定值中,updatedb每天会跑一次,可以由修改crontab来更新设定值。locate与find命令相似,可以使用如*、?等进行正则匹配查找
- 常用参数 -l : 要显示的行数 -f : 将特定的档案系统排除在外,如将proc排除在外 -r : 使用正则运算式作为查询条件
- 实例
- 查找和pwd相关的素有文件
locate pwd
- 搜索etc目录下所有以sh开头的文件
locate etc/sh
- 查找/var目录下,以reason结尾的文件
locate -r '^/var.*reason$'
find
find 命令用于在文件树中查找文件,并作出相应的处理
- 命令格式
- find pathname -options [-print -exec -ok ...]
- 参数命令
- pathname : find命令所查找的目录路径。例如用.表示当前目录,用/来表示系统根目录。
- -print : find命令将匹配的文件输出到标准输出
- -exec : find命令对匹配的文件执行该参数所给出的shell命令。 相应命令的形式为'command'{};,,注意{}和;之间的空格。
- -ok : 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行
- 命令选项
- -name : 按照文件名查找文件
- -perm : 按文件权限查文件
- -user : 那文件属主查找文件
- group : 按文件所属组来查找文件
- -type : 查找某一类型的文件,诸如: b - 块设备文件、d - 目录、c - 字符设备文件、 l - 符号链接文件、p - 管道文件、f - 普通文件
- -sise n:[c]: 查找文件长度为n块文件,带由c时表文件字节大小
- -amin n : 查找系统中最后n*24小时访问的文件
- -cimn n : 查找系统中最后N分钟被改变文件状态的文件
- ctime n : 查找系统中最后n*24小时被改变文件状态的文件
- -mmin n :查找系统中最后N分钟被改变文件数据的文件
-
- mtime n : 查找系统中最后n*24小时被改变文件数据的文件(用减号来限定更改时间在距今n日以内的文件,而用加号来限定更改时间在距今n日以前的文件)
- -maxdepth n : 最大查找目录深度
- -prune : 选项来指出需要忽略的目录
- 实例
- 查找48小时内修改过的文件
find -mtime -2
- 在当前目录查找以.log结尾的文件
find ./ -name '*.log'
- 查找/opt目录下权限为777的文件
find /opt -prem 777
- -exec 参数后面面跟的时command命令,它的终止是以";"结束标志的,所以这句命令后面的分号是不可缺少,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。{}括号代表前面find查找出来的文件名。
- 实例
- 在当前目录中查找更改时间在10日以前的文件并删除它们
- find .-type f -mtime +10 -exec rm -f{} ;
- 在当前目录中查找所有文件名以.log 结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。按y键删除文件,按n键不删除
find .-name '*.log' -mtime +5 -ok -exec rm {} ;
- 当前目录下查找文件名以passwd开头,内容包含"pkg"字符的文件
find . -name 'passwd*' -exec grep 'pkg'{} ;
- 用exec选项执行cp命令
find . -nanme '.log' -exec cp {} test3 ;
- -xargs find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以下处理最先获取的一部分文件,然后是下一批,并如此继续下去
- 实例
- 查找当前目录下每个普通该文件,然后使用xargs来判断文件类型
find .-type f -print |xargs file
chmod
Linux的文件调用权限分为三级:文件拥有者于者、群组、其他。
每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中的其他用户的读、写和执行权限。
以文件ping.log 为例:
-rwxr--r-- 1 root 50k 11-13 06:03 ping.log 第一列共有10个位置,第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第一个字符是“-”横线,表示是一个非目录文件,如果是d,表示是一个目录文件。从第二个字符开始到第十个共9个字符,3个字符一组,分别表示3组用户对文件或者目录的权限。权限字符用“-”横线代表空许可,r代表只读,w代表写,x代表可执行。
- 常用参数
- -c : 当发生改变时,报告处理信息
- -R : 处理指定目录以及其子目录下所有文件
- 权限范围
- u : 目录或文件的当前的用户
- g : 目录或者文件的当前的群组
- O : 除了目录或者文件的当前用户或者群组之外的用户或者群组
- a : 所有的用户及群组
- 权限代号:、
- r : 读权限,用数组4表示
- w : 写权限,用数组2表示
- x : 执行权限,用数字1表示
-
- : 表示增加权限
- = : 表示唯一设定权限
-
- : 删除权限,用数字0表示
- s : 特殊权限
- 实例
- 增减文件ping.log 所有用户可执行权限
chmod a+x ping.log
- 撤销原来所有的权限,然后使拥有者具有可读写权限,并输出处理信息
chmod u=r ping.log -c
- 给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
chmod 751 ping.log 或者 chmod u=rwx,g=rx,o=x ping.log
- 将test目录及其子目录所有文件添加可读权限
chmod u+r,g+r,o+r -R test/ -c
注意:若用chmod 4755 filename 可使此程序具有root的权限
chown
chown 命令指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符
- -c : 显示更改的部分的信息
- R : 处理指定目录及子目录
- 实例
- 改变拥有者和群组 并显示改变信息
chown -c mail:mail 1og.log
- 改变文件群组
chown -c :mail log.log
- 改变文件夹即子文件目录属主即属组为mail
chown -cR mail:mail test/
df
df命令用来显示磁盘空间使用情况。获取硬盘被占用了多少空间,目前还剩下多少空间等信息,如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。默认情况下,磁盘空间将以1KB为单位进行显示,除非环境变量POSIXL_CORRECT被指定,那样将以512字节为单位进行显示
- 参数
- -a : 全部文件系统列表
- -h : 以方便阅读的方式显示信息
- -i : 显示inode信息
- -k : 区块为1024字节
- -l : 只显示本地磁盘
- -T : 列出文件系统类型
- 实例
- 显示磁盘使用情况
df -l
- 以易阅读方式列出所有文件系统及其类型
df -haT
- 显示文件系统的磁盘使用情况统计
df
du
du命令也是查看使用空间,但是与df命令不同的是linux du命令是对文件和目录磁盘使用的空间的查看。
- 命令格式
- du [选项][文件]
- 常用参数
- -a : 显示目录中所有文件大小
- -k : 以kb为单位显示文件大小
- -m : 以mb为单位显示文件大小
- -g : 以gb为单位显示文件大小
- -h : 以易阅读方式显示是文件大小
- -s : 仅显示总计
- -c : 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和
- 实例
- 以易阅读方式显示文件夹内及子文件夹大小
du -h scf/
- 以易阅读方式显示文件夹内所有文件大小
du -ah scf/
- 显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和
du -hc test/ scf
- 输出当前目录下各个子目录所使用的空间
du -hc --max-depth=1 scf
fdisk
fdisk 是linux的磁盘分区表操作工具
- 语法 fdisk [-l] 装置名称
- 参数
- -l : 输出后面接的装置所有的分区内容。若仅有fdisk -l时,则系统将会把整个系统内能够搜寻到的装置的分区均列出来。
mkfs
磁盘分割完毕后自然就是要进行文件系统的格式化,格式化的命令非常的简单,使用mkfs命令
- mkfs [-t] 装置文件名
- 实例
- 查看mkfs支持的文件格式
mkfs [tab][tab] 按下两个tab,就会发现mkfs支持的
- 将分区/dev/hdc6格式化为ext3文件系统
mkfs -t ext3 /dev/hdc6
fsck
fsck 磁盘检验,用来检查和维护不一致的文件系统。若系统掉电或磁盘放生问题,可利用fsck命令对文件系统进行检查
mount/umount
Liunx的磁盘挂载使用mount命令,卸载使用umount命令
ln
ln 功能是为文件在另外一个位置建立一个同步的链接,当在不同目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接它就可以,不必重复的占用磁盘空间
- 语法
- ln [参数][源文件][目标文件或目录]
- 命令功能 Linux 文件系统中,有所谓的链接,我们可以将其视为档案的别名,而链接有可以分为两种:硬链接和软链接,硬链接的意思是一个档案可以有多个名称,而软连接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
- 软链接
- 软链接,以路径的形式存在。类似与Windows操作系统中的快捷方式
- 软链接可以跨文件系统,硬链接不可以
- 软链接可以对一个不存在的文件名进行链接
- 软连接可以多目录进行链接
- 硬链接
- 硬链接,以文件副本的形式存在。但不占用实际空间
- 不允许给目录创建硬链接
- 硬链接只有在同一个文件系统中才能创建
- 命令参数
- -b : 删除,覆盖以前建立的链接
- -d : 允许超级用户制作目录的硬链接
- -f : 强制执行
- -i : 交互模式,文件存在则提示用户是否覆盖
- -n : 把符号链接视为一般目录
- -s : 软连接(符号链接)
- -v :显示详细的处理过程
- 实例
- 给文件创建软链接,为log1.log文件创建软链接link2020,如果log1.log丢失,link2020将失效
ln -s log1.log link2020
- 给文件创建硬链接,为log1.log创建ln2020,log1.log和ln2020的各项属性相同
ln log1.log ln2020
- 给目录创建软链接
ln -s /opt/soft/test/test3 /opt/soft/test/test5
date
date 命令用于显示或设定系统的日期与时间
- 命令参数
- -d<字符串> : 显示字符串所指的日期与时间。字符串前后必须加上双引号
- -s<字符串> : 根据字符串来设置日期与时间。字符串前后必须加上双引号
- -u : 显示GMT
- %H : 小时(00-23)
- %l :小时(00-12)
- %M : 分钟(00-59)
- %s : 总秒数。起算时间为1970-01-01 00:00:00UTC
- %S : 秒(以本地的惯用法来表示)
- %a : 星期的缩写
- %d : 日期(01-31)
- %m : 月份
- %y : 年份(00-99)
- %Y : 年份(以四位数来表示)
- 实例
- 显示下一天
date +%Y%m%d --date="+1 day"
- -d参数使用
date -d "nov 22" date -d "2 weeks" date -d "next monday"
cal
可以显示公立日历如只有一个参数,则表示年份(1-9999),如有连个参数,则表示月份和和年份
- 常用参数
- -3 : 显示前一月,当前月,后一月三月的日历
- -m : 显示星期一为第一列
- -j : 显示在当前年第几天
- -y : 显示当前年份的日历
- 实例
- 显示指定年月日期
cal 9 2019
- 显示2013年每个月日历
cal -y 2019
- 将星期一做为第一列,显示前中后三月
cal -3m
grep
grep 命令用于查找文件里符合条件的字符串
grep 指令用于查找内容包括指定的范本样式的文件,如果发现其文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为“-”,则grep指令会从标准输出设备读取数据。
- 参数
- -a或--text : 不要忽略二进制的数据
- -A<显示行数n>或者--after-context=<显示行数> : 显示匹配字符后n行
- -B n --before-context : 显示匹配字符前n行
- -C n --context : 显示匹配字符前后N行
- -c --count : 计算符合样式的列数
- -i : 忽略大小写
- -l : 只列出文件内容符合指定的样式文件名
- -f : 从文件中读取关键字
- -n : 显示匹配内容的所在文件中行数
- -R : 递归查找文件夹
- grep的规则表达式
- ^ #描定行的开始,如:'^grep'匹配所有以grep开头的行
- #锚定行的结束,如:'grep$'匹配所有以grep结尾的行
- . #匹配一个非换行符的字符,如:'gr.p'匹配gr后接一个任意字符,然后是p
-
- #匹配零个或多个先前字符,如:'*grep' 匹配所有一个或多个空格后紧跟grep的行
- .* #一起用代表任意字符
- [] #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep
- [^] #匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包括含A-R和T-Z的一个个字母开头,紧跟rep的行
- 实例
- 查找指定进程
ps -ef |grep svn
- 查找指定进程个数
ps -ef |grep svn -c
- 从文件中读取关键词
cat test.log |grep -f key.log
- 从文件夹中递归查找以grep开头的行,并只列出文件
grep -lR '^grep' /tmp
- 查找非X开关的行内容
grep '[1]' test.txt
#wc wc 命令是统计指定文件中字节数,字数、行数,并将统计结果输出
- 命令格式 wc [option] file
- 命令参数
- -c : 统计字节数
- -l :统计行数
- -m : 统计字符数
- -w : 统计词数,一个字被定义为有空白、跳格或换行字符分隔的字符串
- 实例
- 统计输出结果的行数
cat test.txt |wc -l
ps
ps 命令用来查看当前运行进程的状态,一次性查看,如果需要动态连续结果使用top
- Linux上进程有5中状态
- 运行(正在运行或在运行队列中等待)
- 中断(休眠中、受阻、在等待某个条件的形成或接受到信号)
- 不可中断(收到信号不换醒和不可运行,进程必须等待直到有中断发生)
- 僵死(进程已终止,但进程描述符存在,直到父进程调用wait4()系统调用后释放)
- 停止(进程收到SIGSOP,SIGTOU信号后停止运行)
- ps工具标识进程的5中状态码
- D 不可中断
- R 运行
- S 中断
- T 停止
- Z 僵死
- 命令参数:
- -A : 显示所有进程
- a : 显示所有进程
- -a : 显示同一终端下所有进程
- c : 显示进程真实名称
- e : 显示环境变量
- f : 显示进程间的关系
- r : 显示当前终端运行的进程
- -aux : 显示所有包含其他使用的进程
- 实例
- 显示当前所有进程环境变量及进程间关系
ps -ef
- 显示当前所有进程
ps -A
- 与grep连用查找某进程
ps -aux | grep apache
- 找出与cron 与syslog 这连个服务有关的PID 号码
ps -aux |grep '(cron|syslog)'
top
top 命令用来显示当前系统正在执行的进程的相关信息,包括进程id、内存占用率、CPU占用率等
- 常用参数
- -c : 显示完整的进程命令
- -s : 保密模式
- -p<进程号> : 指定进程显示
- -n<次数> : 循环显示次数
- 实例
- 显示进程信息
top
- 显示完整命令
top -C
- 以累计模式显示进程信息
top -S
- 以批处理模式显示程序信息
top -b
- 显示指定进程信息
top -p 139
- top交互命令
- h : 显示top交互命令帮助信息
- c : 切换显示命令名称和完成命令行
- m : 以内存使用率排序
- p : 根据CPU使用百分比大小进程排序
- T : 根据时间/累计时间进行排序
- W : 将当前设置写入~./toprc文件中
- o或者O 改变显示项目的顺序
kill
kill 命令用于删除执行中的程序或者工作
kill可将指定的信息送至程序。预设的信息为SIGTER(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKIll(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看。
- 常用参数
- -l : 信号,如果不加信号的编号参数,则使用"-l"参数会列出全部的信号名称
- -a : 当处理当前进程时,不限制命令名和进程号的对应关系
- -p : 指定kill命令只打印相关进程的进程号,而不发送任何信号
- -s : 指定发送信号
- -u : 指定用户
- 实例:
- 先使用ps 查找进程pro1 ,然后用kill 杀掉进程
kill -9 $(ps -ef |grep pro1)
- 杀死进程
kill 12345
- 强制杀死进程
kill -KIll 12345
- 发送SIFHUP信号,可以使用下一信号
kill -HUP pid
free
free 显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存
- 常用参数
- -b : 以Byte显示内存使用情况
- -k : 以kbx为单位显示内存使用情况
- -m : 以mb为单位显示内存使用情况
- -s<间隔秒数> : 持续显示内存
- -t : 显示内存使用总和
- 实例
- 显示内存使用情况
free -b free -k free -m
- 以总和的形式显示内存的使用信息
free -t
- 周期性查询内存使用情况
free -s 10
tar
tar命令用来压缩和解压文件。tar本省不具有压缩功能,只具有打包功能,有关压缩及解压缩是调用其他的功能来完成。弄清两个感念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件
- 常用参数
- -c : 建立新的压缩文件
- -f : 指定压缩文件
- -r : 添加文件到已经压缩文件包中
- -u : 添加改了和现有的文件到压缩包中
- -x : 从压缩包中抽取文件
- -t : 显示压缩文件中的内容
- -z : 支持gzip压缩
- -j : 支持bzip2压缩
- -Z : 支持compress解压文件
- -v : 显示操作过程
- 有关gzip及bzip2压缩
- gzip实例: 压缩gzip fileName.tar和.tgz 解压:gunzip fileNmae.gz或gzip -d filename.gz 对应 tar zvf filename.tar.gz tar zxvf filename.tar.gz
- bz2实例:压缩bzip2 -z filename.tar.bz2 解压: bunzip filename.bz2或bzip -d filename.bz2 对应: tar jcvf filename.tar.gz 解压: tar jxvf filename.tar.bz2
- 实例
- 将文件全部打包成tar包
tar -cvf log.tar 1.log,2.log 或 tar -cvf log.*
- 将/etc下的所有文件及目录打包到指定目录,并使用gz压缩
tar -zcvf /tmp/etc.tar.gz /etc
- 查看刚打包的文件内容(一定加z,应为是使用gzip压缩的)
tar -zxvf /tmp/etc.tar.gz
- 要压缩打包/home, /etc 但不要/home/dmtsai
tar --exclude/home/dmtsai -zcvf myfile.tar.gz /home/* /etc
- 压缩文件,非打包
touch a.c tar -czvf test.tar.gz a.c //压缩a.c文件为test.tar.gz
- 列出压缩文件内容
tar -tzvf test.tar.gz
- 解压文件
tar -xzvf test.tar.gz
gzip
gzip 命令用于压缩文件 gzip 是个使用广泛的压缩程序,文件经过它压缩后,其名称后面会多出".gz"的扩展名
- 常用参数 -a : 使用ASCll文件模式 -c : 把压缩后的文件输出到标准输出设备,不去更动原始文件 -d : 解开压缩文件 -f : 强行压缩文件 -v : 显示版本信息 -l : 列出压缩文件的相关信息
- 实例
- 压缩目录下的所有文件
gzip .*
- 解压文件,并列出详细信息
gzip -dv *
- 显示压缩文件的信息
gzip -l *
zip
zip命令用于压缩文件,zip是个使用广泛的压缩程序,文件经过压缩后会另外产生具有".zip" 扩展的压缩文件。
- 常用参数
- -A : 调整可执行的自动解压所文件
- -b : 指定暂时存放文件的目录
- -c : 替每个压缩的文件加上注释
- -d : 从压缩文件内删除指定文件
- -D : 压缩文件内不建目录名称
- -q : 不显示指令执行过程
- -r : 递归处理,将指定目录下的所有文件和子目录一并处理
su
su命令用于变更为其他使用者的身份,除root外,需要键入该使用者的密码
- 语法 su [-fmp][-c command][-s shell][--help][--version][-][USER][ARG]
- 参数说明
- -f : 不必读启动档
- -m : 执行su时不该改变环境变数
- -c : 变更为账号为USER的使用者并执行指令后再变回原来使用者
- 实例
- 变更账号为root并在执行ls指令后推出变回原使用者
su -c ls root
- 变更账号为root并传入-f参数给新执行的shell
su root -f
- 显示当前用户
whoami
rpm
rpm 命令是RPM软件包的管理工具。rpm原本是red hat linux 发现版专门用来管理linux各项套件的程序,由它遵循GPL规则且功能方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让linux易于安装,升级,间接提升了linux的适用度。
- 参数说明
- -a : 查询所有套件
- -b : 设置包装套件的完成阶段,并指定套件当的文件名称
- -c : 只列出组态配置文件,本参数需配合"-l"参数使用
- -e : 删除指定的套件
- -f : 查询拥有指定文件的套件
- -h : 套件安装时列出标记
- -i : 显示套件的线管信息
- -l : 显示套件的文件列表
- -p : 超炫指定的PRM套件档
- -q : 使用询问模式,当遇到任何问题时,rpm指令会先询问用户
- -v : 显示指令执行过程
- 实例
- 安装软件
rpm -hvi dejagnu-1.4.2.noarch.rpm
xargs
xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。 xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。 xargs 也可以将单行或多行文本输入转换为其他格式。 xargs 默认的命令时echo,这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。 xargs 是一个强有力的命令,它能够捕捉一个命令的输出,然后传递给另外一个命令。之所以竜用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中由这个必要,所以就有了xargs命令,例如:
- find /sbin -perm +700 |ls -l //错误的命令
- find /sbin -perm +700 |xargs ls -l //这样才是正确的
- xargs 一般是和管道一起使用
- 常用参数
- -a file : 从文件中读入作为sdtin
- -e flag : 注意有的时候可能会是-E,flag必须是一个以空格分隔的标志,当xargs分析到含有flag这个标志的时候就停止
- -p : 当每次执行一个argument的时候询问一次用户
- -n n: 表示命令在执行的时候一次用的argument的个数,默认是用所有的
- -t : 表示先打印命令,然后执行
- 实例
- 多行输入如当行输出
cat test.txt |xargs
- -n 选项多行输出
cat test.txt |xargs -n3
- 查找所有的jpg文件,并压缩它们
find .type -f -name "*.jpg" -print |xargs tar -czvf image.tar.gz
^x ↩︎