Linux常用命令

文章目录

    • 基础概念
        • 通配符
        • 文件/目录权限
    • 文件管理类
      • 文件信息查看
        • 显示目录列表ls
        • 显示当前工作目录pwd
        • 切换目录cd
        • 创建目录mkdir
        • 复制目录或文件cp
        • 移动/重命名目录或文件mv
        • 删除目录或文件rm
      • 文件查找
        • 普通文件查找find
        • 程序文件查找whereis
        • 查找命令位置which
      • 文件内容查看
        • 显示文件内容cat
        • 逐页显示文件内容more/less
      • 文件编辑处理
        • 文件内容查找grep
        • 文件域排序sort
      • 文件/目录属性操作
        • 变更文件/目录权限chmod
      • 文件压缩与解压缩
        • gzip
        • 打包/解包tar
    • 进程管理类
      • 查看进程
        • 查看进程信息ps
        • 查看进程树pstree
        • 动态查看进程运行状况top
      • 进程控制
        • 删除进程/程序kill
        • 后台运行命令&
        • 退出时继续执行命令nohup
    • I/O管理类
      • 输入输出重定向操作符
        • 输出重定向> >>
        • 输入重定向< <<
      • 管道操作
        • 管道操作符|

基础概念

通配符

在查询时可使用通配符进行处理

*代表任意字符(0到多个)
代表一个字符
[ ] 中间为字符组合,仅匹配其中任一一个字符

文件/目录权限

每个文件/目录权限分三种,创建该文件的用户,该用户所在的属组,其他人

每种用户可进行的操作有三种r为读,w为写,x为可执行

每种操作1代表有,0代表无,三种操作通常连在一起(rwx)可组成一个二进制数字代表其权限操作,直接使用十进制表示。

文件管理类

文件信息查看

显示目录列表ls

ls -a 列出目录所有文件,包含以.开始的隐藏文件
ls -A 列出除.及…的其它文件
ls -r 反序排列
ls -t 以文件修改时间排序
ls -S 以文件大小排序
ls -h 以易读大小显示
ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来

显示当前工作目录pwd

pwd 用于显示当前工作目录

切换目录cd

cd / 进入目录

cd ~ 进入 “home” 目录

cd - 进入上一次工作路径

cd !$ 把上个命令的参数作为cd参数使用。

.代表当前目录

…代表上一层目录

创建目录mkdir

  • -m: 对新建目录设置存取权限,也可以用 chmod 命令设置;
  • -p: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录。

复制目录或文件cp

cp 【源】【目的】

将源文件复制至目标文件,或将多个源文件复制至目标目录。

注意:命令行复制,如果目标文件已经存在会提示是否覆盖,而在 shell 脚本中,如果不加 -i 参数,则不会提示,而是直接覆盖!

-i 提示

-r 复制目录及目录内所有项目

-b 复制时如果覆盖已存在目标文件则将目标文件备份自动备份

-r 递归复制目录下的所有内容

-a 复制的文件与原文件时间一样

移动/重命名目录或文件mv

mv 【源】【目的】

-i 提示

-f 若目标存在则强制覆盖

-b 若目标存在则覆盖前备份

-v 显示文件移动信息

删除目录或文件rm

-i 提示

-f 强制删除文件/目录

-r/-R 递归处理,目录下的全部删除

-v 显示删除具体信息

文件查找

普通文件查找find

用于在指定目录下查找符合匹配条件的文件

find pathname -options [-print -exec -ok ...]

pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ { } ;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

参数选项(可使用! -a -o连接多个可选控制参数分别代表非、与、或):

-name 按照文件名查找文件
-perm 按文件权限查找文件
-user 按文件属主查找文件
-group  按照文件所属的组来查找文件。
-type  查找某一类型的文件,诸如:
   b - 块设备文件
   d - 目录
   c - 字符设备文件
   l - 符号链接文件
   p - 管道文件
   f - 普通文件

-size n :[c] 查找文件长度为n块文件,带有c时表文件字节大小
-amin n   查找系统中最后N分钟访问的文件
-atime n  查找系统中最后n*24小时访问的文件
-cmin n   查找系统中最后N分钟被改变文件状态的文件
-ctime n  查找系统中最后n*24小时被改变文件状态的文件
-mmin n   查找系统中最后N分钟被改变文件数据的文件
-mtime n  查找系统中最后n*24小时被改变文件数据的文件
(用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件。 )
-maxdepth n 最大查找目录深度
-prune 选项来指出需要忽略的目录。在使用-prune选项时要当心,因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略
-newer 如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项

实例:

(1)查找 48 小时内修改过的文件

find -atime -2

(2)在当前目录查找 以 .log 结尾的文件。 . 代表当前目录

find ./ -name '*.log'

(3)查找 /opt 目录下 权限为 777 的文件

find /opt -perm 777

(4)查找大于 1K 的文件

find -size +1000c

(5)查找等于 1000 字符的文件

find -size 1000c 

(6)查找不是以.txt结尾的文件

find . ! -name "*.txt"

!代表非

(7)查找以x开头并小于13字节的文件

find . -name "x*" -a -size 13

-a 代表与

程序文件查找whereis

whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。whereis 及 locate 都是基于系统内建的数据库进行搜索,因此效率很高,而find则是遍历硬盘查找文件。

-b   定位可执行文件。
-m   定位帮助文件。
-s   定位源代码文件。
-u   搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。

实例:

(1)查找 mv 程序相关文件

whereis mv

查找命令位置which

which 是在 PATH 就是指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果。使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

实例:

(1)查看 ls 命令是否存在,执行哪个

which ls

(2)查看 which

which which

(3)查看 cd

which cd(显示不存在,因为 cd 是内建命令,而 which 查找显示是 PATH 中的命令)

查看当前 PATH 配置:

echo $PATH

或使用 env 查看所有环境变量及对应值

文件内容查看

显示文件内容cat

cat 文件名

-b 对非空输出行号

-n 输出所有行号

-s 缩减空行,如果有两个及其以上空行则缩减为一个空行

逐页显示文件内容more/less

功能类似于 cat, more 会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示。

+n 从笫 n 行开始显示
-n 定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c 从顶部清屏,然后显示
-d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l 忽略Ctrl+l(换页)字符
-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s 把连续的多个空行显示为一行
-u 把文件内容中的下画线去掉

查看时的操作:

Enter 向下 n 行,需要定义。默认为 1 行
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more

less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

文件编辑处理

文件内容查找grep

grep 命令用于查找文件里符合条件的字符串。

grep 【参数】查找字符串 【文件/目录】

-A 显示行数

-n 显示匹配行及行号

-r/R 搜索整个目录树(递归)

如果查找多个字符串,查找字符串之间可以使用\隔开

文件域排序sort

既然是排序,那么文件必须遵循某一特定的格式,文件由多个域组成,每个域按照空格进行隔开,将按照每行的域进行排序

-f 排序时,将小写字母视为大写字母。

-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。

-n 依照数值的大小排序。

-u 意味着是唯一的(unique),输出的结果是去完重了的。

-k【域索引】域索引是一个数字,代表每一行的第几个域,按照该域进行排序,索引从1开始

-m 将几个排序好的文件进行合并。

文件/目录属性操作

变更文件/目录权限chmod

有两种方式,十进制数字表示法直接赋予相应权限

chmod 777 file

或者按照参数使用符号:

chmod 【参数】mode 【文件/目录]

mode : 权限设定字串,格式如下 :

[ugoa...][[+-=][rwxX]...][,...]

其中:

  • u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
  • + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
  • r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

常用参数:

-v : 显示权限变更的详细资料

-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)

文件压缩与解压缩

gzip

压缩为gz格式的压缩文件,默认情况下是压缩,带参数-d则为解压缩

gzip 【参数】 文件/目录

-d或–decompress或----uncompress  解开压缩文件。

-v或–verbose  显示指令执行过程。

-r 压缩目录下的所有文件(递归)

打包/解包tar

tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。

tar 【参数】包文件 待打包文件

-v或–verbose  显示指令执行过程。

-c 建立新的备份文件,即源文件(待打包文件)仍保存

-t 列出包文件里的内容

-f 指定备份文件名,后面跟着备份文件名

-x 解包文件,后面跟着解包文件名

-z 通过gzip指令处理备份文件。

-C 解包时解包到指定目录下,后面跟着指定目录

实例

压缩文件 非打包

# touch a.c       
# tar -czvf test.tar.gz a.c   //压缩 a.c文件为test.tar.gz
a.c

列出压缩文件内容

# tar -tzvf test.tar.gz 
-rw-r--r-- root/root     0 2010-05-24 16:51:59 a.c

解压文件

# tar -xzvf test.tar.gz 
a.c

进程管理类

查看进程

查看进程信息ps

ps命令用于显示当前进程 (process) 的状态。

ps 【参数】

  • -A 列出所有的进程
  • -w 显示加宽可以显示较多的资讯

使用ps显示的信息为:

  • USER: 进程拥有者
  • PID: pid
  • %CPU: 占用的 CPU 使用率
  • %MEM: 占用的内存使用率
  • VSZ: 占用的虚拟内存大小
  • RSS: 占用的内存大小
  • TTY: 终端的次要装置号码 (minor device number of tty)
  • STAT: 该进程的状态: *
    • D: 无法中断的休眠状态 (通常 IO 的进程)
    • R: 正在执行中
    • S: 静止状态
    • T: 暂停执行
    • Z: 不存在但暂时无法消除
    • W: 没有足够的内存分页可分配
    • <: 高优先序的进程
    • N: 低优先序的进程
    • L: 有内存分页分配并锁在内存内 (实时系统或捱A I/O)
  • START: 进程开始时间
  • TIME: 执行的时间
  • COMMAND:所执行的指令

查看进程树pstree

pstree命令将所有进程以树状图显示,树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root),如果有指定使用者 id,则树状图会只显示该使用者所拥有的进程。

pstree 【参数】

动态查看进程运行状况top

top命令用于实时显示 process 的动态。 每10s更新一次,按CPU使用率排序

进程控制

删除进程/程序kill

kill命令用于删除执行中的程序或工作。

kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看。

也就是说,kill实际上是向进程发送一个信号,进程根据该信号进行相应处理,默认为15,强制删除为9

kill 【参数】进程号/程序名称

-l 列出所有可发送的信号

-l【数字】后面跟着一个数字代表向进程发送的信号

实例

杀死进程

# kill 12345

强制杀死进程

# kill -KILL 123456

后台运行命令&

在命令的后面加上&就代表后台运行命令,通常与nohup一起使用

command  >out.file  2>&1  & 

所有的标准输出和错误输出都将被重定向到一个叫做out.file 的文件中

2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。

退出时继续执行命令nohup

通常与&一起使用,将命令放在后台并且不挂起。

当用户注销(logout)或者网络断开时,终端会收到 HUP(hangup)信号从而关闭其所有子进程。nohup 的用途就是让提交的命令忽略 hangup 信号。

nohup command > myout.file 2>&1 &

2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。

I/O管理类

输入输出重定向操作符

输出重定向> >>

>与>>都是将原本送往显示器的输出送往其它地方(通常是文件),>会覆盖原有内容,>>则是追加原有内容

输入重定向< <<

<与<<都是将从键盘的输入送往其它地方(通常是文件),<后面跟着文件名代表从文件中读取数据

<<的用法为<

cat <<EOF >newFile

输入的EOF之前的内容都输出到新文件newFile中

管道操作

管道操作符|

|用来连接多个命令,将一条命令的输出作为另一条命令的输入

你可能感兴趣的:(linux)