Linux常用命令

奋斗吧
奋斗吧
擅长邻域:未填写

标签: Linux常用命令

2023-06-05 18:23:38 237浏览

Linux常用命令总结

一、目录查看\创建\切换\移动\压缩\删除

1.1 查看目录结构 - ls

ls :list-查看当前目录所有内容

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

实例:
(1) 按易读方式按时间反序排序,并显示文件详细信息

ls -lhrt

(2) 按大小反序显示文件详细信息

ls -lrS

(3)列出当前目录中所有以"t"开头的目录的详细内容

ls -l t*

例如:
1

1.2 创建\修改文件\目录 - touch

   touch命令用于修改文件或者目录的时间属性,包括访问时间和修改时间,若文件不存在,系统会建立一个新的文件。

补充说明:
1.stat * 查看这个目录所有文件的状态。
Access访问时间。Modify修改时间。Change状态改变时间。
2.每个文件在Linux下面都会记录3个主要的修改时间:
• modification time(mtime,修改时间):当文件“内容数据”(指文件里面的内容,而不是属性或权限)更改时,这个时间会更新。
• status time(ctime,状态时间):当文件的“状态”(权限或者属性)改变时,这个时间会更新。
• access time(atime,存取时间):当“该文件内容被取用”(例如使用cat读取了)时,会更新该时间。
(注:ls默认情况下显示的是mtime)

格式:

 touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]
  1. 创建一个空文件或者更新atime、mtime、ctime
    a.如果文件不存在,使用touch命令默认创建一个空文件
    b.如果文件存在则更新atime,mtime,ctime为当前时间。
    1
  2. 使用-a参数,touch文件时,文件存在只会更新atime和ctime为当前时间。
    2
  3. 使用-m参数,touch文件时,文件存在只会更新mtime和ctime为当前时间
    3
  4. 使用-d参数,touch文件时,文件存在会将atime,mtime按照设置修改,同时更新ctime时间
    4
  5. 使用touch -t "[[CC]YY]MMDDhhmm[.ss]"修改文件的atime和mtime
    5
  6. 使用-at组合参数,只修改atime。
    6
  7. 使用-mt组合参数,只修改mtime。
    7
  8. touch -r file1 file2 将file2的时间属性值修改为file1文件的时间属性
    8

1.2.1 创建目录 - mkdir

mkdir 文件夹名称 : 创建文件夹。
mkdir -p 文件夹名称1/名称2/… :创建多级目录,此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录。
实例:
(1)当前工作目录下创建名为 test 的文件夹

mkdir test

(2)在 tmp 目录下创建路径为 test/t1/t 的目录,若不存在,则创建:

mkdir -p /tmp/test/t1/t

1.2.2 创建文件 - touch

1.3 切换目录 - cd

cd(changeDirectory) 命令语法:
cd [目录名]
说明:切换当前目录至 dirName。

实例:

(1)进入要目录

cd /
(2)进入 “home” 目录

cd ~
(3)进入上一次工作路径

cd -

https://www.runoob.com/w3cnote/linux-common-command-2.html
https://www.cnblogs.com/yuncong/p/10247583.html#_label7

1.4 目录压缩\解压 (文件夹打包)tar\zip

1.4.1 tar命令

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

常用命令
1、压缩:tar [-z|-j|-J] -c [-v] [-f ] 目标文件名 源文件
2、解压缩:tar [-z|-j|-J] -x [-v] [-f ] 待加压文件名 [-C 目录]

1.4.1.1 打包成 .tar

tar -cvf 打包后生成的文件名全路径 要打包的目录

当有多个参数时,-f命令参数必须在最后一个,否则会报错,原因是 -f后面跟的是目标文件名称,如果-fc,则会把c当做源文件名称。
-c是表示打包,create 缩写
-v表示显示打包的过程,verbose 缩写
-f指定打包后的文件名,file缩写

1

1.4.1.2 打包并压缩 .tar.gz

tar -zcvf 打包后生成的文件名全路径 要打包的目录

与<打包成tar>相比,需要额外添加参数标识要进行压缩,例如通过加入-z,可以直接把tar包压缩成gz,一般常用的参数如下,选择任一均可:
-z:gzip指令
压缩命令表示gzip,命令里带-c, 则以 .tar.gz 或 .tgz 结尾来代表 gzip 压缩过的 tar file
解压缩表示ungzip,命令里带-x
-j :bzip2指令,则以 .tar.bz2 结尾,表示采用bzip2压缩
-J 大写,表示xz压缩,则以 .tar.xz 结尾,表示采用bzip2压缩
————————————————

1

1.4.1.3 解压文件tar

tar -xvf tar文件
#-x是表示还原 一般和-c命令必须同时存在一个
#-v表示显示打包的过程,verbose 缩写
#-f指定打包后的文件名,file缩写

1

1.4.1.4 解压并解包文件tar.gz

  先解压,再解包。在解压时,可以不带-z或-j,linux会自动判断采用了哪种压缩格式,会自动在命令中带入 相应的参数:tar -xvf tar文件名

[root@localhost test]# ls
test2.tar.bz2
#解压命令中没有带-j,仍能解压
[root@localhost test]# tar -xvf test2.tar.bz2
a.c
[root@localhost test]# ls
a.c  test2.tar.bz2
[root@localhost test]#

默认解压时在当前目录,如果要指定目录的话,则加上[-C 目录] 参数,即 tar -xvf tar文件名 -C 目录名称

[test]# tar -zcf  hello2.tar.gz -C /paasdata/zzl/test hello      使用-C指定绝对路径前缀  注意:-C命令 与目标文件夹hello之间有空格
[test]# ls
 hello  hello2.tar.gz  hello.tar.gz
[test]# tar -tf hello2.tar.gz          
hello/                               此时,压缩文件的目录结构就是不包含绝对路径前缀的

1.4.1.5 查看压缩包结构,不解压

tar -tvf xx.tar.gztar -tvf xx.tar

1.4.2 zip命令

如果出现这个提示:
-bash: zip: command not found 不能执行ZIP压缩,是因为没有安装ZIP,
运行下这条安装命令即可 yum install zip

1.4.2.1 压缩

linux zip命令参数列表
-a 将文件转成ASCII模式
-F 尝试修复损坏的压缩文件
-h 显示帮助界面
-m 将文件压缩之后,删除源文件
-n 特定字符串 不压缩具有特定字尾字符串的文件
-o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间
-q 安静模式,在压缩的时候不显示指令的执行过程
-r 将指定的目录下的所有子目录以及文件一起处理
-S 包含系统文件和隐含文件(S是大写)
-t 日期 把压缩文件的最后修改日期设为指定的日期,日期格式为mmddyyyy

  1. 目录下所有文件和文件夹打包为指定目录下的.zip
zip –q –r-S [zip文件所在目录]xx.zip  解压后放置的目录 
# 以上是在安静模式下进行的,而且包含系统文件和隐含文件
zip –q –r xahot.zip /home/wwwroot/xahot

1.4.2.2 解压缩

unzip  [压缩文件位置/]xx.zip
#r如:将/home/wwwroot/xahot.zip解压到当前目录
unzip xahot.zip

unzip参 数:

-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f 更新现有的文件。
-l 显示压缩文件内所包含的文件。
-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-t 检查压缩文件是否正确。
-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
-v 执行是时显示详细的信息。
-z 仅显示压缩文件的备注文字。
-a 对文本文件进行必要的字符转换。
-b 不要对文本文件进行字符转换。
-C 压缩文件中的文件名称区分大小写。
-j 不处理压缩文件中原有的目录路径。
-L 将压缩文件中的全部文件名改为小写。
-M 将输出结果送到more程序处理。
-n 解压缩时不要覆盖原有的文件。
-o 不必先询问用户,unzip执行后覆盖原有文件。
-P<密码> 使用zip的密码选项。
-q 执行时不显示任何信息。
-s 将文件名中的空白字符转换为底线字符。
-V 保留VMS的文件版本信息。
-X 解压缩时同时回存文件原来的UID//GID

1.5 目录(重命名)移动 - mv

  mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。该命令等同于DOS系统下的ren和move命令的组合。它的使用权限是所有用户。

mv [options] 源文件或目录 目标文件或目录
#[options]主要参数
#-i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答”y”或”n”,这样可以避免误覆盖文件。
#-f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。
  1. 将/usr/udt中的所有文件移到当前目录(用”.”表示)中:
$ mv /usr/udt/* .
  1. 将文件test.txt重命名为wbk.txt:
$ mv test.txt wbk.txt
  1. 把当前目录的一个子目录里的文件移动到另一个子目录里
mv  文件名/*  另一个目录
  1. 移动当前文件夹下的所有文件到上一级目录
mv * ../

1.6 目录复制 - cp

  cp命令是用于复制的。cp(copy) 复制文件或目录。

cp [选项] 源文件 目标文件

选项:
-a:相当于 -d、-p、-r 选项的集合,这几个选项我们一一介绍;
-d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接;
-i:询问,如果目标文件已经存在,则会询问是否覆盖;
-l:把目标文件建立为源文件的硬链接文件,而不是复制源文件;
-s:把目标文件建立为源文件的软链接文件,而不是复制源文件;
-p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间);
-r:递归复制,用于复制目录;
-u:若目标文件比源文件有差异,则使用该选项可以更新目标文件,此选项可用于对文件的升级和备用。

最常用的:

# 保留源文件属性复制
cp -a 源文件 目标文件

1.复制文件示例

#建立源文件
[root@localhost ~]# touch cangls
#1. 把源文件不改名复制到 /tmp/ 目录下
[root@localhost ~]# cp cangls /tmp/
#2. 改名复制
[root@localhost ~]# cp cangls /tmp/bols
如果复制的目标位置已经存在同名的文件,则会提示是否覆盖,因为 cp 命令默认执行的是“cp -i”的别名,例如:
[root@localhost ~]# cp cangls /tmp/
cp:是否覆盖"/tmp/cangls"?y
#目标位置有同名文件,所以会提示是否覆盖
  1. 复制目录示例
    复制目录只需使用“-r”选项即可,例如:
#建立测试目录
[root@localhost ~]# mkdir movie
#目录原名复制
[root@localhost ~]# cp -r /root/movie/ /tmp/
  1. 复制软链接文件
      如果源文件不是一个普通文件,而是一个软链接文件。
    (1)如果在复制软链接文件时不使用 “-d” 选项,则 cp 命令复制的是源文件,而不是软链接文件;
    (2)只有加入了 “-d” 选项,才会复制软链接文件。
    (3)请大家注意,“-d” 选项对硬链接是无效的。
#建立一个测试软链接文件/tmp/cangls_slink
[root@localhost ~]# ln -s /root/cangls /tmp/cangls_slink
#1. 复制软链接文件,但是不加"-d"选项
[root@localhost ~]# cp /tmp/cangls_slink /tmp/cangls_t1
#2. 复制软链接文件,加入"-d"选项
[root@localhost ~]# cp -d /tmp/cangls_slink /tmp/cangls_t2
[root@localhost ~]# ll /tmp/cangls_t1 /tmp/cangls_t2
#会发现不加"-d"选项,实际复制的是软链接的源文件,而不是软链接文件
-rw-r--r-- 1 root root 0 6月 14 05:56 /tmp/cangls_t1
#而如果加入了"-d"选项,则会复制软链接文件
lrwxrwxrwx 1 root root 12 6 月 14 05:56/tmp/ cangls_t2-> /root/cangls
  1. 保留源文件属性复制
     当我们使用 “-a” 选项时,目标文件和源文件的所有属性都一致,包括源文件的所有者,所属组、时间和软链接性。
#使用"-a"选项
[root@localhost ~]# cp -a /var/lib/mlocate/mlocate.db /tmp/mlocate.db_2
[root@localhost ~]# ll /var/lib/mlocate/mlocate.db /tmp/mlocate.db_2
-rw-r----- root slocate 2328027 6月 14 02:08 /tmp/mlocate.db_2
-rw-r----- root slocate 2328027 6月 14 02:08 /var/lib/mlocate/mlocate.db
  1. 复制为软连接\硬链接
     “-l” 和 “-s” 选项的源文件只需是普通文件,目标文件就可以直接复制为硬链接和软链接。
    (1)如果使用 “-l” 选项,则目标文件会被建立为源文件的硬链接;
    (2)如果使用了 “-s” 选项,则目标文件会被建立为源文件的软链接。
[root@localhost ~]# touch bols
#建立测试文件
[root@localhost ~]# ll -i bols
262154-rw-r--r-- 1 root root 0 6月 14 06:26 bols
#源文件只是一个普通文件,而不是软链接文件
[root@localhost ~]# cp -l /root/bols /tmp/bols_h
[root@localhost ~]# cp -s /root/bols /tmp/bols_s
#使用"-l" 和"-s"选项复制
[root@localhost ~]# ll -i /tmp/bols_h /tmp/bols_s
262154-rw-r--r-- 2root root 0 6 月 14 06:26/tmp/bols_h
#目标文件 /tmp/bols_h 为源文件的硬链接文件
932113 lrwxrwxrwx 1 root root 10 6 月 14 06:27/tmp/bols_s -> /root/bols
#目标文件 /tmp/bols_s 为源文件的软链接文件

1.7 目录删除 - rm

 使用rm命令要小心。因为一旦文件被删除,它是不能被恢复的。

rm  【选项】 目录

选项说明:
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
-i 进行交互式删除。

  1. rm -rf 目录 不管有多少级目录,一并强行删除
  2. rm -if 目录 使用i选项来逐个确认要删除的文件。如果用户输入y,文件将被删除。如果输入任何其他东西,文件则不会删除。

二、查看磁盘空间占用

2.1 查看磁盘状态 : df -h

  如果不知道哪个目录占用大小的百分比,可以先查看哪个目录占用空间最大 df -h,在Use% 列就可以看到现有磁盘占用的空间的百分比大小;
1

2.2 查看各个文件磁盘占用情况:du -sh /*

  du命令用来查看目录或文件所占用磁盘空间的大小。常用选项组合为:du -sh /*
  发现 /dev目录占用空间为 52%,占用较大,进入 /dev目录下,查看该目录下面哪个文件占用较大,使用命令 du -sh /*
1

命令中的 / 表示跟目录,也可以试 /home 等,可根据情况自行修改。
1
 du常用的选项:
  -h:以人类可读的方式显示
  -a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小
  -s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小
  -c:显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和
  --apparent-size:显示目录或文件自身的大小
  -l :统计硬链接占用磁盘空间的大小
  -L:统计符号链接所指向的文件占用的磁盘空间大小

  1. du -h
    1
  2. du -a 使用此选项时,显示目录和目录下子目录和文件占用磁盘空间的大小。

  可以看出,默认情况下du只显示./目录占用磁盘空间的大小,而使用-a选项后,它不仅显示了目录(最后一行),而且显示了目录下各个文件占用磁盘空间的大小。

3
3. du -s 使用此选项时,du只显示目录所占用磁盘空间的大小,而不显示其下子目录和文件占用磁盘空间的信息。

  默认情况下,du不显示目录下文件占用磁盘空间的信息,但它会显示其下子目录占用磁盘空间的信息;而使用-s选项以后,只显示xx目录占用磁盘空间的大小。

1
4. du --apparent-size 显示文件或目录自身大小,而不是它们占用的磁盘空间大小。
1
5. du -c 使用此选项时,不仅显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和
2
6. du -lh --max-depth=1 查看当前目录下一级子文件和子目录占用的磁盘容量。

2.3 查看inodes容量

  当磁盘容量或inode容量任意一个不足时就都会提示 No space left on device。查看后进入占用率高的目录删除无用文件即可。
2

2.4 查看文件数量

  inodes 爆满那就查看一下哪些地方文件数量过多。根据上边的信息 / 目录的 inodes 占用率为 100% 所以查看其下文件,将无用文件删除即可,进行删除即可。

for i in /*; do echo $i; find $i |wc -l; done

2.5 僵尸进程

  若磁盘容量和 inodes 容量都正常但还是没有磁盘空间,则需查看是否存在已被删除的文件,状态为 deleted

lsof | grep deleted

根据进程号,将其 kill 掉即可。若不清楚该进程作用请勿随意 kill

原理:
  在linux上被删除的文件仍被其他进程所使用,文件句柄没有完全释放出来,导致空间无法释放出来,在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。

三、进程查看\杀掉

3.1 查看进程方法 - ps

  ps命令以简单列表的形式,报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。

ps aux
#a:显示当前终端下的所有进程信息,包括其他用户的进程。
#u:使用以用户为主的格式输出进程信息。
#x:显示当前用户在所有终端下的进程。

在这里插入图片描述

  1. 当知道端口号的时候,使用 lsof -i:端口号查看进程号:
#比如查看1500端口的进程号
lsof -i:1500

1
2. 当不知道端口号,但是知道程序名称时,使用ps aux查看:

ps -aux | grep 程序名称

2

3.2 杀死进程 - kill

kill -9 PID

3

四、查看端口 - ss

  ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等统计. 它比其他工具展示等多tcp和state信息. 它是一个非常实用、快速、有效的跟踪IP连接和sockets的新工具.SS命令可以提供如下信息。

ss [参数]
ss [参数] [过滤]

1

  1. 显示TCP连接: ss -a -t
    1
  2. 显示UDP连接:ss -a -u
    1
  3. 显示Sokets摘要: ss -s

列出当前的established, closed, orphaned and waiting TCP sockets

2
4. 显示本地打开的所有端口:ss -ln
3
5. 查看进程使用的socket:ss -pl
5
6. 找出打开套接字/端口应用程序:ss -nlp | grep 端口号
如:ss -nlp | grep 6040
6
7. 匹配远程地址和端口号

> ss dst ADDRESS_PATTERN
> ss dst 192.168.1.1
> ss dst 192.168.21.1:http 
> ss dst 192.168.21.1:smtp 
> ss dst 192.168.21.1:443

五、文件查找 - find

六、rpm

安装:rpm -ivh 名称.rpm
查询服务名称:rpm -qa |grep 服务名称
卸载:rpm -e 名称

七、文件软链接\硬链接

好博客就要一起分享哦!分享海报

此处可发布评论

评论(0展开评论

暂无评论,快来写一下吧

展开评论

您可能感兴趣的博客

客服QQ 1913284695