当前位置:首页 > 技术笔记 > 正文内容

【系统命令】Linux centos7.9 常用命令大全及基础知识

2024年03月18日技术笔记180

  通配符和正则表达式

通配符代表bash操作接口的一个功能,但是正则表达式是一种字符串处理的表达方式。[tips]

通配符
* 代表【0个到无穷个】任意字符
? 代表【一定有一个】任意字符
[]【一定有一个在括号内】的字符(非任意字符)。例如【abcd】代表【一定有一个字符,可能是a、b、c、d这四个中的任何一个】。(和正则表达式中的含义相同)
[-] 代表【在编码顺序内的所有字符】,例如[0-9]代表一定有一个字符,这个字符是0和9之间的所有数字中的任何一个。(和正则表达式中的含义相同)
[^] 代表【反向选择】,例如[^abc]表示一定有一个字符,只要是非a、b、c的其他字符就接受的意思。(和正则表达式中的含义相同)

正则表达式
见《正则表达式.md.md》

正则表达式的特殊字符与一般在命令行输入命令的通配符并不相通,例如,在通配符中*表示【0到无穷多个字符】的意思,而正则表达式中,*表示*前面的字符【重复0到无穷多次】的意思。
例 不支持正则表达式的ls命令中,若我们使用ls -l *,代表列出任意文件名的文件,ls -l a*表示列出以a开头的任何文件名的文件。但在正则表达式中,我们要找到含有以a开头的文件,要使用ls | grep '^a.*' [tips]

  命令行(bash)中的快捷键

ctrl u 删除光标前面的所有内容
ctrl k删除光标及光标后面的所有内容
ctrl a 光标移动到命令行的开头
ctrl e光标移动到命令行的结尾

  linux中的路径简写

. 当前目录
.. 上一层目录
- 上一次的工作路径
~ 当前用户的家目录
~account 代表account这个使用者的家目录(account是个账号名称)

  linux中的特殊字符(p345)

#
\
|
;
$
&
!
/
>、>>
<、<<
''
""
``
()
{}

  ./可执行文件

  绝对路径/可执行文件

  bash可执行文件

  sh可执行文件

  文件与目录的增删改查

  cd

cd ~dmtsai #进入dmtsai这个使用者的家目录,亦即/home/dmtsai
cd ~ #表示回到当前用户的家目录
cd #不加任何路径,也表示回到当前用户的家目录

  mkdir

建立新目录
mkdir [OPTION]... DIRECTORY...   可以新建多个目录
-m 设置目录的权限,直接设置,不适用默认权限(umask)
-p 递归建立目录,如果目录存在则不建立,不会报目录已经存在的错误
[root@centos79 ~]# mkdir -m 711 test1 #新建目录,且目录权限为711
[root@centos79 ~]# ll
total 8
-rw-------. 1 root root 1669 Nov 29 17:02 anaconda-ks.cfg
drwxr-xr-x. 2 root root   22 Dec  1 10:24 bin
-rw-r--r--. 1 root root 1896 Nov 29 17:16 initial-setup-ks.cfg
drwx--x--x. 2 root root    6 Dec  3 04:25 test1
-rw-r--r--. 1 root root    0 Dec  3 04:01 testtouch

  touch

touch [OPTION]... FILE...
修改文件时间或创建文件
-a 仅自定义access time
-c 仅修改文件的时间,若该文件不存在则不建立新文件
-m 仅修改mtime
-d 后面可以接欲自定义的日期而不是用目前的日期,也可以使用--date=”日期或时间“,修改文件的atime和mtime
-t 后面可以接欲自定义的时间而不是用目前的时间,格式为[YYYYMMDDhhmm],修改文件的atime和mtime
touch testtouch 
#在默认状态下,如果touch后面接已存在的文件名,则该文件的三个时间(atime、ctime、mtime)都会更新为目前的时间。
#若该文件不存在,则会建立一个新的空文件
复制文件时,即使复制文件的所有属性,也没办法复制ctime这个属性。[tips]
knowledge:atime、ctime、mtime
修改时间【modification time, mtime】
当该文件的【内容数据】变更时,就会更新这个时间,内容数据指的是文件的内容,而不是文件的属性或权限
状态时间【status time, ctime】
当该文件的【状态】改变时,就会更新这个时间,举例来说,像是权限与属性被更改了,都会更新这个时间
读取时【access time, atime】
当【该文件的内容被读取】时,就会更新这个读取时间,举例来说,我们使用cat去读取/etc/man_db.conf,就会更新该文件的atime
文件的时间很重要,因为,如果文件的时间错误的话,可能会造成某些程序无法顺利运行。比如安装系统时系统时区不正确,那么系统文件也会和系统时间保持一致,将系统时区改为正确时区后,这些系统文件的时间就是错误的了。如果发现一个文件来自未来,可以使用touch将该文件变为现在时刻。

  rm

-f force,强制删除,忽略不存在的文件,不会出现瞥吉信息
-r 递归删除,用于删除目录
rm -rf test* 强制删除test开头的文件或目录
删除-开头的文件或目录[tips]:
  因为-是命令的选项参数,所以在删除-开头的文件或目录时系统会误判,所以要是加上文件的路径,如:rm ./-aaa- 表示删除当前目录下的-aaa-文件,或rm 文件的绝对路径。此方法同样适用于任何touch、cp、mv...等命令。或者使用rm -- -aaa-来删除-aaa-文件。

  rmdir

删除空目录,若目录不为空则无法删除
rmdir [OPTION]... DIRECTORY...
-p 递归删除
rmdir -p test1/test2/test3/test4 #使用-p选项,立刻可将test1/test2/test3/test4 多层目录一次性删掉,但是rmdir仅能删除空目录

  cp

1.复制文件、目录
2.建立链接文件(快捷方式)
3.比较两个文件的新旧而子以更新
Usage: cp [OPTION]... [-T] SOURCE DEST
  or: cp [OPTION]... SOURCE... DIRECTORY 源文件有多个时,目标文件一定是目录
  or: cp [OPTION]...-t DIRECTORY SOURCE...
Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
常见参数:
-p 连同文件的属性(权限、所属用户、时间) 一起复制过去,而非使用默议属性(常用于备份〉
-r 递归复制,用于目录的复制
-d 若源文件为链接文件的属性,则复制链接文件属性,而非文件本身
-f 强制,目标文件存在时使用此参数强制复制
-i 若目标文件已经存在时,在覆盖时会先询问操作是否要继续,y为确定,n为取消
-1 进行硬链接 (hard link),而非复制文件本身
-s 进行符号链接 (symbolic link),亦即创建快捷方式
-a 相当于-dr --preserver=a11,复制源文件的所有属性,使源文件和目标文件一模一样
--preserver=a11 除了复制-p的权限相关属性外,SELinux的属性,Links、xattr等属性也一同复制过去
-u 目标文件比源文件旧或目标文件不存在时才复制,常用于备份
在默认条件中,cp的源文件与目标文件的权限是不同的,目标文件的拥有者和所属组通常是使用cp命令的人。
knowledge: 符号链接和硬链接

  mv

1.移动文件、目录
2.重命名

  ls

Usage: ls [OPTION]... [FILE]... 可以接多个文件或目录,同时列出这些文件或目录
常见参数
-1 列出目录和文件的详细信息
  [root@centos79 ~]# 1s -1 bak/
  total 24
  drwxr-xr-x 2 root root 18 Nov 27 17:48 bak1
  -rwxr--r-- 1 root root 70 Oct 29 17:50 cpujiance.sh
  -rw-r--r-- 1 root root 4384 Oct 29 17:50 cpu.txt
  -rW-r--r-- 1 root root 1638 Oct 29 17:50 freel.txt
  -rw------- 1 root root 10 oct 29 17:51 nohup .out
  -rw-r--r-- 1 root root 11 Oct 29 17:51 sleep.sh
-d 仅列出目录本身,而不是列出目录内的文件
1s 目录:不会列出目录的数据,而是会列出目录内的文件的数据, 1s -d 目录:会列出目录本身的数据,而不是列出目录内的文件的数据
  [root@centos79 ~]# 1s-1d bak/
  drwxr-xr-x 3 root root 103 Nov 27 17:47 bak/
-R 连同子目录内容一起列出来
  [root@centos79 ~]# 1s -lR bak/
  bak/:
  total 24
  drwxr-xr-x 3 root root 30 Nov 27 17:55 bak1
  -rwxr--r-- 1 root root 70 Oct 29 17:50 cpujiance.sh
  -rw-r--r-- 1 root root 4384 Oct 29 17:50 cpu.txt
  -rw-r--r-- 1 root root 1638 Oct 29 17:50 free1.txt
  -rw------- 1 root root 10 Oct 29 17:51 nohup.out
  -rw-r--r-- 1 root root 11 Oct 29 17:51 sleep.sh
  bak/bak1:
  total 0
  -rw-r--r-- 1 root root 0 Nov 27 17:48 bak2
  drwxr-xr-x 2 root root 18 Nov 27 17:55 bak3
  bak/bak1/bak3:
  total 0
  -rw-r--r-- 1 root root 0 Nov 27 17:55 bak4
-A 显示所有文件,包括隐藏文件(.开头),但不包括.和..这两个目录
-F 在文件或目录名字的结尾对其进行标记,*表示可执行文件,/表示目录,=表示socket文件,|表示FIFO文件。
	1s -F | grep *$可以用来查找此目录中的可执行文件
-h 特文件容量以人类易读的方式(KB、GB)列出来,默认是以byte显示文件大小
	--b1ock-size=G 以G显示文件大小
-i 列出inode号码
-n 用UID和GID品示来代替所属用户和所属群组
-S 以文件容量大小进行排序显示,默认是以文件名进行排序显示
-r 排序时翻转排序
-t 以时间排序显示,默认是以文件名进行排序显示
--color=never 不要依据文件特性给子颜色显示
--color=always 显示颜色
--color=auto 让系统自行依据设置来判断是否给予颜色显示
--fu11-time 以完整时间模式(包含年月日时分〉显示
--time=[atime,ctime] 输出access时间 (atime)或改变权限属性时间(ctime),而非内容修改时间(modification time)(默认显示的是内容修改时间mtime)

  pwd

打印当前所在的目录(print working directory)
pwd -P 显示出真正的路径,而非使用链接(link)路径

  hostnamectl

hostnamect1 set-hostname NAME 设置主机-名,退出重新登陆后終端会显示设置的主机名
hostnamectl --help 查看更多用法

  hostname

类似于hostnamectl
hostname -help查看更多用法


免责声明:本站所发布信息部分整理自互联网具有公开性、共享性的信息,发布此信息旨在传播更多信息之目的,不代表本网站立场,转载请联系原作者并注明出处,如果侵犯了您的权益请与我们联系;本站提供的一切软件、教程和内容信息仅限用于学习和研究目的,无法保证有效性,真实性需自行辨别,不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容;如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务,我们非常重视版权问题,如有侵权请邮件与我们联系处理,我们将在24小时内更正、删除。E-mail:admin@bsfc.net

标签: Linuxcentos

“【系统命令】Linux centos7.9 常用命令大全及基础知识” 的相关文章