枫梓林——命令有点长,建议看目录提示阅读
[root@localhost ~]#ls [选项] [文件名或目录名]
选项:
-a: 显示所有文件
-d:显示目录信息,是当前目录信息
-h:按照正常文件大小显示
-i:显示文件的i节点号
-l:长格式显示
英文原意:change directory。
所在路径:Shell 内置命令。
执行权限:所有用户
绝对路径和相对路径
绝对路径:以跟目录为参照物,从根目录开始,一级一级进入目录
相对路径:以当前目录作为参照物,进行目录查找
特殊符号 | 作用 |
---|---|
~ | 家目录 |
- | 上次所在目录 |
. | 当前目录 |
… | 上级目录 |
英文原意:print name of current/working directory
所在路径:/bin/pwd
执行权限:所有用户。
功能描述:查询所在的工作目录
mkdir 是创建目录的命令,其基本信息如下。
命令名称:mkdir。
英文原意:make directories。
所在路径:/bin/mkdir。
执行权限:所有用户。
功能描述:创建空目录
-p 路径 当一次性创建多层不存在的目录的时候,添加-p参数,否则会报错
命令名称:rmdir。
英文原意:remove empty directories。
所在路径:/bin/rmdir。
执行权限:所有用户。
功能描述:删除空目录。
-p 递归删除目录
touch 命令
创建空文件或修改文件时间,这个命令的基本信息如下。
命令名称:touch。
英文原意:change file timestamps。
所在路径:/bin/touch。
执行权限:所有用户。
功能描述:修改文件的时间戳。
stat 是查看文件详细信息的命令,而且可以看到文件的这三个时间,其基本信息如下。
命令名称:stat。
英文原意:display file or file system status。
所在路径:/usr/bin/stat。
执行权限:所有用户。
功能描述:显示文件或文件系统的详细信息。
[root@server1 ~]# stat his.txt
文件 File: his.txt
大小Size: 1852 块 Blocks: 8 IO块 IO Block: 4096 regular file 普通文件
设备 Device: fd00h/64768d Inode: 35033983 Links: 1
权限 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
环境 Context: unconfined_u:object_r:admin_home_t:s0
最近访问时间 Access: 2020-06-16 15:33:47.092158503 +0800
最近更改时间 Modify: 2020-06-16 15:33:42.496158398 +0800
最近改动时间 Change: 2020-06-16 15:33:42.496158398 +0800
Birth: -
cat 命令用来查看文件内容。这个命令的基本信息如下。
命令名称:cat。
英文原意:concatenate files and print on the standard output。
所在路径:/bin/cat。
执行权限:所有用户。
功能描述:合并文件并打印输出到标准输出
[root@localhost ~]# cat [选项] 文件名
选项:
-A: 相当于-vET选项的整合,用于列出所有隐藏符号
-E:列出每行结尾的回车符$
-n: 显示行号
ba
-T:把 Tab键用^I显示出来
-v:列出特殊字符
more 是分屏显示文件的命令,其基本信息如下。
命令名称:more。
英文原意:file perusal filter for crt viewin。
所在路径:/bin/more。
执行权限:所有用户。
功能描述:分屏显示文件内容。
more 命令比较简单,一般不用什么选项,命令会打开一个交互界面,可以识别一些交互命令。常
用的交互命令如下。
空格键:向下翻页。
b:向上翻页。
回车键:向下滚动一行。
/字符串:搜索指定的字符串。
q:退出。
命令名称:less。
英文原意:opposite of more。
所在路径:/usr/bin/less。
执行权限:所有用户。
功能描述:分行显示文件内容
head 是用来显示文件开头的命令,其基本信息如下。
命令名称:head。
英文原意:output the first part of files。
所在路径:/usr/bin/head。
执行权限:所有用户。
功能描述:显示文件开头的内容。
命令格式
[root@localhost ~]# head [选项] 文件名
选项:
-n 行数: 从文件头开始,显示指定行数
-v: 显示文件名
既然有显示文件开头的命令,就会有显示文件结尾的命令。tail 命令的基本信息如下。
命令名称:tail
英文原意:output the last part of files。
所在路径:/usr/bin/tail。
执行权限:所有用户。
功能描述:显示文件结尾的内容。
命令格式
[root@localhost ~]# tail [选项] 文件名
选项:
-n 行数: 从文件结尾开始,显示指定行数
-f: 监听文件的新增内容
命令名称:ln。
英文原意:make links between file。
所在路径:/bin/ln。
执行权限:所有用户。
功能描述:在文件之间建立链接。
如果创建硬链接:
[root@localhost ~]# touch cangls //建立硬链接文件,目标文件没有写文件名,会和原名一致
[root@localhost ~]# ln /root/cangls /tmp/ //也就是/root/cangls和/tmp/cangls是硬链接文件
创建软链接(就是windows快捷方式)
root@localhost ~]# touch bols
[root@localhost ~]# ln -s /root/bols /tmp/ //建立软链接文件
rm 是强大的删除命令,不仅可以删除文件,也可以删除目录。这个命令的基本信息如下。
命令名称:rm。
英文原意:remove files or directories。
所在路径:/bin/rm。
-f:force,强制删除,不提示是否删除
-r:表示递归
cp 是用于复制的命令,其基本信息如下:
命令名称:cp。
英文原意:copy files and directories。
所在路径:/bin/cp。
执行权限:所有用户。
功能描述:复制文件和目录。
命令格式
[root@localhost ~]# cp [选项] 源文件 目标文件
选项:
-a:相当于-dpr选项的集合,这几个选项我们一一介绍
-d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接
-i:询问,如果目标文件已经存在,则会询问是否覆盖
-p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间)
-r:递归复制,用于复制目录剪贴
mv 是用来剪切的命令,其基本信息如下。
命令名称:mv。
英文原意:move (rename) files。
所在路径:/bin/mv。
执行权限:所有用户。
功能描述:移动文件或改名。
命令格式
[root@localhost ~]# mv [选项] 源文件 目标文件
选项:
-f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖
-i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项)
-v:显示详细信息
-rw-r--r--. 1 root root 24772 1月14 18:17 install.log
可以使用“info ls”命令查看。文件类型
第一位
- “-”: | 普通文件。 |
---|---|
- “b”: | **块设备文件。**这是一种特殊设备文件,存储设备都是这种文件,如分区文件/dev/sda1就是这种文件。 |
- “c”: | **字符设备文件。**这也是特殊设备文件,输入设备一般都是这种文件,如鼠标、键盘等。 |
- “d”: | 目录文件。Linux 中一切皆文件,所以目录也是文件的一种。 |
- “l”: | 软链接文件。 |
- “p”: | **管道符文件。**这是一种非常少见的特殊设备文件。 |
- “s”: | 套接字文件。这也是一种特殊设备文件,一些服务支持 Socket 访问,就会产生这样的文件。 |
第 2~4 位代表文件所有者的权限。
- r: | 代表 read,是读取权限。 |
---|---|
- w: | 代表 write,是写权限。 |
- x: | 代表 execute,是执行权限。 |
如果有字母,则代表拥有对应的权限;如果是“-”,则代表没有对应的权限。
第 5~7 位代表文件所属组的权限,同样拥有“rwx”权限。
第 8~10 位代表其他人的权限,同样拥有“rwx”权限。
修改权限的命令 chmod
命令名称:chmod。
英文原意:change file mode bits。
所在路径:/bin/chmod。
执行权限:所有用户。
功能描述:修改文件的权限模式。
2.1.命令格式
[root@localhost ~]# chmod [选项] 权限模式 文件名
选项:
-R:递归设置权限,也就是给子目录中的所有文件设定权限
2.2.权限模式
chmod 命令的权限模式的格式是“[ugoa][[±=][rwx]”的格式,我们来解释一下。
用户身份。
- u:代表所有者(user)。
- g:代表所属组(group)。
- o:代表其他人(other)。
- a:代表全部身份(all)。
赋予方式。
- +:加入权限。
- -:减去权限。
- =:设置权限。
权限。
- r:读取权限(read)。
- w:写权限(write)。
- x:执行权限(execute)。
2.3.数字权限
数字权限的赋予方式是最简单的,但是不如之前的字母权限好记、直观。我们来看看这些数字权限的含义。
4:代表“r”权限。
2:代表“w”权限。
1:代表“x”权限。
2.4.常用权限
数字权限的赋予方式更加简单,但是需要用户对这几个数字更加熟悉。其实常用权限也并不多,
只有如下几个。
644:这是文件的基本权限,代表所有者拥有读、写权限,而所属组和其他人拥有只读权限。
755:这是文件的执行权限和目录的基本权限,代表所有者拥有读、写和执行权限,而所属组和其他人拥有读和执行权限。
777:这是最大权限。在实际的生产服务器中,要尽力避免给文件或目录赋予这样的权限,这会造成一定的安全隐患。
权限含义的解释
首先,读、写、执行权限对文件和目录的作用是不同的。
权限对文件的作用。
- 读(r):对文件有读(r)权限,代表可以读取文件中的数据。如果把权限对应到命令上,那么一旦对文件有读(r)权限,就可以对文件执行 cat、more、less、head、tail 等文件查
看命令。
- 写(w):对文件有写(w)权限,代表可以修改文件中的数据。如果把权限对应到命令上,那么一旦对文件有写(w)权限,就可以对文件执行 vim、echo 等修改文件数据的命令。注意:对文件有写权限,是不能删除文件本身的,只能修改文件中的数据。如果要想删除文件,则需要对文件的上级目录拥有写权限。
- 执行(x):对文件有执行(x)权限,代表文件拥有了执行权限,可以运行。在 Linux 中,只要文件有执行(x)权限,这个文件就是执行文件了。只是这个文件到底能不能正确执行,不仅需要执行(x)权限,还要看文件中的代码是不是正确的语言代码。对文件来说,执行
(x)权限是最高权限。
权限对目录的作用。
- 读(r):对目录有读(r)权限,代表可以查看目录下的内容,也就是可以查看目录下有哪些子文件和子目录。如果把权限对应到命令上,那么一旦对目录拥有了读(r)权限,就可以在目录下执行 ls 命令,查看目录下的内容了。
- 写(w):对目录有写(r)权限,代表可以修改目录下的数据,也就是可以在目录中新建、删除、复制、剪切子文件或子目录。如果把权限对应到命令上,那么一旦对目录拥有了写(w)权限,就可以在目录下执行 touch、rm、cp、mv 命令。对目录来说,写(w)权限是最高
权限。
- 执行(x):目录是不能运行的,那么对目录拥有执行(x)权限,代表可以进入目录。如果把权限对应到命令上,那么一旦对目录拥有了执行(x)权限,就可以对目录执行 cd 命令,进入目录。
目录的可用权限
目录的可用权限其实只有以下几个。
0:任何权限都不赋予。
5:基本的目录浏览和进入权限。
7:完全权限。
所有者和所属组命令
chown 命令
chown 是修改文件和目录的所有者和所属组的命令,其基本信息如下。
命令名称:chown。
英文原意:change file owner and group。
所在路径:/bin/chown。
执行权限:所有用户。
功能描述:修改文件和目录的所有者和所属组。
1)命令格式
[root@localhost ~]# chown [选项] 所有者:所属组 文件或目录 // chown -R Apache:Apache test.txt
选项:
-R:递归设置权限,也就是给子目录中的所有文件设置权限
普通用户不能修改文件的所有者,哪怕自己是这个文件的所有者也不行。
普通用户可以修改所有者是自己的文件的权限。
chgrp 是修改文件和目录的所属组的命令,其基本信息如下。
命令名称:chgrp。
英文原意:change group ownership。
所在路径:/bin/chgrp。
执行权限:所有用户。
功能描述:修改文件和目录的所属组。
[root@localhost ~]# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:67:99:b2 brd ff:ff:ff:ff:ff:ff
inet 192.168.142.139/24 brd 192.168.142.255 scope global dynamic noprefixroute ens33
valid_lft 1632sec preferred_lft 1632sec
inet6 fe80::7bf0:3f9f:6e0c:e7f1/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@localhost ~]# uname
Linux
[root@localhost ~]# uname -a //所有信息
Linux localhost.localdomain 4.18.0-147.el8.x86_64 #1 SMP Wed Dec 4 21:51:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
//内核名称、主机名称、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理类型以及操作系统名称
[root@localhost ~]# cat /etc/centos-release //查询系统版本信息
CentOS Linux release 8.1.1911 (Core)
[root@localhost ~]# uptime
08:12:58 up 2 min, 3 users, load average: 0.47, 0.33, 0.13
显示系统时间、系统已运行时间、启动终端数量以及平均负载值等信息
[root@localhost ~]# free -h
total used free shared buff/cache available
Mem: 1.8Gi 289Mi 740Mi 9.0Mi 775Mi 1.3Gi
Swap: 2.0Gi 0B 2.0Gi
内存用量 已用量 可用量 进程共享的内存量 磁盘缓存的内存量 缓存的内存量
[root@localhost ~]# history
选项
-c :清空历史命令
-w :把缓存中的历史命令写入历史命令保存文件。历史文件默认文件保存在 /.bash_history中
修改history 历史文件保存个数
[root@localhost ~]# vim /etc/profile
46 HISTSIZE=10000 //第四十六行的文件这个表示历史保存个数
[root@localhost ~]# history -c //表示清空历史命令,不建议经常使用,一般在用于MySQL数据库密码时用,删除明文输入的密码
whereis 是搜索系统命令的命令(像绕口令一样),也就是说,whereis 命令不能搜索普通文件,
而只能搜索系统命令。whereis 命令的基本信息如下。
命令名称:whereis。
英文原意:locate the binary, source, and manual page files for a command。
所在路径:/usr/bin/whereis。
执行权限:所有用户。
功能描述:查找二进制命令、源文件和帮助文档的命令。
which 也是搜索系统命令的命令。和 whereis 命令的区别在于:
whereis 命令可以在查找到二进制命令的同时,查找到帮助文档的位置;
而 which 命令在查找到二进制命令的同时,如果这个命令有别名,则还可以找到别名命令。
which 命令的基本信息如下。
命令名称:which。
英文原意:shows the full path of (shell) commands。
所在路径:/usr/bin/which。
执行权限:所有用户。
功能描述:列出命令的所在路径。
w命令是显示系统中正在登陆的用户信息的命令,这个命令查看的痕迹日志是/var/run/utmp这个命令的基本信息如下:
命令名称:w
英文原意:Show who is logged on and what they are doing
所在路径:/usr/bin
执行权限:所有用户。
功能描述:显示用户,和他正在做什么。
例如:
USER | 当前登录用户 |
---|---|
TTY | 登录的终端 tty1-6 本地字符终端切换 |
FROM | 登录的IP地址,如果是本地终端、则是空 |
LOGIN@ | 登录时间 |
IDLE | 用户闲置时间 |
JCPU | 用户的进程占用的CPU时间 |
PCPU | 当前进程占用CPU时间 |
WHAT | 用户正在进行的操作 |
who命令和w命令类似,用于查看正在登陆的用户,但是显示的内容更加简单,也是查看/var/run/utmp日志。
lastrlog命令是查看系统中所有用户最后一次的登陆时间的命令,他查看的日志是/var/log/lastlog
lastb命令是查看错误登陆的信息的,查看的是/var/log/btmp痕迹日志
[root@localhost ~]# yum install sos //安装sosrepot
[root@localhost ~]# sosreport -l //使用以下命令显示所有插件:
sosreport (version 3.8)
目前已启用了以下插件: #部分
alternatives System alternatives
anaconda Anaconda installer
boot Bootloader information
目前禁用了以下插件: #部分
abrt inactive Automatic Bug Reporting Tool
acpid inactive ACPI daemon information
activemq inactive ActiveMQ message broker
ansible inactive Ansible configuration management
atomichost inactive Atomic Host
以下插件选项可用: #部分
Option 'timeout' available to all plugins - time in seconds to allow plugin to run, use 0 for no timeout
apache.log off gathers all apache logs
boot.all-images off collect lsinitrd for all images
dnf.history off captures transaction history
yum.yum-history-info off gather yum history info
Profiles: boot, container, debug, desktop, hardware, identity, java,
kernel, memory, mrg, network, openshift, packagemanager,
performance, perl, sap, security, services, storage, sysmgmt,
system, virt, webserver
23 profiles, 78 plugins
在 Linux 中可以识别的常见压缩格式有十几种,比如“.zip”“.gz”“.bz2”“.tar”“.tar.gz”“.tar.bz2”等。
“.zip”是 Windows 中最常用的压缩格式,Linux 也可以正确识别“.zip”格式,这可以方便地和Windows 系统通用压缩文件。
1.1.“.zip”格式的压缩命令
压缩命令就是 zip,其基本信息如下。
命令名称:zip。
英文原意:package and compress (archive) files。
所在路径:/usr/bin/zip。
执行权限:所有用户。
功能描述:压缩文件或目录。
命令格式如下:
[root@localhost ~]# zip [选项] 压缩包名 源文件或源目录
选项:
-r:压缩目录
例如:[root@localhost ~]# zip ana.zip anaconda-ks.cfg
“.zip”格式的解压缩命令是 unzip,其基本信息如下。
命令名称:unzip。
英文原意:list, test and extract compressed files in a ZIP archive。
所在路径:/usr/bin/unzip。
执行权限:所有用户。
功能描述:列表、测试和提取压缩文件中的文件。
命令格式如下:
[root@localhost ~]# unzip [选项] 压缩包名
选项:
-d:指定解压缩位置
例如:
[root@localhost ~]# unzip -d /tmp/ ana.zip
#把压缩包解压到指定位置
不会打包
“.gz”格式是 Linux 中最常用的压缩格式,使用 gzip 命令进行压缩,其基本信息如下。
命令名称:gzip。
英文原意:compress or expand files。
所在路径:/bin/gzip。
执行权限:所有用户。
功能描述:压缩文件或目录。
这个命令的格式如下:
[root@localhost ~]# gzip [选项] 源文件
选项:
-c:将压缩数据输出到标准输出中,可以用于保留源文件
-d:解压缩
-r:压缩目录
[root@localhost ~]# gzip -c anaconda-ks.cfg > anaconda-ks.cfg.gz
\#使用-c选项,但是不让压缩数据输出到屏幕上,而是重定向到压缩文件中
\#这样可以在压缩文件的同时不删除源文件
如果要解压缩“.gz”格式,那么使用“gzip -d 压缩包”和“gunzip 压缩包”命令都可以。我们
先看看 gunzip 命令的基本信息。
命令名称:gunzip。
英文原意:compress or expand files。
所在路径:/bin/gunzip。
执行权限:所有用户。
功能描述:解压缩文件或目录。
例如:
[root@localhost ~]# gunzip install.log.gz
[root@localhost ~]# gzip -d anaconda-ks.cfg.gz
两个命令都可以解压缩“.gz”格式
不能压缩目录
“.bz2”格式是 Linux 的另一种压缩格式,从理论上来讲,“.bz2”格式的算法更先进、压缩比更
好;而“.gz”格式相对来讲压缩的时间更快。
“.bz2”格式的压缩命令是 bzip2,我们来看看这个命令的基本信息。
命令名称:bzip2。
英文原意:a block-sorting file compressor。
所在路径:/usr/bin/bzip2。
执行权限:所有用户。
功能描述:.bz2 格式的压缩命令。
来看看 bzip2 命令的格式。
[root@localhost ~]# bzip2 [选项] 源文件
选项:
-d:解压缩
-k:压缩时,保留源文件
-v:显示压缩的详细信息
例如:
[root@localhost ~]# bzip2 anaconda-ks.cfg #压缩成.bz2格式
[root@localhost ~]# bzip2 -k install.log.syslog #保留源文件压缩
.bz2”格式可以使用“bzip2 -d 压缩包”命令来进行解压缩,也可以使用“bunzip2 压缩包”命
令来进行解压缩。先看看 bunzip2 命令的基本信息。
命令名称:bunzip2。
英文原意:a block-sorting file compressor。
所在路径:/usr/bin/bunzip2。
执行权限:所有用户。
功能描述:.bz2 格式的解压缩命令。
[root@localhost ~]# bunzip2 anaconda-ks.cfg.bz2
[root@localhost ~]# bzip2 -d install.log.syslog.bz2
#两个命令都可以解压缩
打包不会压缩
“.tar”格式的打包和解打包都使用 tar 命令,区别只是选项不同。我们先看看 tar 命令的基本信息。
命令名称:tar。
英文原意:tar。
所在路径:/bin/tar。
执行权限:所有用户。
功能描述:打包与解打包命令。
命令的基本格式如下:
[root@localhost ~]# tar [选项] [-f 压缩包名] 源文件或目录
选项:
-c:打包
-f:指定压缩包的文件名。压缩包的扩展名是用来给管理员识别格式的,所以一定要正确指定扩展名
-v:显示打包文件过程
[root@localhost ~]# tar -cvf anaconda-ks.cfg.tar anaconda-ks.cfg #打包,不会压缩
“.tar”格式的解打包也需要使用 tar 命令,但是选项不太一样。命令格式如下:
[root@localhost ~]# tar [选项] 压缩包
选项:
-x:解打包
-f:指定压缩包的文件名
-v:显示解打包文件过程
-t:测试,就是不解打包,只是查看包中有哪些文件
-C(大) 目录:指定解打包位置
例如
[root@localhost ~]# tar -xvf anaconda-ks.cfg.tar
\#解打包到当前目录下
使用 tar 命令直接打包压缩。命令格式如下:
[root@localhost ~]# tar [选项] 压缩包 源文件或目录
选项:
-z:压缩和解压缩“.tar.gz”格式
-j:压缩和解压缩“.tar.bz2”格式
例如:.tar.gz格式
[root@localhost ~]# tar -zcvf tmp.tar.gz /tmp/ | #把/tmp/目录直接打包压缩为“.tar.gz”格式 |
---|---|
[root@localhost ~]# tar -zxvf tmp.tar.gz | #解压缩与解打包“.tar.gz”格式 |
例如:.tar.bz2格式
[root@localhost ~]# tar -jcvf tmp.tar.bz2 /tmp/ | #打包压缩为“.tar.bz2”格式,注意压缩包文件名 |
---|---|
[root@localhost ~]# tar -jxvf tmp.tar.bz2 | #解压缩与解打包“.tar.bz2”格式 |
再举几个例子:
[root@localhost ~]# mkdir test
[root@localhost ~]# touch test/abc
[root@localhost ~]# touch test/bcd
[root@localhost ~]# touch test/cde
\#建立测试目录和测试文件
[root@localhost ~]# tar -zcvf test.tar.gz test/ | #压缩 |
---|---|
[root@localhost ~]# tar -ztvf test.tar.gz | #只查看,不解压 |
[root@localhost ~]# tar -zxvf test.tar.gz -C /tmp | #解压缩到指定位置 |
[root@localhost ~]# tar -zxvf test.tar.gz -C /tmp test/cde | #只解压压缩包中的特定文件,到指定位置 |
find 命令的基本信息如下。
命令名称:find。
英文原意:search for files in a directory hierarchy。
所在路径:/bin/find。
执行权限:所有用户。
功能描述:在目录中搜索文件。
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-name: | 按照文件名搜索 |
---|---|
-iname: | 按照文件名搜索,不区分文件名大小写 |
-inum: | 按照 inode号搜索 |
举例: find / -name “a.txt”
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项 -size [+\|-]大小:按照指定大小搜索文件
这里的“+”的意思是搜索比指定大小还要大的文件,“-”的意思是搜索比指定大小还要小的文件。
find 命令的单位:
[root@localhost ~]# man find -size n[cwbkMG]
File uses n units of space. The following suffixes can be used:
‘b’ | for 512-byte blocks (this is the default if no suffix is used)#这是默认单位,如果单位为 b或不写单位,则按照 512 Byte搜索 |
---|---|
‘c’ | for bytes#搜索单位是 c,按照字节搜索 |
‘w’ | for two-byte words #搜索单位是 w,按照双字节(中文)搜索 |
‘k’ | for Kilobytes (units of 1024 bytes)#按照 KB单位搜索,必须是小写的 k |
‘M’ | for Megabytes (units of 1048576 bytes)#按照 MB单位搜索,必须是大写的 M |
‘G’ | for Gigabytes (units of 1073741824 bytes)#按照 GB单位搜索,必须是大写的 G |
Linux 中的文件有访问时间(atime)、数据修改时间(mtime)、状态修改时间(ctime)这三个
时间,我们也可以按照时间来搜索文件。
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-atime [+|-]时间: | 按照文件访问时间搜索 |
---|---|
-mtime [+|-]时间: | 按照文件数据修改时间搜索 |
-ctime [+|-]时间: | 按照文件状态修改时间搜索 |
这三个时间的区别我们在 stat 命令中已经解释过了,这里用 mtime 数据修改时间来举例,重点说
说“[±]”时间的含义。
-5:代表 5 天内修改的文件。
5:代表前 5~6 天那一天修改的文件。
+5:代表 6 天前修改的文件。
命令格式。
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-perm 权限模式: | 查找文件权限刚好等于“权限模式”的文件 |
---|---|
-perm -权限模式: | 查找文件权限全部包含“权限模式”的文件 |
-perm +权限模式: | 查找文件权限包含“权限模式”的任意一个权限的文件 |
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-uid 用户 ID: | 按照用户 ID查找所有者是指定 ID的文件 |
---|---|
-gid 组 ID: | 按照用户组 ID查找所属组是指定 ID的文件 |
-user 用户名: | 按照用户名查找所有者是指定用户的文件 |
-group 组名: | 按照组名查找所属组是指定用户组的文件 |
-nouser: | 查找没有所有者的文件 |
按照所有者和所属组搜索时,“-nouser”选项比较常用,主要用于查找垃圾文件。只有一种情况例外,那就是外来文件。比如光盘和 U 盘中的文件如果是由 Windows 复制的,在Linux 中查看就是没有所有者的文件;再比如手工源码包安装的文件,也有可能没有所有者
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-type d: | 查找目录 |
---|---|
-type f: | 查找普通文件 |
-type l: | 查找软链接文件 |
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-a: | and逻辑与 |
---|---|
-o: | or逻辑或 |
-not: | not逻辑非 |
find 命令也支持逻辑运算符选项,其中-a 代表逻辑与运算,也就是-a 的两个条件都成立,find 搜
索的结果才成立。举个例子:
[root@localhost ~]# find . -size +2k -a -type f //在当前目录下搜索大于 2KB,并且文件类型是普通文件的文件
-o 选项代表逻辑或运算,也就是-o 的两个条件只要其中一个成立,find 命令就可以找到结果。例
如:
[root@localhost ~]# find . -name cangls -o -name bols
./cangls
./bols
\#在当前目录下搜索文件名要么是 cangls的文件,要么是 bols的文件
-not 是逻辑非,也就是取反的意思。举个例子:
[root@localhost ~]# find . -not -name cangls
#在当前目录下搜索文件名不是 cangls的文件
其他选项
这里我们主要讲解两个选项“-exec”和“-ok”,这两个选项的基本作用非常相似。我们先来看
看“-exec”选项的格式。
[root@localhost ~]# find 搜索路径 [选项] 搜索内容 -exec 命令 2 {
} \;
其次,这个选项的作用其实是把 find 命令的结果交给由“-exec”调用的命令 2 来处理。“{}”就
代表 find 命令的查找结果。
“-ok”选项和“-exec”选项的作用基本一致,区别在于:“-exec”的命令 2 会直接处理,而不询
问;“-ok”的命令 2 在处理前会先询问用户是否这样处理,在得到确认命令后,才会执行。
grep 的作用是在文件中提取和匹配符合条件的字符串行
[root@localhost ~]# grep [选项] "搜索内容" 文件名
选项:
-i: | 忽略大小写 |
---|---|
-n: | 输出行号 |
-v: | 反向查找 |
–color=auto: | 搜索出的关键字用颜色显示 |
find 也是搜索命令,那么 find 命令和 grep 命令有什么区别呢?
find 命令用于在系统中搜索符合条件的文件名,如果需要模糊查询,则使用通配符进行匹配,通配符
是完全匹配(find 命令可以通过-regex 选项,把匹配规则转为正则表达式规则,但是不建议如此)。
grep 命令用于在文件中搜索符合条件的字符串,如果需要模糊查询,则使用正则表达式进行匹配,
正则表达式是包含匹配。
通配符:用于匹配文件名,完全匹配
正则符 | 作用 |
---|---|
? | 匹配一个任意字符 |
* | 匹配 0 个或任意多个任意字符,也就是可以匹配任何内容 |
[] | 匹配中括号中任意一个字符。例如,[abc]代表一定匹配一个字符,或者是 a,或者是 b,或者是 c |
[-] | 匹配中括号中任意一个字符,-代表一个范围。例如,[a-z]代表匹配一个小写字母 |
[^] | 逻辑非,表示匹配不是中括号内的一个字符。例如,[^0-9]代表匹配一个不是数字的字符 |
正则表达式:用于匹配字符串,包含匹配
正 则 符 | 作用 |
---|---|
? | 匹配前一个字符重复 0次,或 1次(?是扩展正则,需要使用 egrep命令) |
* | 匹配前一个字符重复 0次,或任意多次 |
[] | 匹配中括号中任意一个字符。例如,[abc]代表一定匹配一个字符,或者是 a,或者是 b,或者是 c |
[-] | 匹配中括号中任意一个字符,-代表一个范围。例如,[a-z]代表匹配一个小写字母 |
[^] | 逻辑非,表示匹配不是中括号内的一个字符。例如,[^0-9]代表匹配一个不是数字的字符 |
^ | 匹配行首 |
$ | 匹配行尾 |
命令 1 | 命令 2
命令 1 的正确输出作为命令 2 的操作对象
举例: ll -a /etc/ | gerp yum #表示查询 /etc目录下的yum 文件
netstat -an | grep "ESTABLISHED" | wc -l #表示具体的网络连接数量,用wc 进行统计行数
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aLgPKvja-1600956961354)(C:/Users/zhuxiaolin/fengzilin/AppData/Roaming/Typora/typora-user-images/image-20200823222831328.png)]
[root@localhost ~]# date [选项] [+指定格式]
参数 作用
%t 跳格{
TAB键}
%H 小时(0~23)
%I 小时(0-12)
%M 分钟(0~59)
%S 秒(0~59)
%j 今年中的第几天
如:
[root@localhost ~]# date "+%F %T"
2020-08-25 08:42:23
sync 命令的基本信息如下。
命令名称:sync。
英文原意:flush file system buffers。
所在路径:/bin/sync。
执行权限:所有用户。
功能描述:刷新文件系统缓冲区。
shutdown 命令的基本信息如下。
命令名称:shutdown。
英文原意:bring the system down。
所在路径:/sbin/shutdown。
执行权限:超级用户。
功能描述:关机和重启
命令的基本格式如下:
[root@localhost ~]# shutdown [选项] 时间 [警告信息]
选项:
-c: | 取消已经执行的 shutdown命令 |
---|---|
-h: | 关机 |
-r: | 重启 |
在现在的系统中,reboot 命令也是安全的,而且不需要加入过多的选项。
[root@localhost ~]# reboot #重启
##halt 和 poweroff 命令
这两个都是关机命令,直接执行即可。这两个命令不会完整关闭和保存系统的服务,不建议使用。
[root@localhost ~]# halt #关机
[root@localhost ~]# poweroff #关机
init 是修改 Linux 运行级别的命令,也可以用于关机和重启。这个命令并不安全,不建议使用。
[root@localhost ~]# init 0 #关机,也就是调用系统的 0级别
[root@localhost ~]# init 6 #重启,也就是调用系统的 6级别
格式
[root@localhost ~]# wget [参数] 下载地址
参数 作用
-b 后台下载模式
-P(大写) 下载到指定目录
-t 最大尝试次数
-c 断点续传
-p(小写) 下载页面内所有资源,包括图片,视频等
-r 递归下载
-o 下载以自定义路径保存名字
如
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
//下载 阿里云yum源地址 /etc/yum.repo.d/Centos-Base.repo 为下载的路径 https 为网址
[root@localhost ~]# ps -ef //列出系统中的进程状态
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 08:10 ? 00:00:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 17
root 2 0 0 08:10 ? 00:00:00 [kthreadd]
root 3 2 0 08:10 ? 00:00:00 [rcu_gp]
root 4 2 0 08:10 ? 00:00:00 [rcu_par_gp]
root 6 2 0 08:10 ? 00:00:00 [kworker/0:0H-kblockd]
root 8 2 0 08:10 ? 00:00:00 [mm_percpu_wq]
root 9 2 0 08:10 ? 00:00:00 [ksoftirqd/0]
root 10 2 0 08:10 ? 00:00:00 [rcu_sched]
常用配合grep使用查找单个进程用管道符 |
[root@localhost ~]# ps -ef | grep firefox //配合管道符和grep查找firefox进程状态
root 47957 13963 0 09:00 pts/0 00:00:00 grep --color=auto firefox
列的含义:
UID:该进程执行的用户id;
PID:进程id;
PPID:该进程的父级进程id,如果一个程序的父级进程找不到,该程序的进程称之为僵尸进程(parent process ID);
C:Cpu的占用率,其形式是百分数;
STIME:进行的启动时间;
TTY:终端设备,发起该进程的设备识别符号,如果显示“?”则表示该进程并不是由终端设备发起;
TIME:进程的执行时间;
CMD:该进程的名称或者对应的路径;
安装pstree
[root@localhost ~]# yum -y install psmisc //安装pstree 最小安装默认没有
[root@localhost ~]# pstree -p
systemd(1)-+-NetworkManager(937)-+-{
NetworkManager}(940)
| `-{
NetworkManager}(941)
|-VGAuthService(898)
|-anacron(49460)
|-auditd(872)---{
auditd}(873)
|-chronyd(903)
|-crond(960)
|-dbus-daemon(901)---{
dbus-daemon}(912)
|-firewalld(927)---{
firewalld}(1340)
|-httpd(88236)-+-httpd(88257)
top - 09:06:05 up 55 min,3 users,load average:0.04, 0.22, 0.12
Tasks: 149 total, 1 running, 148 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.3 us, 2.0 sy, 0.0 ni, 96.3 id, 0.0 wa, 0.3 hi, 0.0 si, 0.0 st
MiB Mem : 1806.2 total, 773.2 free, 272.2 used, 760.8 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 1368.5 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
13962 root 20 0 151528 6276 4704 S 0.7 0.3 0:04.68 sshd
594 root 20 0 0 0 0 S 0.3 0.0 0:00.28 xfsaild/dm-0
1 root 20 0 179036 13868 8632 S 0.0 0.7 0:04.22 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
第一行:系统时间、运行命令、登录终端数、系统负载均衡 1 5 10 分钟
第二行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数
第三行:用户占用资源的百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比
第四行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量
第五行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量
top //查看kill 终止程序
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
13962 root 20 0 151528 6276 4704 S 0.3 0.3 0:06.38 sshd
[root@localhost ~]# kill 13962
top //查看kill 终止程序
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
13962 root 20 0 151528 6276 4704 S 0.3 0.3 0:06.38 sshd
[root@localhost ~]# killall 13962
注:本人自己整理笔记,排版可能有些问题,懒的改了,后面会注意,能看懂就行,用Typora的写的,上传图片有点麻烦,我会陆续把我之前写的笔记上传,关于Linux基础知识,转载请联系我[email protected]