Linux常用命令

发布时间:2024年01月07日

shell命令是由三部分组成的分别为命令本身、选项(可选)、参数(可选)。

选项:同一命令采用不同的选项,其功能也不相同。选项可以有一个“-”,也可以有多个,甚至可以没有。选项通常以“-”开头,当有多个选项时,可以只使用一个“-”符号。

参数:执行该命令所需的对象,如文件、目录等。根据命令不同,参数可以有一个、多个或没有。

1、ls

命令用于显示指定工作目录下之的内容目录文件等

选项
-a显示所有文件及目录(?.? ?靠头的隐藏文件也将列出)
-d只列出目录,不递归列出目录中的文件,只显示目录本身不显示目录中的内容
-l以长格式显示文件和目录信息,包含权限、所有者、大小。创作时间等信息
-r

倒序显示文件和目录

-t将按照修改时间排序,最新的文件再最前面
-A同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
-F在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
-R?递归显示目录中的所有文件和子目录。
root@serein-virtual-machine:~/fisco# ls -a
.  ..  build_chain.sh  console  console.tar.gz  .fisco  fisco-bcos  webase  webase-deploy.zip
root@serein-virtual-machine:~/fisco# ls -d
.
root@serein-virtual-machine:~/fisco# ls -l
总用量 79284
-rwxr--r-- 1 root root     72216 11月 23 08:18 build_chain.sh
drwxr-xr-x 8  502 staff     4096 11月 23 09:43 console
-rw-r--r-- 1 root root  50440597 11月 23 09:05 console.tar.gz
-rwxr-xr-x 1 root root  30593416 12月 14 00:23 fisco-bcos
drwxr-xr-x 2 root root      4096 12月 14 00:23 webase
-rw-r--r-- 1 root root     57906 4月  18  2023 webase-deploy.zip
root@serein-virtual-machine:~/fisco# ls -r
webase-deploy.zip  webase  fisco-bcos  console.tar.gz  console  build_chain.sh
root@serein-virtual-machine:~/fisco# ls -t
fisco-bcos  webase  console  console.tar.gz  build_chain.sh  webase-deploy.zip
root@serein-virtual-machine:~/fisco# ls -A
build_chain.sh  console  console.tar.gz  .fisco  fisco-bcos  webase  webase-deploy.zip
root@serein-virtual-machine:~/fisco# ls -F
build_chain.sh*  console/  console.tar.gz  fisco-bcos*  webase/  webase-deploy.zip
root@serein-virtual-machine:~/fisco# ls -R

2、cd?

~表示当前用户的家目录,./表示当前目录,../表示上一级目录

语法: cd + 路径

//当前目录
serein@serein-virtual-machine:~$ cd ./
//返回上一级目录
serein@serein-virtual-machine:~$ cd ../
//进入指定目录
serein@serein-virtual-machine:/home$ cd ./serein/
返回上上级目录
serein@serein-virtual-machine:~$ cd ../../

3、cat

用于查看文件内容,将内容打印带控制台上

语法 :cat +选项(可选)+文件名

选项

-n由 1 开始对所有输出的行数编号。
-b和 -n 相似,只不过对于空白行不编号。
-s当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E在每行结束处显示 $。
-T将 TAB 字符显示为 ^I。
-A等价于 -vET。
-e等价于"-vE"选项;
-t等价于"-vT"选项;

4、chmod

用于修改文件或目录的权限,需要超级用户?root?的权限才能执行此命令。

user新的文件拥有者的使用者 ID
group新的文件拥有者的使用者组(group)
-c显示更改的部分的信息
-f忽略错误信息
-h修复符号链接
-v显示详细的处理信息
-R处理指定目录以及其子目录下的所有文件

5、find

在指定目录下查找文件和目录。

它可以使用不同的选项来过滤和限制查找的结果。

语法:find [路径] [匹配条件] [动作]

路径?是要查找的目录路径,可以是一个目录或文件名,也可以是多个路径,多个路径之间用空格分隔,如果未指定路径,则默认为当前目录。

选项

-name?pattern按文件名查找,支持使用通配符?*?和??
-type按文件类型查找,可以是?f(普通文件)、d(目录)、l(符号链接)等。
-size [+-]size[cwbkMG]按文件大小查找,支持使用?+?或?-?表示大于或小于指定大小,单位可以是?c(字节)、w(字数)、b(块数)、k(KB)、M(MB)或?G(GB)。
-mtime days按修改时间查找,支持使用?+?或?-?表示在指定天数前或后,days 是一个整数表示天数。
-user username按文件所有者查找。
-group groupname按文件所属组查找。

动作:?可选的,用于对匹配到的文件执行操作

find 命令中用于时间的参数如下:

  • -amin n:查找在 n 分钟内被访问过的文件。
  • -atime n:查找在 n*24 小时内被访问过的文件。
  • -cmin n:查找在 n 分钟内状态发生变化的文件(例如权限)。
  • -ctime n:查找在 n*24 小时内状态发生变化的文件(例如权限)。
  • -mmin n:查找在 n 分钟内被修改过的文件。
  • -mtime n:查找在 n*24 小时内被修改过的文件。

在这些参数中,n 可以是一个正数、负数或零。正数表示在指定的时间内修改或访问过的文件,负数表示在指定的时间之前修改或访问过的文件,零表示在当前时间点上修改或访问过的文件。

例如:-mtime 0?表示查找今天修改过的文件,-mtime -7?表示查找一周以前修改过的文件。

关于时间 n 参数的说明:

  • +n:查找比 n 天前更早的文件或目录。

  • -n:查找在 n 天内更改过属性的文件或目录。

  • n:查找在 n 天前(指定那一天)更改过属性的文件或目录。

6、mv

命令用来为文件或目录改名、或将文件或目录移入其它位置。

语法:mv [选项] 源文件 目标文件

选项

-b当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
-i如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
-f如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
-n不要覆盖任何已存在的文件或目录。
-u当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

7、rm

命令用于删除一个文件或者目录。

注意:rm命令删除的时候将会将文件永久删除,是不可逆的,无法找回,请谨慎使用,尽量减少rm命令的使用,使用时请仔细确认文件和目录是否正确!!!!!!

语法 : rm + 选项+文件?

-i删除前逐一询问确认。
-f即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r将目录及以下之档案亦逐一删除。

8、cp

令主要用于复制文件或目录。

语法:cp [选项] 源文件 目标文件

选项

-a此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于 dpR 参数组合。
-d复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
-r用于复制目录及其所有的子目录和文件,如果要复制目录,需要使用该选项。
-i在复制前提示确认,如果目标文件已存在,则会询问是否覆盖,回答?y?时目标文件将被覆盖。
-u仅复制源文件中更新时间较新的文件。
-v显示详细的复制过程。
-p显示详细的复制过程。
-f强制复制,即使目标文件已存在也会覆盖,而且不给出提示。
-l不复制文件,只是生成链接文件。

9、rcp

?rcp命令用于复制远程文件或目录。

rcp指令用在远端复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。

语法:rcp [-pr][源文件或目录][目标文件或目录]

选项

-p保留源文件或目录的属性,包括拥有者,所属群组,权限与时间。
-r递归处理,将指定目录下的文件与子目录一并处理。

rcp root@218.6.132.5:./testfile testfile  #复制远程文件到本地  
rcp root@218.6.132.5:home/rootlocal/testfile testfile  
#要求当前登录账户cmd 登录到远程主机  
rcp 218.6.132.5:./testfile testfile

10、 touch

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

语法:touch [选项] 文件名

选项:

?-a改变档案的读取时间记录。
-m改变档案的修改时间记录。
-c假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
-f不使用,是为了与其他 unix 系统的相容性而保留。
-r使用参考档的时间记录,与 --file 的效果一样。
-d设定时间与日期,可以使用各种不同的格式。
-t设定档案的时间记录,格式与 date 指令相同。
--no-create不会建立新档案。
如果只想更改文件的访问时间而不修改文件内容,可以使用 -a 选项,如下所示:

touch -a file.txt
如果只想更改文件的修改时间而不修改文件内容,可以使用 -m 选项,如下所示:

touch -m file.txt
如果要使用指定的时间值设置文件的时间戳,可以使用 -d 选项,后跟时间值,如下所示:

touch -d "2022-01-01 10:30:00" file.txt
这将把文件 file.txt 的时间戳设置为指定的日期和时间。

11、scp

scp 命令用于 Linux 之间复制文件和目录。

scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。

scp 是加密的,rcp?是不加密的,scp 是 rcp 的加强版。

参数

  • -1: 强制scp命令使用协议ssh1
  • -2: 强制scp命令使用协议ssh2
  • -4: 强制scp命令只使用IPv4寻址
  • -6: 强制scp命令只使用IPv6寻址
  • -B: 使用批处理模式(传输过程中不询问传输口令或短语)
  • -C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
  • -p:保留原文件的修改时间,访问时间和访问权限。
  • -q: 不显示传输进度条。
  • -r: 递归复制整个目录。
  • -v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
  • -c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
  • -F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
  • -i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
  • -l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
  • -o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
  • -P port:注意是大写的P, port是指定数据传输用到的端口号
  • -S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

12、which

which命令用于查找文件。

which指令会在环境变量$PATH设置的目录里查找符合条件的文件。

语法:which [文件...]

选项

-n<文件名长度>指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p<文件名长度>与-n参数相同,但此处的<文件名长度>包括了文件的路径。
-w指定输出时栏位的宽度。

13、sed

sed 命令是利用脚本来处理文本文件。

sed 可依照脚本的指令来处理、编辑文本文件。

Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

语法:sed [选项] '脚本' 文件

选项

-e<script>以选项中指定的script来处理输入的文本文件。
-f<script文件>以选项中指定的script文件来处理输入的文本文件。
-h显示帮助。
-n仅显示script处理后的结果。
-V显示版本信息。

脚本中的编辑指令可以是以下形式之一:

  • s/模式/替换/:在每一行中查找模式并将其替换为指定的内容。
  • 地址 s/模式/替换/:只在满足地址条件的行中查找模式并替换。
  • 地址1,地址2 s/模式/替换/:在满足地址1和地址2之间的行中查找模式并替换。
  • 地址 d:删除满足地址条件的行。
  • 地址1,地址2 d:删除满足地址1和地址2之间的行。
  • 地址 a\文本:在满足地址条件的行之后添加文本。
  • 地址 i\文本:在满足地址条件的行之前插入文本。
a新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d删除,因为是删除啊,所以 d 后面通常不接任何东东;
i插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正则表达式!例如 1,20s/old/new/g 就是啦!

例如,要在文件 file.txt 中将所有的 "apple" 替换为 "orange",可以使用以下命令:

sed 's/apple/orange/' file.txt
如果要将替换操作应用到文件中的每一行,可以使用 g 选项:

sed 's/apple/orange/g' file.txt
要在第3行之后添加一行文本 "Hello",可以使用以下命令:

sed '3 a\Hello' file.txt
要删除包含 "apple" 的行,可以使用以下命令:

sed '/apple/d' file.txt
这只会在输出中删除匹配的行,不会修改原始文件。

14、wc

?wc命令用于计算字数。

利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。

语法:wc [-clw][--help][--version][文件...]

选项

-c只显示Bytes数。
-l显示行数。
-w只显示字数。

15、tree

tree命令用于以树状图列出目录的内容。

执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件。

语法:tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录...]

选项

-a 显示所有文件和目录。
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
-C 在文件和目录清单加上色彩,便于区分各种类型。
-d 显示目录名称而非内容。
-D 列出文件或目录的更改时间。
-f 在每个文件或目录之前,显示完整的相对路径名称。
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-i 不以阶梯状列出文件或目录名称。
-L level 限制目录显示层级。
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-n 不在文件和目录清单加上色彩。
-N 直接列出文件和目录名称,包括控制字符。
-p 列出权限标示。
-P<范本样式> 只显示符合范本样式的文件或目录名称。
-q 用"?"号取代控制字符,列出文件和目录名称。
-s 列出文件或目录大小。
-t 用文件和目录的更改时间排序。
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。

?16、useradd

?useradd 命令用于建立用户帐号。

useradd 可用来建立用户帐号。帐号建好之后,再用 passwd 设定帐号的密码。而可用 userdel 删除帐号。使用 useradd 指令所建立的帐号,实际上是保存在 /etc/passwd 文本文件中。

语法:?useradd -D [-b][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>]

-c<备注>  加上备注文字。备注文字会保存在passwd的备注栏位中。
-d<登入目录>  指定用户登入时的起始目录。
-D  变更预设值.
-e<有效期限>  指定帐号的有效期限。
-f<缓冲天数>  指定在密码过期后多少天即关闭该帐号。
-g<群组>  指定用户所属的群组。
-G<群组>  指定用户所属的附加群组。
-m  制定用户的登入目录。
-M  不要自动建立用户的登入目录。
-n  取消建立以用户名称为名的群组.
-r  建立系统帐号。
-s<shell>   指定用户登入后所使用的shell。
-u<uid>  指定用户ID。
添加一般用户

# useradd tt
为添加的用户指定相应的用户组

# useradd -g root tt
创建一个系统用户

# useradd -r tt
为新添加的用户指定home目录

# useradd -d /home/myd tt
建立用户且制定ID

# useradd caojh -u 544

17、clear

清屏

18、mkdir:创建新目录

mkdir directory

19、rmdir:删除空目录

rmdir directory

20、pwd:显示当前工作目录的路径

root@serein-virtual-machine:~/fisco# pwd
/root/fisco

21、more/less:逐页显示文本文件内容

more file_name
less file_name

22、tail

tail 命令可用于查看文件的内容,有一个常用的参数?-f?常用于查阅正在改变的日志文件。

tail -f filename?会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。

语法:tail [参数] [文件]

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

23、?kill:终止进程

?语法:kill + 选项+ ID

  • -l <信息编号>  若不加<信息编号>选项,则 -l 参数会列出全部的信息名称。
  • -s <信息名称或编号>  指定要送出的信息。
  • [程序]  [程序]可以是程序的PID或是PGID,也可以是工作编号。

使用 kill -l 命令列出所有可用信号。

最常用的信号是:

  • 1 (HUP):重新加载进程。
  • 9 (KILL):杀死一个进程。
  • 15 (TERM):正常停止一个进程。

24、ifconfig/ip:查看和配置网络接口信息

ifconfig
ip addr show

25、chown

利用 chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户 ID,组可以是组名或者组 ID,文件是以空格分开的要改变权限的文件列表,支持通配符。 。

chown 需要超级用户?root?的权限才能执行此命令。

语法:chown [-cfhvR] [--help] [--version] user[:group] file...

选项

user新的文件拥有者的使用者 ID
group新的文件拥有者的使用者组(group)
-c显示更改的部分的信息
-f忽略错误信息
-h修复符号链接
-v显示详细的处理信息
-R处理指定目录以及其子目录下的所有文件
  • user : 新的文件拥有者的使用者 ID
  • group : 新的文件拥有者的使用者组(group)
  • -c : 显示更改的部分的信息
  • -f : 忽略错误信息
  • -h :修复符号链接
  • -v : 显示详细的处理信息
  • -R : 处理指定目录以及其子目录下的所有文件
把 /var/run/httpd.pid 的所有者设置 root:
chown root /var/run/httpd.pid
将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup :

chown runoob:runoobgroup file1.txt
将当前前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:

chown -R runoob:runoobgroup *
把 /home/runoob 的关联组设置为 512 (关联组ID),不改变所有者:

chown :512 /home/runoob

26、tar

-c生成档案文件,创建打包文件
-x解开档案文件
-v列出归档接档的详细过程,显示进度
-f指定档案文件名称,f后面是.tar文件所以必须放在选项的最后

可以压缩为gz格式加-z选项

tar -czvf archive.tar.gz directory_name  # 压缩目录
tar -xzvf archive.tar.gz  # 解压文件

27、echo

echo:将文本输出到标准输出
echo "Hello, World!"

28、grep

命令用于查找文件里符合条件的字符串或正则表达式。常与tail、ps,等命令连用

语法:grep [options] pattern [files]

选项:

-i忽略大小写进行匹配。
-v反向查找,只打印不匹配的行。
-n显示匹配行的行号。
-r递归查找子目录中的文件。
-l只打印匹配的文件名。
-c只打印匹配的行数。

29、ps

命令用于显示当前进程的状态,类似于 windows 的任务管理器。

语法:ps [options] [--help]

选项

-A:显示所有进程。
-e:显示所有进程,除了执行ps命令终端下的进程。
-f:以ASCII字符显示树状结构,表达程序间的相互关系。
-H:显示树状结构,表示程序间的相互关系。
-N:显示所有的进程,除了执行ps指令终端机下的程序之外。
-s:采用程序信号的格式显示程序状况。
-S:列出程序时,包括已中断的子程序资料。
-t<终端机编号>:指定终端机编号,并列出属于该终端机的程序的状况。
-u:以用户为主的格式来显示程序状况。
-x:显示所有进程,不以终端机来区分。

30、shutdown

命令可以用来进行关机程序,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机。

立即关机:shutdown -h now

语法:shutdown [-t seconds] [-rkhncfF] time [message]

选项

-t seconds : 设定在几秒钟之后进行关机程序。
-k : 并不会真的关机,只是将警告讯息传送给所有使用者。
-r : 关机后重新开机。
-h : 关机后停机。
-n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机。
-c : 取消目前已经进行中的关机动作。
-f : 关机时,不做 fsck 动作(检查 Linux 档系统)。
-F : 关机时,强迫进行 fsck 动作。
time : 设定关机的时间。
message : 传送给所有使用者的警告讯息。

31、reboot

重新启动

32、unzip?

解压zip格式压缩包

语法:unzip +zip格式压缩包

33. passwd:更改用户密码

passwd username

34、netstat/ss:显示网络连接信息

netstat -tuln  # 显示所有TCP和UDP端口
ss -tuln  # 使用Socket Stat查看网络连接

?35、history:查看命令历史记录

history

?36、dd:用于复制和转换文件

dd [选项] [源文件或设备] [目标文件或设备]

f=filename:输入文件名,默认为标准输入,即指定源文件。
of=filename:输出文件名,默认为标准输出,即指定目的文件。
ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
bs=bytes:同时设置读入/输出的块大小为bytes个字节。
cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
seek=blocks:从输出文件开头跳过blocks个块后再开始复制(通常只有当输出文件是磁盘或磁带时才有效)。
count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
conv=conversion_options:转换选项,用于指定数据转换的方式。例如,使用conv=notrunc将不截断目标文件,使用conv=sync将用空字符填充输入块尾部的空格,等等。
示例用法:

拷贝文件:

shell
dd if=source.txt of=destination.txt
转换文件格式:

shell
dd if=input.txt of=output.bin conv=notrunc,sync
指定块大小:

shell
dd if=input.txt of=output.txt bs=1024 count=10000 ibs=512 obs=512 skip=20 seek=20000

?注意:

  • 使用dd命令时要特别小心,因为它可以对数据进行不可逆的操作。确保你明确知道每个选项和参数的含义。
  • 在执行dd命令之前,最好先查阅相关文档或手册页(通过man dd命令),以了解更多关于该命令的细节和用法。

:37、?sudo:以超级用户权限运行命令

sudo su    //进入root用户

文章来源:https://blog.csdn.net/2301_77326975/article/details/135409453
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。