前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Linux 常用命令

Linux 常用命令

作者头像
Yorkyu
发布2022-03-22 16:07:58
发布2022-03-22 16:07:58
1.7K00
代码可运行
举报
文章被收录于专栏:约克编程技术约克编程技术
运行总次数:0
代码可运行

前言

Linux 系统常用命令格式:

代码语言:javascript
代码运行次数:0
运行
复制
$ command  [option]  [argument1]  [argument2]  ...

其中 option- 开始,多个 option 可用一个 - 连起来,如: ls -l -als -la 的效果是一样的。

一,帮助命令

1.1. man

获取相关命令的帮助信息

实例

代码语言:javascript
代码运行次数:0
运行
复制
$ man ls

二,文件操作

2.1. cat

用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。

语法

代码语言:javascript
代码运行次数:0
运行
复制
$ cat [选项] 文件

常用选项

代码语言:javascript
代码运行次数:0
运行
复制
-n 或 --number:由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行结束处显示 $。
-T 或 --show-tabs: 将 TAB 字符显示为 ^I。
-A, --show-all:等价于 -vET。
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;

实例

代码语言:javascript
代码运行次数:0
运行
复制
# 把 test.log 的文件内容加上行号后输入 test1.log 这个文件里。
$ cat -n test.log  test1.log
# 把文件filel和文件file2的内容合并起来,放入文件file3中。
$ cat file1 file2 > file3

2.2. clear

清除屏幕上的信息,它类似于DOS中的 cls 命令。 清屏后,提示符移动到屏幕左上角。

语法

代码语言:javascript
代码运行次数:0
运行
复制
$ clear

2.3. chmod

chmod 用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。 该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含 数字的数字设定法。

2.3.1. 文字设定法

语法

代码语言:javascript
代码运行次数:0
运行
复制
$ chmod [who] [+ | - | =] [mode] 文件名

常用选项

代码语言:javascript
代码运行次数:0
运行
复制
操作对象who可是下述字母中的任一个或者它们的组合:
  u 表示“用户(user)”,即文件或目录的所有者。
  g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
  o 表示“其他(others)用户”。
  a 表示“所有(all)用户”。它是系统默认值。
操作符号可以是:
  + 添加某个权限。
  - 取消某个权限。
  = 赋予给定权限并取消其他所有权限(如果有的话)。
设置 mode 所表示的权限可用下述字母的任意组合:
  r 可读。
  w 可写。
   x 可执行。
  X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。
  s 在文件执行时把进程的属主或组ID置为该文件的文件属主。
        方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
  t 保存程序的文本到交换设备上。
  u 与文件属主拥有一样的权限。
  g 与和文件属主同组的用户拥有一样的权限。
  o 与其他用户拥有一样的权限。
文件名:以空格分开的要改变权限的文件列表,支持通配符。

实例

代码语言:javascript
代码运行次数:0
运行
复制
# 使同组和其他用户对文件 fileName 有读权限。
$ chmod g+r, o+r fileName

2.3.2. 数字设定法

数字设定法,可将其相加,其顺序是(u)(g)(o)。例如,如果想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)。

代码语言:javascript
代码运行次数:0
运行
复制
r:读权限,用数字4表示
w:写权限,用数字2表示
x:执行权限,用数字1表示
-:删除权限,用数字0表示

语法

代码语言:javascript
代码运行次数:0
运行
复制
$ chmod [mode] 文件名

实例

代码语言:javascript
代码运行次数:0
运行
复制
# 即设定文件 test.txt 的属性为:-rw-r--r-- 文件属主(u)inin 拥有读、写权限 与文件属主同组人用户(g) 拥有读权限 其他人(o) 拥有读权限 
$ chmod 644 test.text

2.4. chown

更改某个文件或目录的属主和属组。

语法

代码语言:javascript
代码运行次数:0
运行
复制
$ chown [选项] [所有者][:[组]] 文件

常用选项

代码语言:javascript
代码运行次数:0
运行
复制
-R 递归式地改变指定目录及其下的所有子目录和文件的拥有者。
-v 显示chown命令所做的工作。

实例

代码语言:javascript
代码运行次数:0
运行
复制
# 把目录 /test 及其下的所有文件和子目录的属主改成 user_00,属组改成 guest
$ chown -R user_00:guest /test

2.5. copy

该命令的功能是将给出的文件或目录拷贝到另一文件或目录中

语法

代码语言:javascript
代码运行次数:0
运行
复制
$ cp [选项] 源文件或目录 目标文件或目录

常用选项

代码语言:javascript
代码运行次数:0
运行
复制
-a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,
    其作用等于dpR选项的组合。
-d 拷贝时保留链接。
-f 删除已经存在的目标文件而不提示。
-i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。
    回答y时目标文件将被覆盖,是交互式拷贝。
-p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
-r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。
    此时目标文件必须为一个目录名。
-l 不作拷贝,只是链接文件。

实例

代码语言:javascript
代码运行次数:0
运行
复制
# % 将 /usr/xu 目录中的所有文件及其子目录拷贝到目录 /usr/liu 中。
$ cp -r /usr/xu/ /usr/liu/

2.6. diff

该命令的功能为逐行比较两个文本文件,列出其不同之处

语法

代码语言:javascript
代码运行次数:0
运行
复制
$ diff [选项] file1 file2

常用选项

代码语言:javascript
代码运行次数:0
运行
复制
-b 忽略行尾的空格,而字符串中的一个或多个空格符都视为相等。
-c 采用上下文输出格式(提供三行上下文)。
-C n 采用上下文输出格式(提供 n 行上下文)。
-e 产生一个合法的 ed 脚本作为输出。
-r 当 file1 和 file2 是目录时,递归作用到各文件和目录上。

2.7. find

在目录结构中搜索文件,并执行指定的操作。

语法

代码语言:javascript
代码运行次数:0
运行
复制
$ find [起始目录] 寻找条件 操作

常用选项

代码语言:javascript
代码运行次数:0
运行
复制
# 以名称和文件属性查找。
    -name '字串'  查找文件名匹配所给字串的所有文件,字串内可用通配符 *、?、[ ]。
    -lname '字串' 查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符 *、?、[ ]。
    -gid n          查找属于ID号为 n 的用户组的所有文件。
    -uid n          查找属于ID号为 n 的用户的所有文件。
    -group '字串' 查找属于用户组名为所给字串的所有的文件。
    -user '字串'  查找属于用户名为所给字串的所有的文件。
    -empty          查找大小为 0的目录或文件。
    -path '字串'  查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[ ]。
    -perm 权限    查找具有指定权限的文件和目录,权限的表示可以如711,644。
    -size n[bckw] 查找指定文件大小的文件,n 后面的字符表示单位,缺省为 b,代表512字节的块。
    -type x   查找类型为 x 的文件,x 为下列字符之一:
# 以时间为条件查找
    -amin n  查找n分钟前被访问过的所有文件。
    -atime n 查找n天前被访问过的所有文件。
    -cmin n  查找n分钟前文件状态被修改过的所有文件。
    -ctime n 查找n天前文件状态被修改过的所有文件。
    -mmin n  查找n分钟前文件内容被修改过的所有文件。
    -mtime n 查找n天以前文件内容被修改过的所有文件。
# 可执行的操作
    -exec 命令名称 {}  对符合条件的文件执行所给的Linux 命令,而不询问用户是否需要执行该命令。
        {}表示命令的参数即为所找到的文件;命令的末尾必须以“ \;”结束。
    -ok 命令名称 {}   对符合条件的文件执行所给的Linux 命令,与exec不同的是,
        它会询问用户是否需要执行该命令。

实例

代码语言:javascript
代码运行次数:0
运行
复制
# 查找当前目录中所有以main开头的文件,并显示这些文件的内容。
$ find . -name ‘main*' -exec more {} \;

2.8. grep

强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。

语法

代码语言:javascript
代码运行次数:0
运行
复制
$ grep [选项] [查找模式] [文件名1,文件名2,……]

常用选项

代码语言:javascript
代码运行次数:0
运行
复制
-E 每个模式作为一个扩展的正则表达式对待。
-F 每个模式作为一组固定字符串对待(以新行分隔),而不作为正则表达式。
-b 在输出的每一行前显示包含匹配字符串的行在文件中的字节偏移量。
-c 只显示匹配行的数量。
-i 比较时不区分大小写。
-h 在查找多个文件时,指示grep不要将文件名加入到输出之前。
-l 显示首次匹配串所在的文件名并用换行符将其隔开。
当在某文件中多次出现匹配串时,不重复显示此文件名。
-n 在输出前加上匹配串所在行的行号(文件首行行号为1)。
-v 只显示不包含匹配串的行。
-x 只显示整行严格匹配的行。
-e expression 指定检索使用的模式。用于防止以“-”开头的模式被解释为命令选项。
-f expfile 从expfile文件中获取要搜索的模式,一个模式占一行。
-r 递归搜索
--color=auto 将找到的关键词部分加上颜色显示

实例

代码语言:javascript
代码运行次数:0
运行
复制
# 将 /etc/passwd 文件中出现 root 的行取出来,关键词部分加上颜色显示。
$ grep "root" /etc/passwd --color=auto
# “*”用来生成一个文件名列表,包含当前目录下所有的文件
$ grep data *

2.9. ln

该命令在文件之间创建链接。

语法

代码语言:javascript
代码运行次数:0
运行
复制
$ ln [参数] [源文件或目录] [目标文件或目录]

常用选项

代码语言:javascript
代码运行次数:0
运行
复制
-b 删除,覆盖以前建立的链接
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接)
-v 显示详细的处理过程

实例

代码语言:javascript
代码运行次数:0
运行
复制
# 为当前目录下的文件 lunch 创建了一个符号链接 /home/xu。
ln -s lunch /home/xu

2.10. mv

将一个档案移至另一档案,或将数个档案移至另一目录。

语法

代码语言:javascript
代码运行次数:0
运行
复制
$ mv [选项] 源文件或目录 目标文件或目录

常用选项

代码语言:javascript
代码运行次数:0
运行
复制
-b  当遇到要覆盖其他文件或目录时,将自动备份,备份文件名为
    原文件名加上 -S 参数指定的字符串,若未设置则加上“~”
-i  若目的地已有同名档案,则先询问是否覆盖旧档
-f  若目的地已有同名档案,直接覆盖旧档而不备份
-u  当要覆盖的文件或目录比源文件要新,则不覆盖目标文件;
-S  <字符串>  指定备份文件名后要加上的字符串。

实例

代码语言:javascript
代码运行次数:0
运行
复制
# 将所有的 .js 文件移至 src 子目录中。
$ mv -i *.js src

2.11. tail

示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

语法

代码语言:javascript
代码运行次数:0
运行
复制
$ tail [必要参数] [选择参数] [文件]

常用选项

代码语言:javascript
代码运行次数:0
运行
复制
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c <数目> 显示的字节数
-n <行数> 显示行数
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

实例

代码语言:javascript
代码运行次数:0
运行
复制
# 循环查看文件内容
$ tail -f web-access.log

2.12. wc

用来显示文件所包含的行、字和字节数。

语法

代码语言:javascript
代码运行次数:0
运行
复制
$ wc [选项] [文件]

常用选项

代码语言:javascript
代码运行次数:0
运行
复制
-c 统计字节数
-l 统计行数
-m 统计字符数,这个标志不能与 -c 标志一起使用
-w 统计字数,一个字被定义为由空白、跳格或换行字符分隔的字符串
-L 打印最长行的长度

实例

代码语言:javascript
代码运行次数:0
运行
复制
# 统计test文件行号
$ wc -l test.txt
$ cat test.txt | wc -l

三,压缩备份

3.1. tar

用来压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的。

语法

代码语言:javascript
代码运行次数:0
运行
复制
$ tar [必要参数] [选择参数] [文件]

常用选项

代码语言:javascript
代码运行次数:0
运行
复制
-A 新增压缩文件到已存在的压缩
-B 设置区块大小
-c 建立新的压缩文件
-d 记录文件的差别
-f <备份文件>或--file=<备份文件> 指定备份文件。
-r 添加文件到已经压缩的文件
-u 添加改变了和现有的文件到已经存在的压缩文件
-x 从压缩的文件中提取文件
-t 显示压缩文件的内容
-z 支持gzip解压文件
-j 支持bzip2解压文件
-Z 支持compress解压文件
-v 显示操作过程
-l 文件系统边界设置
-k 保留原有文件不覆盖
-m 保留文件不被覆盖
-W 确认压缩文件的正确性

实例

代码语言:javascript
代码运行次数:0
运行
复制
# 仅打包,不压缩!
$ tar -cvf test.tar test.log 
# 打包后,以 gzip 压缩 
$ tar -zcvf test.tar.gz test.log 
# 打包后,以 bzip2 压缩
$ tar -jcvf test.tar.bz2 test.log
# 解压文件
$ tar -xzvf test.tar.gz

3.2. zip

zip 命令,类似于 Windows 系统中的 winzip 压缩程序

语法

代码语言:javascript
代码运行次数:0
运行
复制
$ zip [选项] 压缩包名 源文件或源目录列表

常用选项

代码语言:javascript
代码运行次数:0
运行
复制
-r	递归压缩目录,及将制定目录下的所有文件以及子目录全部压缩。
-m	将文件压缩之后,删除原始文件,相当于把文件移到压缩文件中。
-v	显示详细的压缩过程信息。
-q	在压缩的时候不显示命令的执行过程。
-压缩级别	压缩级别是从 1~9 的数字,-1 代表压缩速度更快,-9 代表压缩效果更好。
-u	更新压缩文件,即往压缩文件中添加新文件。

实例

代码语言:javascript
代码运行次数:0
运行
复制
# 将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip:
$ zip -qr html.zip /home/html
# 从压缩文件 cp.zip 中删除文件 a.c
$ zip -dv cp.zip a.c

3.3. unzip

语法

代码语言:javascript
代码运行次数:0
运行
复制
$ unzip [选项] 压缩包

常用选项

代码语言:javascript
代码运行次数:0
运行
复制
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f 更新现有的文件。
-l 显示压缩文件内所包含的文件。
-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-t 检查压缩文件是否正确。
-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
-v 执行是时显示详细的信息。

实例

代码语言:javascript
代码运行次数:0
运行
复制
# 查看压缩文件中包含的文件
$ unzip -l abc.zip 
# 查看压缩文件目录信息,但是不解压该文件。
$ unzip -v abc.zip

四,磁盘操作

4.1. df

显示指定磁盘文件的可用空间。

语法

代码语言:javascript
代码运行次数:0
运行
复制
$ df [选项] [文件]

常用参数

代码语言:javascript
代码运行次数:0
运行
复制
-a 全部文件系统列表
-h 方便阅读方式显示
-H 等于“-h”,但是计算式,1K=1000,而不是1K=1024
-i 显示inode信息
-k 区块为1024字节
-l 只显示本地文件系统
-m 区块为1048576字节
--no-sync 忽略 sync 命令
-P 输出格式为POSIX
--sync 在取得磁盘信息前,先执行sync命令
-T 文件系统类型

实例

代码语言:javascript
代码运行次数:0
运行
复制
# 显示指定磁盘使用情况
$ df -f

4.2. du

显示每个文件和目录的磁盘使用空间。

语法

代码语言:javascript
代码运行次数:0
运行
复制
$ du [选项] [文件]

常用参数

代码语言:javascript
代码运行次数:0
运行
复制
-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-- -c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或--kilobytes 以KB(1024bytes)为单位输出。
-m或--megabytes 以MB为单位输出。
-s或--summarize 仅显示总计,只列出最后加总的值。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
--exclude=<目录或文件> 略过指定的目录或文件。
-D或--dereference-args 显示指定符号链接的源文件大小。
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-l或--count-links 重复计算硬件链接的文件。

实例

代码语言:javascript
代码运行次数:0
运行
复制
# 显示指定目录
$ du test
# 显示文件所占空间
$ du test.log

五,网络通信

5.1. ping

ping 命令用于检测主机

语法

代码语言:javascript
代码运行次数:0
运行
复制
ping [选项] 主机名称或IP地址

常用选项

代码语言:javascript
代码运行次数:0
运行
复制
-d 使用Socket的SO_DEBUG功能。
-c<完成次数> 设置完成要求回应的次数。
-f 极限检测。
-i<间隔秒数> 指定收发信息的间隔时间。
-I<网络界面> 使用指定的网络接口送出数据包。
-l<前置载入> 设置在送出要求信息之前,先行发出的数据包。
-n 只输出数值。

实例

代码语言:javascript
代码运行次数:0
运行
复制
# 检测是否与主机连通
$ ping www.qq.com 
# 指定接收包的次数
$ ping -c 2 www.qq.com

5.2. netstat

Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。

语法

代码语言:javascript
代码运行次数:0
运行
复制
$ netstat [选项]

常用选项

代码语言:javascript
代码运行次数:0
运行
复制
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态

-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

实例

代码语言:javascript
代码运行次数:0
运行
复制
# 列出所有端口
$ netstat -a | more
# 列出所有 tcp 端口 netstat -at
$ netstat -at
# 列出所有 udp 端口 netstat -au
$ netstat -au
# 列出所有处于监听状态的 Sockets
$ netstat -l
$ netstat -lt
# 找出程序运行的端口
$ netstat -ap | grep ssh
# 找出运行在指定端口的进程
$ netstat -an | grep ':80'

参考

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020年10月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一,帮助命令
    • 1.1. man
  • 二,文件操作
    • 2.1. cat
    • 2.2. clear
    • 2.3. chmod
      • 2.3.1. 文字设定法
      • 2.3.2. 数字设定法
    • 2.4. chown
    • 2.5. copy
    • 2.6. diff
    • 2.7. find
    • 2.8. grep
    • 2.9. ln
    • 2.10. mv
    • 2.11. tail
    • 2.12. wc
  • 三,压缩备份
    • 3.1. tar
    • 3.2. zip
    • 3.3. unzip
  • 四,磁盘操作
    • 4.1. df
    • 4.2. du
  • 五,网络通信
    • 5.1. ping
    • 5.2. netstat
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档