首页关于友链

学Linux

学Linux
xuelinux.com

Linux常用命令

文章更新于 2021-04-19
0、前言

本文梳理了常用的Linux命令。文章内容均源自网络,笔者仅仅是一个知识搬运工,将大佬文章加以整合互补。由于水平欠缺,估计会有不少错误之处,敬请指正。如有转载请注明出处。
1、linux中终端的提示行含义
~ 表示代码主目录,也就是当前登录用户的用户目录。

比如:这里登录用户是chen,~ 代表的就是 /home/chen/

[roy@roy-virtualbox ~]$ 的理解

roy:shell的运行人是谁;

roy-virtualbox:shell开启的主机名称;

~:表示当前所在文件的名字;

"$"与"#":表示用户身份是什么级别,$表示是普通用户,#表示超级用户。
2、su命令

  作用:切换用户身份

  语法:su [选项] 用户名

    - 表示用户的环境变量一起切换

    -c 仅执行一次命令,而不切换用户身份

-c command 或 --command=command 变更为帐号为 USER的使用者并执行指令(command)后再变回原来使用者

  eg:

    $ su – root

    $ su – root –c “pwd”
3、cd命令

  作用: 切换目录

  语法:cd [目录]
  /  切换到根目录

    ..   回到上一级目录

    .   当前目录

    -   显示并打开到上一次操作的目录

  ~  当前用户的宿主目录(eg:# cd ~用户名 进入某个用户的家目录)
4、ls命令

  英文:list

  作用:显示目录文件

语法:ls [-alrRd] [文件或目录]

参数: -a(all)显示所有文件,注意隐藏文件,特殊目录.和..

      -l(long)显示详细信息

-R(recursive)递归显示当前目录下所有目录

      -r (reverse)逆序排序

      -t(time)按修改时间排序(降序)

     ll 相当于 ls –l
5、pwd命令

  英文:print working directory

  作用:显示当前工作目录

  语法:pwd [-LP]

    -L   显示链接路径,当前路径,默认

    -P   物理路径

  eg:# cd /etc/init.d

    # pwd [-P]
6、mkdir命令

  英文:make directories 命令路径:/bin/mkdir 执行权限:所有用户

  作用:创建新目录

  语法:mkdir [-p] 目录名

     -p 父目录不存在情况下先生成父目录 (parents)

  eg: mkdir linux/test 如果目录linux不存在,则报错,使用参数-p即可自动创建父目录。
7、cp命令

  英文:copy

  作用:复制文件或目录

  语法:cp [–rp] 源文件或目录 目的目录

   -r -R (recursive):递归处理,复制目录。若给出的源文件是一个目录 文件,此时将复制该目录下所有的子目录和文件。

   -p : 保留文件属性 (原文件的时间不变)

-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录 下的所有内容。其作用等于dpR参数组合。

-d:复制时保留链接。这里所说的链接相当于Windows中的快捷方式。

-f:覆盖已经存在的目标文件而不给出提示。

-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆 盖,回答"y"时目标文件将被覆盖。

  eg:

     1,相对路径 cp –R /etc/* . cp –R ../aaa ../../test/

     2,绝对路径 cp –R /ect/service /root/test/aa/bb
8、mv命令

  英文:move

  作用:移动(剪贴)目录或文件、目录或文件改名

  语法:mv 源文件或目录 目的目录
9、rm命令

  英文:remove

  作用:删除文件

  语法: rm [-rf] 文件或目录

-i 删除前逐一询问确认。

   -r(recursive):删除目录,同时删除该目录下的所有文件

   -f(force):强制删除文件或目录,即使原档案属性设为唯读,亦直接删除,无 需逐一确认

注意:工作中,谨慎使用rm –rf 命令;删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r"


10、cat命令

英文:concatenate

作用:显示文件内容

语法:cat [-n] [文件名]

    -A 显示所有内容,包括隐藏的字符

    -n 显示行号

-b 显示行号,但不显示空白行的行号

   eg:cat /etc/services

拓展使用方式:

cat -n file1 > file2:将file1的内容加上行号后输入到file2中(覆盖式)

cat -n file1 file2 > file3:把file1与file2中内容加上行号后输入file3中。

cat /dev/null > /etc/test.txt:清空 /etc/test.txt 文档内容

cat 也可以用来制作镜像文件:例如要制作软盘的镜像文件,将软盘放好后输入cat /dev/fd0 > OUTFILE。如果想把 image file 写到软盘 cat IMG_FILE > /dev/fd0
11、more命令

作用:分页显示文件内容,more 命令类似 cat ,不过会以一页一页的形式显示。

参数:-num:一次显示的行数

-s:当遇到有连续两行以上的空白行,就代换为一行的空白行

+num:从第 num 行开始显示

   语法:more [文件名]

操作按键:空格或f:显示下一页(一屏)

B键:显示上一页(一屏)

   Enter键:显示下一行

V键:调用Vi编辑器

   q或Q:退出
12、head命令

作用:查看文件前几行(默认10行)

   语法:head [文件名]

   -n:指定行数

   eg:head -20 /etc/services head –n 3 /etc/services
13、tail命令

作用:查看文件的后几行

   语法:tail [文件名]

      -n:指定行数

      -f(follow):动态显示文件内容

扩展用法:获取一个大文件的部分文件,可使用head或tail命令

   head -n 100 /etc/services >config.log
14、ln命令

  英文: link

  作用:产生链接文件

  语法:ln -s [源文件] [目标文件] 创建软链接 源文件 使用绝对路径

     ln [源文件] [目标文件] 创建硬链接

   eg: 创建文件/etc/service的软链接service.soft

     ln -s /etc/service ./service.soft

   创建文件/etc/service的硬链接/service.hard

     /etc/service /service.hard

注释:

Linux ln命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。

当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。

软链接:

1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式

2.软链接可以 跨文件系统 ,硬链接不可以

3.软链接可以对一个不存在的文件名进行链接

4.软链接可以对目录进行链接

硬链接:

1.硬链接,以文件副本的形式存在。但不占用实际空间。相当于 cp -p +同步更新

2.不允许给目录创建硬链接。不能针对目录使用 ln /tmp/ aa.hard(无法将目录/tmp 生成硬链接)

3.硬链接只有在同一个文件系统中才能创建。硬链接不能跨分区,例如下面的命令,

ln /home/test/issuels /boot/test (错误)
15、man命令

  英文:manual

作用:获取命令或配置文件的帮助信息

  语法:man [命令/配置文件]

  eg:man ls ;man services

    查看配置文件时,不需要配置文件的绝对路径,只需要文件名即可。调用的是more来浏览帮助文档,按空格翻下一页,按回车翻下一行,按q退出。使用/加上关键的参数可直接定位搜索,n查找下一个,shift+n查找上一个

  eg: /-l 直接查看-l的介绍

  扩展:man的级别 (帮助文档的类型, 了解1 5即可)

    man man-pages 查看每一种类型代表的含义 man文档的类型(1~9)

    1是命令,5是配置文件 man优先显示命令,可指定帮助类型

    eg:man 5 passwd (5代表配置文件级别)
16、help命令

作用: 查看shell内置命令的帮助信息 。例如:help cd

语法:命令名 --help:列举该命令的常用选项 。eg: cp --help

注释: 内置命令,使用whereis,which,man都不能查看;type命令:查看内部命令还是外部命令
17、find命令

作用:查找文件或目录

语法:find [搜索路径] [匹配条件]

   如果没有指定搜索路径,默认从当前目录查找

参数:-name:按名称查找,精准查找

       eg:find /etc -name “init” 在目录/etc中查找文件init

-iname:按名称查找,但iname忽略大小写。

-ctime:设置查找某段时间内发生过更新的文件。

-size:按文件大小查找。以block为单位,一个block是512B, 1K=2block,+大于, -小于,不写是等于。eg:find /etc -size -204800 在etc目录下找出大于100MB文件

-type:按文件类型查找。其中type可选的类型有如下:

       f:一般文件;l:软连接文件;d:目录;c:字符文件

-maxdepth:设定最大查找深度。

例如:只查找当前目录下同级别文件。find ./ -maxdepth 1 -name "*.txt"

find查找中的字符匹配:

*:匹配所有

     ?:匹配单个字符

    例如 find /etc -name “init???”。表示在目录/etc中查找以init开头的,且后面有三位的文件。

模糊匹配的条件,建议使用单引号或双引号括起来。如果*被转义,可使用 单双引号括住查询条件,或者使用\*。 eg: # find . –name *g

  find查找的基本原则:

1、占用最少的系统资源,即查询范围最小,查询条件最精准;2、可以使用 ( ) 将运算式分隔,并使用下列运算。

3、如果明确知道查找的文件在哪一个目录,就直接对指定目录查找,不查找根目录/

4、根据大小查找,-exec 参数后为是linux命令,exec命令以分号结束‘;’,该分号前面要放反斜杠转义

详细补充:https://blog.csdn.net/yangxiaoyan12/article/details/86567648
18、grep命令

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

   语法:grep [-cinv] '搜寻字符串' filename

参数: -c (count)输出匹配行的次数(是以行为单位,不是以出现次数为单位)

-i (ignore)忽略大小写,所以大小写视为相同

    -n (number)显示匹配行及行号

    -v 反向选择,显示不包含匹配文本的所有行。

-r 以递归的方式查找符合条件的文件。

例如,查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容,使用的命令为:

grep -r update /etc/acpi

19、which命令

  作用:显示系统命令所在目录(绝对路径及别名)

  注释:which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令
20、whereis命令

   作用:搜索命令所在目录、配置文件所在目录及帮助文档路径

which passwd 和 whereis passwd

查看/etc/passwd配置文件的帮助,就用 man 5 passwd

21、gzip命令

作用:压缩(解压)文件,压缩文件后缀为.gz

语法:gzip [参数] [文件或者目录]

参数:-d:将压缩文件解压(decompress)

-l:列出压缩文件的相关信息。

-N:压缩时保存源文件名称以及时间戳

-n:压缩时不保存源文件名称以及时间戳

-r:递归处理,将指定目录下的所有文件及子目录一并处理。

-v:显示指令执行过程。

-V:显示版本信息。

注意: 1、gzip是使用广泛的压缩程序,压缩过后名称后面会多出“.gz”的扩展名。

2、gzip只能压缩文件,不能压缩目录,并且不保留原文件 。若要对目录操作,所以需要加上-r选项,这样也可以对子目录进行递归了。

3、文件夹下面的文件都变成了*.gz,目录依然存在只是目录里面的文件相应变成了*.gz,这就是压缩,和打包不同。

4、如果要压缩成一个gz文件,可以先用tar命令对目录进行打包,然后再对打包文件使用gzip命令。

5、解压使:gzip –d文件或者 gunzip 文件
22、bzip2命令

bzip2采用新的压缩演算法,压缩效果比传统的LZ77/LZ78压缩演算法来得好。若没有加上任何参数,bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件。

  作用:压缩(解压)文件,压缩文件后缀为.bz2

语法:bzip2 [-k] [文件]

   参数:-k:产生压缩文件后保留原文件(压缩比高)

-d:解压缩的参数(decompress)

-v:压缩或解压缩时,显示详细信息

-c:将压缩与解压缩的结果送到标准输出。

注意:解压使用:bzip2 –d或者 bunzip2
23、zip命令

  作用:压缩(解压)文件,压缩文件后缀为.zip

语法:zip 选项[-r] [压缩后文件名称] [文件或目录]

参数:-q:不显示指令执行过程。

     -r:压缩目录。递归处理,将指定目录下所有文件和子目录一并压缩。

-d:从压缩文件内删除指定的文件。

1、zip -dv cp.zip a.c 从压缩文件 cp.zip 中删除文件 a.c
2、zip services.zip /etc/services 压缩文件
3、zip -r test.zip /test 压缩目录(如果不加-r选项,压缩后的文件没有数据。 )

  注意:解压使用unzip
24、tar命令

作用:文件、目录打(解)包。tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。

语法:tar [-zvf] 压缩后文件名 文件或目录

参数:-c (打包)建立一个打包文件,后缀是.tar (create)

-x (解包)解开一个压缩文件(extract)

-t 列出存档中文件的目录。特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!

-z 以gzip命令压缩/解压缩

     -j 以bzip2命令压缩/解压缩

-v 详细显示处理的文件(verbose)

-f file 指定文件名,必选项,用在最后一个参数

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

-r 像压缩归档文件末尾追加文件

-u 更新原压缩包中的文件,仅将较新的文件附加到存档中

常用基本用法:

tar -cf all.tar *.jpg //将所有jpg文件打成名为all.tar的包.-c表示产生新的包,-f指定包的文件名
tar -rf all.tar *.gif //将所有.gif的文件增加到all.tar的包里面去。-r表示增加文件的意思。
tar -uf all.tar logo.gif //更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
tar -tf all.tar //列出all.tar包中所有文件,-t是列出文件的意思
tar -xf all.tar //解出all.tar包中所有文件,-x是解开的意思

扩展用法:为了方便用户在打包解包的同时压缩或解压文件,tar命令提供了一种特殊的功能,就是可以在打包解包的同时调用其他的压缩程序,比如:gzip,bzip2等。

1) tar调用gzip

gzip是GNU组织开发的一个压缩程序,.gz结尾的文件就是gzip压缩的结果。与gzip相对的解压程序是gunzip。 tar中使用-z这个参数来调用gzip。

tar -czf all.tar.gz *.jpg //将所有.jpg的文件打成一个tar包,并且将其用gzip压缩,
生成一个gzip压缩过的包,包名为all.tar.gz

tar -xzf all.tar.gz //将上面产生的包解开

2) tar调用bzip2

bzip2是一个压缩能力更强的压缩程序,.bz2结尾的文件就是bzip2压缩的结果。与bzip2相对的解压程序是bunzip2。tar中使用-j这个参数来调用gzip。

tar -cjf all.tar.bz2 *.jpg //将所有.jpg的文件打成一个tar包,并且将其用bzip2压缩,
生成一个bzip2压缩过的包,包名为all.tar.bz2

tar -xjf all.tar.bz2 //将上面产生的包解开

常用格式:tar + gzip组合

   tar –czvf 压缩

   tar –xzvf 解压

补充: 1、文件路径,压缩包带文件路径

    2、源文件是保留的,不会被删除

注解:1、windows下最常见的压缩文件有两种:* .zip 和 * .rap,而Linux下却有很多:* .tar 、* .tar.gz 、* .tgz 、* .gz 、* .Z 、* .bz2

2、打包:将一堆文件或目录什么的变成一个总的文件。

3、压缩:将一个大的文件经过某种压缩算法变成一个小文件。

为什么要区分这两个概念呢?因为Linux中的很多压缩程序只能针对一个文件进行压缩,所以当你想要压缩一大堆文件时,首先需要打个包,然后压缩。
25、shutdown命令

语法:shutdown [选项] 时间

   选项: -c 取消前一个关机命令

       -h 关机

       -r 重启

+time 设定多久后关机    

1、shutdown +5 “System will shutdown after 5 minutes” //5分钟够关机并显示警告信息2、
2、shutdown -h now 立即关机
3、shutdown -h 20:30 定时关机

其他关机命令 halt poweroff init 0

其他重启命令 reboot 重启系统;reboot -h now 立即重启 ;init 6
26、Linux中常用快捷键

  ctrl + c(停止当前进程)

  ctrl + z 挂起当前进程,放后台

  ctrl + r(查看命令历史) history -数字 会看之前命令的条数

  ctrl + l(清屏,与clear命令作用相同)

  方向箭头 上 下 可以查看执行过的命令

  ctrl + a 行首

  ctrl + e 行尾

  ctrl + k 清除

  ctrl+ w 清除单词
27、ping命令

作用:测试网络的连通性

   语法:ping [选项] IP地址

     -c 指定发送次数

注释: ping 命令使用的是icmp协议,不占用端口

ping -c 3 127.0.0.1

28、ifconfig命令

英文:interface configure

  作用:查看和设置网卡网络配置

  语法:ifconfig [-a] [网卡设备标识]

    -a:显示所有网卡信息

  ifconfig [网卡设备标识] IP地址 修改ip地址


29、进程管理涉及的基本概念

进程和程序的区别:

1、程序是静态概念,本身作为一种软件资源长期保存;而进程是程序的执行过程,它是动态概念,有一定的生命期,是动态产生和消亡的。

2、程序和进程无一一对应关系。一个程序可以由多个进程共用;另一方面,一个进程在活动中有可顺序地执行若干个程序。

进程和线程的区别:

1、进程: 就是正在执行的程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

2、线程: 轻量级的进程;进程有独立的地址空间,线程没有;线程不能独立存在,它由进程创建;相对讲,线程耗费的cpu和内存要小于进程。
30、ps命令

  作用:查看系统中的进程信息

  语法:ps [-auxle]

  参数: a 显示所有用户的进程

    u 显示用户名和启动时间

    x 显示没有控制终端的进程

    e 显示所有进程,包括没有控制终端的进程

     l 长格式显示

  查看系统中所有进程:

ps aux #查看系统中所有进程,使用BSD操作系统格式,unix
ps -le #查看系统中所有进程,使用Linux标准命令格式

ps应用实例:

ps -u or ps -l 查看隶属于自己进程详细信息
ps aux | grep sam 查看用户sam执行的进程
ps -ef | grep init 查看指定进程信息

31、pstree命令

  作用:查看当前进程树

  语法:pstree [选项]

  -p 显示进程PID

  -u 显示进程的所属用户
32、top命令

  作用:查看系统健康状态

  显示当前系统中耗费资源最多的进程,以及系统的一些负载情况。

  语法:top [选项]

   -d 秒数,指定几秒刷新一次,默认3秒(动态显示)
33、kill命令

作用:关闭进程

   语法:kill [-选项] PID

    kill -9 进程号(强行关闭) 常用

    kill -1 进程号(重启进程)
34、df命令

  作用:用于查看Linux文件系统的状态信息,显示各个分区的容量、已使用量、未使用量及挂载点等信息、看剩余空间。

  语法:df [-hkam] [挂载点]

参数:-h(human-readable)根据磁盘空间和使用情况 以易读的方式显示 KB,MB,GB

-k  以KB 为单位显示各分区的信息,默认

     -M 以MB为单位显示信息

     -a  显示所有分区包括大小为0 的分区
35、du命令

  作用:用于查看文件或目录的大小(磁盘使用空间)

  语法:du [-abhs] [文件名目录]

参数:-a 显示子文件的大小

-h 以易读的方式显示 KB,MB,GB等

   -s summarize 统计总占有量

  举例:

du -a(all) /home  显示/home 目录下每个子文件的大小,默认单位为kb
du -b /home  以bytes为单位显示/home 目录下各个子目录的大小
du -h /home 以K,M,G为单位显示/home 文件夹下各个子目录的大小
du -sh /home  以常用单位(K,M,G)为单位显示/home 目录的总大小 -s summarize

df命令和du命令的区别:

   1、df命令是从文件系统考虑的,不仅考虑文件占用的空间,还要统计被命令或者程序占用的空间。

   2、du命令面向文件,只计算文件或目录占用的空间。

  #df –h /
  #du –sh /

36、free命令

  作用:查看内存及交换空间使用状态

  语法: free [-kmg]

  参数:-k 以KB为单位显示,默认就是以KB为单位显示

     -m 以MB为单位显示

     -g 以GB为单位显示

-h 以易读的方式显示 KB,MB,GB等
37、linux的权限管理

1、有哪几种权限?

   格式:所有者 所属组 其他人

   第1位:文件类型(d 目录,- 普通文件,l 链接文件)

   第2-4位:所属用户(所有者)权限,用u(user)表示

   第5-7位:所属组权限,用g(group)表示

   第8-10位:其他用户(其他人)权限,用o(other)表示

   第2-10位:表示所有的权限,用a(all)表示

2、权限更改-chmod

   英文:change mode (change the permissions mode of a file)

   作用:改变文件或目录权限

   语法:chmod [{ugoa}{+-=}{rwx}] [文件名或目录]

     chmod [mode=421] [ 文件或目录]

参数:-R 下面的文件和子目录做相同权限操作(Recursive递归的)

注释:1、用数字来表示权限(r=4,w=2,x=1,-=0)。例如:

chmod 750 b.txt

   2、 rwx和数字表示方式能随意切换

   3、root用户是超级用户,不管有没有权限,root都能进行更改。不能用一个普通用户去修改另一个普通用户的权限。

3、更改所有者-chown

   英文:change file ownership

   作用:更改文件或者目录的所有者

   语法 : chown user[:group] file...

    参数:-R 递归修改

  参数格式 : user 新的档案拥有者的使用者 ID

     group 新的档案拥有者的使用者群体(group)

chown lee file1 把file1文件的所有者改为用户lee
chown lee:test file1 把file1文件的所有者改为用户lee,所属组改为test
chown –R lee:test dir 修改dir及其子目录的所有者和所属组

4、改变所属组chgrp

   英文:change file group ownership

   作用:改变文件或目录的所属组

   语法 : chgrp [group] file...

chgrp root test.log 把test.log的所属组修改为root


© xuelinux.com