Bootstrap

Linux基础命令精讲

一、Linux导图

二、linux哲学思想

  1. 一切都是一个文件。(包括硬件,文本,二进制,源代码)连配置文件都存储在文本中,方便增删改查

  1. 系统中拥有小型,单一用途的程序。(一个程序只负责做好自己的本职工作)

  1. 当遇到复杂任务,通过不同功能用途的程序组合起来完成。 轻量级,一台服务 dhcp ip 数据库服务 网页

  1. 避免令人困惑的用户界面就是没有复杂的图形界面。

  1. 不在乎后缀名,有没有都无所谓,不是通过后缀名来定义文件的类型。

基础命令(初识)

1root #表示用户

2localhost #主机名

3 ~ #家目录 一定要和用户相对应 一个用户的家,用户在这个文件夹中有 至高无上的权利

4# #管理员用户

5$ #普通用户

6root #root的家目录

7 opt #opt目录

#关机命令:

1、halt #立刻关机

2、poweroff #立刻关机

3、shutdown -h now #立刻关机(root用户使用)

4、shutdown -h 10 #10分钟后自动关机

#重启:

reboot

init6

shutdown -r now

#修改语言

修改LANG变量实现中文语言提示

[root@localhost ~]# LANG=zh_CN.UTF-8 #中文

[root@localhost ~]# echo $LANG

zh_CN.UTF-8

[root@localhost ~]# LANG=en_US.UTF-8 #英文

[root@localhost ~]# echo $LANG

en_US.UTF-8

#修改颜色

[root@localhost ~]#cd ~

[root@localhost ~]#vim .bashrc

PS1='\[\e[1;34m\][\u@\h \W]\$\[\e[0m\]'

[root@localhost ~]#source .bashrc

#刷新下文件

cat –r 文件名 刷新查看文件

tail –f 文件名

三、liunx命令

1.shell

什么是shell

用户和硬件之间的翻译官,(用户使用)高级语言与(硬件使用)机器语言之间的翻译(编译)

1.1 shell定义

shell是Linux系统中后台运行的一种特殊程序也可以理解成一种特殊的软件,提供了用户与内核进行交互操作的一种接口。

用户使用应用程序发布指令比如 (使用浏览器访问网页)

shell去通知操作系统需要进行什么样的操作(相当于解释层)

内核相当于操作系统去指挥硬件

硬件才能工作,否则无法交互。

1.2 不同的shell环境

shell(解释器的总称)

sh bash nologin tcsh csh ...

bash是linux里面默认的shell程序位于/bin/bash

[root@localhost suoluo]# echo $SHELL //显示当前使用的shell

/bin/bash

[root@localhost suoluo]# cat /etc/shells //显示当前系统的所有shell

/bin/sh

/bin/bash

/sbin/nologin //不让用户登陆

/usr/bin/sh

/usr/bin/bash

/usr/sbin/nologin

/bin/tcsh

/bin/csh

[root@localhost suoluo]# sh //切换shell

sh-4.2# pstree

[root@localhost suoluo]# pstree //查看所有使用过的shell环境

.....(过长不显示)

1.3 shell与内部,外部命令

优先级:别名 ---- 内部 ---- shell ----- 外部

(1)shell 分为内部命令 和外部命令,一般先执行内部命令,hash 再执行外部命令(别名最大)

内部命令

外部命令

集成于Shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令

Linux系统中能够完成特定功能的脚本文件或二进制程序

属于Shell的一部分

属于Shell解释器程序之外的命令

没有单独对应的系统文件

每个外部命令对应了系统中的一个文件

自动载入内存,可以直接使用

必须知道其对应的文件位置,由Shell加载后才能执行

2.命令行格式

命令字 空格 [选项] 空格 [参数]

解释命令字 选项 参数各自的意思及具体使用方法

1. 命令字 是整条命令中最关键的一部分 唯一确定

2. 选项 短格式选项:使用“-”符号引导 通常 一个字母 长格式选项:使用“--”符号引导 通常完整的单词 类 unix 命令 bsd

3. 参数 命令字的处理对象 可以是文件名、目录(路径)名或用户名等内容 个数可以是零到多个

4. ;可以隔开命令,执行多个命令

#.linux命令行辅助操作

Tab 键

自动补齐(两次可以显示所有选项)

反斜杠“\”

强制换行或转义

Ctrl+a

光标移到最前

Ctrl+e 或 end 键

光标移到最后

Ctrl+U

清空至行首不包括当前光标处的 字符

Ctrl+K

清空至行尾包括当前光标处的字符

Ctrl+w

从当前光标删除到开头

ALT+d

从当前光标删除末尾

Ctrl+l

清屏

Ctrl+c

取消本次命令编辑

Ctrl+s/Ctrl+q

锁屏/解锁

向上下箭头

回看执行过的命令

3.获取命令帮助

3.1 help

#查看内部命令帮助

[root@localhost ~]# help echo

echo: echo [-neE] [参数 ...]

将参数写到标准输出。

在标准输出上显示 ARG 参数后跟一个换行。

选项:

-n 不要追加换行

-e 启用下列反斜杠转义的解释

-E 显式地抑制对于反斜杠转义的解释

`echo' 对下列反斜杠字符进行转义: \a 警告(响铃)

\b 退格

\c 抑制更多的输出

\e 转义字符

\f 格式提供

\n 换行

\r 回车

\t 横向制表符

\v 纵向制表符

\\ 反斜杠

\0nnn 以 NNN (八进制)为 ASCII 码的字符。 NNN 可以是

0到3个八进制数字

\xHH 以 HH (十六进制)为值的八比特字符。HH可以是

一个或两个十六进制数字

退出状态:

返回成功除非有写错误发生。

3.2 --help

#查看外部命令帮助

[root@localhost ~]# ls --help

[root@localhost dev]# useradd --help

3.3 man

man分九个章节默认打开第一章节(menu菜单 manual手册)

[root@localhost ~]# whatis ls

ls (1) - 列目录内容

1代表第一章手册

ls (1p) - list directory contents

1p 代表开发程序使用

[root@localhost ~]# whatis passwd

#可以查看命令的章节

passwd (5) - (文件格式)

sslpasswd (1ssl) - compute password hashes

passwd (1) - update user's authentication tokens

[root@localhost ~]# man 5 passwd

#查看第五章内容,第5章一般是配置文件格式详细解释

[root@localhost ~]# man 7 ascii

[root@localhost ~]# man 7 UTF-8

[root@localhost ~]# mandb()

#生成man数据库,man命令无效时

正在删除 /usr/share/man 里的旧数据库条目...

mandb: 警告:/usr/share/man/man8/fsck.fat.8.manpage-fix.gz:忽略错误的文件名

正在处理 /usr/share/man 下的手册页...

正在删除 /usr/share/man/hu 里的旧数据库条目...

正在删除 /usr/share/man/pl 里的旧数据库条目...

[root@localhost ~]# man man

该清单是一组用冒号分隔的欲查找的手册清单。此选项将覆盖 MANSECT 环境变量。

有些指令或程序可能有一个以上的主题,它们位于不同的区段中。因此,要查看较后的区 段,你可以在此指定 man

查找区段的顺序。具体区段划分如下所示:

区段1:用户指令

区段2:系统调用

区段3:程序库调用

区段4:设备

区段5:文件格式 shadow passwd fstab

区段6:游戏

区段7:杂项

区段8:系统指令

区段9:内核内部指令

区段n:Tcl或Tk指令

3.4 info

info也可以查看相关的帮助信息

info ls //查看帮助

4.目录操作

4.1 查看切换显示统计目录

4.1.1 pwd(print work directory)

[root@localhost ~]# pwd //显示当前路径

/root

[root@localhost ~]# cd /bin

[root@localhost bin]# ll /bin //ls -l别名ll

lrwxrwxrwx. 1 root root 7 8月 31 21:08 /bin -> usr/bin

[root@localhost bin]# pwd -P //显示真实路径

/usr/bin

快捷方式 不是文件真正的路径

4.1.2 cd(change directory)

cd 目标位置

文件夹 位置 决定了你能访问的文件

命令 

效果

cd~

若不指定目标位置,切换到当前用户的宿主目录(家目录)

cd -

到前一次目录

补充

一个点号“.”开头(自己)

表示以当前的工作目录作为起点(已点开头的是)

两个点号“..”开头(上一级)

表示以当前目录的上一级目录(父目录)作为起点

“~用户名”形式开头”

表示以指定用户的宿主目录(家目录)作为起点

"."开头文件

表示隐藏文件

~suoluo (有个用户叫suoluo家目录为起点)

表示以指定用户的宿主目录作为起点

4.1.3 ls

ls 【选项】 【文件或目录...】

命令

效果

ll= ls -l

已长格式显示文件和目录列表

ls -a

显示全部包括隐藏文件

ls -A

显示全部文件或隐藏文件,但不包括 . 和..

ls -d

仅列出目录本身,而不是列出目录内的文件数据

ls -h

友好显示文件大小(human,人性化)

ls -R

递归显示该目录及该目录的子目录下的所有内容

ls -color

显示颜色

ls -S

以文件容量大小排序

ls -i

indoe号

当 ls 命令不使用任何选项时,默认只会显示非隐藏文件的名称,并以文件名进行排序,同时会根据文件的具体类型给文件名配色

4.1.4 通配符

去匹配文件名(包括文件夹)

符号

效果

匹配一个字符 f?.txt

*

匹配所有非隐藏的字符无论多长多短,但不匹配 "." 开头的文件,即隐藏文件

{1..10} {0..9}

1到10

{a..z}

a b c ...z

{A..Z}

A B C .....Z

[123]([此处括号里值代表一个字符])

取其中之一有就显示没有也无所谓

[a-z]单个小写字母

范围需要注意

[0-9]单个数字

匹配数字范围(0123456789)

\

转义符,表示原来的意思

[[:lower:]]

小写字母表示 a-z

[[:upper:]]

大写字母表示 A-Z

[^suoluo]

匹配列表中的所有字符以外的字符

[[:digit:]]

任意数字,相当于0-9

[root@localhost suoluo]# ls -a * //不显示隐藏文件ky23.txt

luo:

suo:

[root@localhost suoluo]# ls -a //显示隐藏文件. .. ky27.txt luo suo

[root@localhost suoluo]# ls * // *不包括.开头的ky27.txt

luo:

suo:

[root@localhost suoluo]# ls .* //包括了 .. 上层目录中的文件.:

ky27.txt luo suo

..:

anaconda-ks.cfg data initial-setup-ks.cfg ky27 suoluo 公共 模板 视频 图片 文档 下载 音乐 桌面

4.1.5 alias

临时修改,设置命令的别名,以简写命令,提高操作效率

alias 命令别名='命令'

unalias 别名命令 删除别名

\加别名命令 (显示原始命令)

4.1.6 du(disk usage)

查看当前所在文件夹的总磁盘占用量了,du显示的是文件占磁盘大小 不是文件的实际大小-d

du [选项] [文件或目录… ]

选项

说明

-a

统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录

-h

以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果

-s(--summarize)

只统计所占用空间总的(Summary)大小,而不是统计每个子目录、文件的大小

--max-depth=n (-d 1)

最大显示到第n层

--exclude

不计入统计

4.2 创建

4.2.1 创建目录mkdir (make directories)

mkdir [选项] 目录位置及名称…

[root@localhost suoluo]# ls

luo suo

[root@localhost suoluo]# mkdir a b c //创建多个文件夹[root@localhost suoluo]# ls

a b c luo suo

[root@localhost suoluo]# mkdir -p aa/bb/cc //递归创建文件夹[root@localhost suoluo]# ls

a aa b c luo suo

[root@localhost suoluo]# tree

bash: tree: 未找到命令...

[root@localhost suoluo]# yum -y install tree //下载tree命令[root@localhost suoluo]# tree

.

├── a

├── aa

│ └── bb

│ └── cc

├── b

├── c

├── luo

└── suo

8 directories, 0 files

[root@localhost suoluo]# mkdir -v -p aa/bb/cc

mkdir: 已创建目录 "aa"

mkdir: 已创建目录 "aa/bb"

mkdir: 已创建目录 "aa/bb/cc"

[root@localhost suoluo]# tree

.

├── aa

│ └── bb

│ └── cc

├── b

├── c

├── luo

└── suo

7 directories, 0 files

-p 递归创建目录

-v 显示过程

4.2.2 硬链接和软链接文件

硬链接:同一个文件取不同的名或者叫多个名字,不支持文件夹,创建一个连接数加一,多路径访问。

软链接:类似于windows里快捷方式,软连接,符号连接,会指向原来的文件ln(link)。

ln [-s] 源文件或目录… 链接文件或目标位置..

加s是软连接 符号连接

对比项

硬链接

软链接

本质

本质是同一个文件

本质不是同一个文件

inode(身份证号)

相同

不同

连接数

创建新的硬链接,链接数会增加,删除硬链接,链接数减少

删除,新建都不会改变

文件夹

不支持

支持

删除源文件

只是链接数减一,但链接文件的访问不受影响

无法访问连接文件

文件类型

和源文件相同

链接文件,和源文件无关

文件大小

和源文件相同(指向硬盘上的同一个文件)

源文件的路径的长度

硬链接例子

[root@localhost suoluo]# ls

aa b c luo suo

[root@localhost suoluo]# cd luo

[root@localhost luo]# touch 1.txt

[root@localhost luo]# vim 1.txt

[root@localhost luo]# pwd

/root/suoluo/luo

[root@localhost luo]# ls

1.txt

[root@localhost luo]# ln /root/suoluo/luo/1.txt /root/suoluo/luo/11.txt //创建硬链接 1.txt的链接11.txt

[root@localhost luo]# ls //查看luo目录下的文件11.txt 1.txt

[root@localhost luo]# cat 1.txt //查看1.txt内容abc

123

qwer

ln

[root@localhost luo]# cat 11.txt //11.txt与1.txt内容一致abc

123

qwer

ln

注意:

#建立硬连接

#不能跨分区建立连接 无法对文件夹创建

#删除硬链接可以继续访问硬链接

软链接例子

软链接要加 -s

[root@localhost luo]# ls

11.txt 1.txt

[root@localhost luo]# ln -s /root/suoluo/luo/1.txt /root/suoluo/luo/22.txt //创建软连接 1.txt的软链22.txt[root@localhost luo]# ls

11.txt 1.txt 22.txt

[root@localhost luo]# cat 1.txt

abc

123

qwer

ln

[root@localhost luo]# cat 22.txt

abc

123

qwer

ln

注意:

#删除源文件无法访问,再新建同名文件后依然可以访问

#可以跨设备

#可以支持文件夹

#相对路径与绝对路径 建议绝对路径

################实际运用####################

软件版本升级迭代

开发出 app1.0 做软连接 app

如果有 app2.0 就把 软连接app删除 新建app2.0的软连接app

4.2.3 复制

cp(copy)备份

cp [选项]… 源文件 目标 // 相当改名复制

cp [选项]... 源文件... 文件夹 //多个源文件只能复制到文件夹

选项

说明

-f

覆盖目标同名文件或目录时不进行提醒,直接强制复制

-i

覆盖目标同名文件或目录时提醒用户确认

-p

复制时保持源文件的权限、属主及时间标记等属性不变

-r

复制目录时必须使用此选项,表示递归复制所有文件及子目录

-a

完整保留所有的信息包括连接文件

-v

可视化

-u

相当于增备,差异备份

-b

先备份(只保留最近)

复制例子

[root@localhost luo]# ls

11.txt 1.txt 22.txt

[root@localhost luo]# cp -a ./1.txt ./cp1.txt //复制1.txt -a保留所有信息包括链接文件

[root@localhost luo]# ll

总用量 12

-rw-r--r--. 4 root root 16 9月 2116:1111.txt

-rw-r--r--. 4 root root 16 9月 2116:111.txt #

lrwxrwxrwx. 1 root root 22 9月 2116:2922.txt -> /root/suoluo/luo/1.txt

-rw-r--r--. 1 root root 16 9月 2116:11 cp1.txt #

[root@localhost luo]# ls

11.txt 1.txt 22.txt abc cp1.txt

[root@localhost luo]# cd ../

[root@localhost suoluo]# cp -r ./luo ./suo //复制有文件夹 要加-r(递归复制文件) 否则不让复制

[root@localhost suoluo]# cd ./suo

[root@localhost suo]# ls

111.txt luo

[root@localhost suo]# cd ../

[root@localhost suoluo]# cp -r ./luo ./suo/luo1 //suo文件夹下没有luo1就会改名luo1

[root@localhost suoluo]# cp -r ./luo ./suo/luo1 //suo文件夹下有luo1 luo成为luo1的子文件夹

[root@localhost suoluo]# cp -r ./luo ./suo/luo1 //luo1下有luo,会询是否覆盖

cp:是否覆盖"./suo/luo1/luo/1.txt"?

注意:

#复制多个文件必须要是目录,不能是文件,且目录要存在。

4.2.4 移动 or 改名

mv [选项] 源文件或目录 目标文件或目录 单个文件

rename 旧字符 新字符 目标文件 批量改名

批量改名例子

[root@localhost suo]# ls

1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt

[root@localhost suo]# rename txt txt.bak * //把txt改成txt.bak *该文件夹下所有txt文件

[root@localhost suo]# ls

1.txt.bak 2.txt.bak 3.txt.bak 4.txt.bak 5.txt.bak 6.txt.bak 7.txt.bak 8.txt.bak 9.txt.bak

4.2.5 删除文件

rm [选项] 要删除的文件或目录

选项

作用

-f

强制(不询问)

-i

交互(会询问是否删除)

-r

递归 (删除目录需要)

[root@localhost ~]# rm -rf / #不要误操作删根 后果应该挺严重的!!

[root@localhost ~]# echo * #删根后查看

如何删除特殊文件

[root@localhost ~]# touch ./-f # -开头的文件

[root@localhost ~]# ls

[root@localhost ~]# rm -f -f #没有路径,删除不掉

[root@localhost ~]# rm -f ./-f #需要加路径

[root@localhost ~]# touch ./-f

[root@localhost ~]# rm -- -f

rm:是否删除普通空文件 "-f"?y

######## 应用 ##########

删除后空间不释放

磁盘使用满了以后会造成服务的停止业务受影响,是一个重大的事故

一般来说不会出现删除文件后空间不释放的情况,但是也存在例外。

排错思路:

进程被占用的时候,不会被释放

解决问题:查找占用进程,结束掉 //不建议

tops

可以在开始的时候创建几个没用的大文件,磁盘满时,可以删除这些没用的大文件,可以为加磁盘争取一些周期

4.3 查找

4.3.1 find

命令的特点:

精确查找

实时查找 遍历(慢)

支持查找条件较多

find [选项] [查找路径] [查找条件] [处理动作]

查找路径:指定具体目标路径;默认为当前目录

查找条件:可以对文件名、大小、类型、权限等标准进行查找;默认为找出指定路径下的所有文件

处理动作:对符合条件的文件做操作,默认输出至屏幕(print)

查找类型

选项

作用

按名称查找

-name

根据目标文件的名称进行查找,允许使用“*”及“?”通配符

按文件大小查找

-size

根据目标文件的大小进行查找,一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件,常用的容量单位包括 kB(注意 k 是小写)、MB、GB

按文件属主查找

-user

根据文件是否属于目标用户进行查找

按文件类型查找

-type

根据文件的类型进行查找,文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等

按inode号

-inum

根据文件inode号查找

按权限查找

-perm

按文件权限查找

最大搜索目录深度

-maxdepth level

将你的文件已分级的形式查找

最小搜索目录深度

-mindepth level

将你的文件已分级的形式查找

按文件类型查找

type

说明

-f

普通文件

-d

目录文件

-l

符号链接文件

-s

套接字文件 

-b

块设备文件

-c

字符设备文件

-p

管道文件

-user USERNAME #查找属主为指定用户(UID)的文件

-group GRPNAME #查找属组为指定组(GID)的文件

-uid UserID #查找属主为指定的UID号的文件

-gid GroupID #查找属组为指定的GID号的文件

-nouser #查找没有属主的文件

-nogroup #查找没有属组的文件

-name "文件名称" #支持使用glob,如:*, ?, [], [^],通配符要加双引号引起来

-inum n #按inode号查找

-links n #链接数为n的文件

查找例子

[root@localhost /]# find /root/ -name suoluo //查找名字是suoluo的文件

/root/suoluo

[root@localhost suoluo]# find ./ -name "luo*" //查找名字以luo开头的文件

./luo

[root@localhost suoluo]# find /root/suoluo/luo/ -name *.txt //查找以.txt结尾的文件

/root/suoluo/luo/1.txt

/root/suoluo/luo/11.txt

/root/suoluo/luo/22.txt

/root/suoluo/luo/cp1.txt

[root@localhost suoluo]# find /mnt -user root //查找用户为root的用户

[root@localhost suoluo]# find -size 1 //查找大小为1k的文件

.

./suo

./luo

./luo/1.txt

./luo/11.txt

./luo/22.txt

./luo/cp1.txt

./luo/abc

./b

./c

./aa

./aa/bb

./aa/bb/cc

[root@localhost boot]# find /boot/ -size -10M -a -name "*img"

#小于10M 的img文件

[root@localhost etc]# find /etc/ -maxdepth 2 -mindepth 2

#只看第二级目录

[root@localhost opt]# find /boot -d

#先显示 文件在显示目录

#找/home 下属于zhangsan的文件并列出属性

[root@localhost opt]# find /home -user zhangsan -ls

#找/home 下属于zhangsan的文件并列出属性

[root@localhost opt]# useradd hehe

[root@localhost opt]# userdel hehe

[root@localhost opt]# ls /home/

hehe mysql zhangsan

[root@localhost opt]# ll /home/

总用量 0

drwx------. 31002100278 8月 2609:27 hehe

drwx------. 3 mysql mysql 78 8月 2511:45 mysql

drwx------. 3 zhangsan zhangsan 78 8月 620:57 zhangsan

[root@localhost opt]# find /home/ -nouser

#找home下的无主文件夹

/home/hehe

/home/hehe/.mozilla

/home/hehe/.mozilla/extensions

/home/hehe/.mozilla/plugins

/home/hehe/.bash_logout

/home/hehe/.bash_profile

/home/hehe/.bashrc

#或与且的优先级

o or

a and

[root@localhost opt]# find /etc/ -type d -o -type l |wc -l

#查找 etc文件夹下 目录和连接文件并统计数量

1008

[root@localhost opt]# find /etc/ -type d -o -type l -ls |wc -l

#查找 etc文件夹下 目录 和连接文件 并显示连接文件的的详细信息后统计数量

274

[root@localhost opt]# find /etc/ -type d -o -type l -a -ls |wc -l

#此条命令与上条命令对比实际隐藏了一个 a(且) 先执行了-type l -a -ls 处理动作只显示了连接文件

274

[root@localhost opt]# find /etc/ \( -type d -o -type l \) -a -ls |wc -l

#如果实在需要一起显示可以使用括号和转义符

1008

[root@localhost opt]# find -size 1G

#查找1G的文件会把所有都显示出来

.

./100.img

./99.img

#按大小查找新建两个文件

[root@localhost opt]# dd if=/dev/zero of=99.img bs=99M count=1

[root@localhost opt]# dd if=/dev/zero of=100.img bs=100M count=1

[root@localhost opt]# ls

100.img 99.img

[root@localhost opt]# find -size 100M

./100.img

[root@localhost opt]# find /opt/ -size 100M

/opt/100.img

[root@localhost opt]# ll 99.img

-rw-r--r--. 1 root root 103809024 8月 2610:0299.img

[root@localhost opt]# echo >>99.img

[root@localhost opt]# ll 99.img

-rw-r--r--. 1 root root 103809025 8月 2610:0399.img

[root@localhost opt]# find /opt/ -size 100M

/opt/100.img

/opt/99.img

#这是应为linux中的100M不是正好100M 是99开始不包括99到100(99-100]

#思考 1024M 和 1G 一样么?

1024M 代表 1023M - 1024M 不包括1023

1G 表示 0G -1G 不包括0G

-size 10k 表示9k 到10k 且不包括9k

-size -10k 表示9k 以内 包括9k

-size +10k 表示10k 以上 不包括 10k

#权限查找 -perm

[root@localhost opt]# find -perm 644

./100.img

./99.img

./a.txt

[root@localhost opt]# find -name "*.img" -delete

#找到并删除(找到name为什么并且删除)

[root@localhost opt]#find -name /data /* -delete

#花样删根

############处理动作#############################

-print:默认的处理动作,显示至屏幕

-ls:类似于对查找到的文件执行"ls -dils"命令格式输出 ll

-fls file:查找到的所有文件的长格式信息保存至指定文件中,相当于 -ls > file

-delete:删除查找到的文件,慎用!

-ok COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会交互式要求用户确认

-exec COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令{}: 用于引用查找到的文件名称自身

-exe

[root@localhost opt]# find -name "*.txt" -ok mv {} /mnt \;

[root@localhost opt]# find -name "*.txt" -exec mv {} /mnt \;

[root@localhost opt]#find /home -user zhangsan -fls /opt/test

#找到home文件夹下属于zhangsan的文件,并将查询结果导入到/opt/test 文件

#以“天”为单位

-atime [+|-]#

# #表示[#,#+1)

+# #表示[#+1,∞]

-# #表示[0,#)

-mtime

-ctime

#以“分钟”为单位

-amin

-mmin

-cmin

find -mtime 10

#10天到11天

find -mtime +10

#代表11天以上

find -mtime -10

#10天以内

Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)

#权限 所有者 所属组

Access: 2016-05-06 23:31:41.396893415 +0800

#访问时间

Modify: 2016-05-06 23:31:41.396893415 +0800

#数据修改时间

Change: 2016-05-06 23:31:41.411006937 +0800

#状态修改时间

5.硬件信息及其他系统信息

5.1 查看cpu

命令:

lscpu

cat /proc/cpuinfo

[root@localhost ~]# lscpu

Architecture: x86_64

CPU op-mode(s): 32-bit, 64-bit

Byte Order: Little Endian

CPU(s): 2

On-line CPU(s) list: 0,1

Thread(s) per core: 1

Core(s) per socket: 2

座: 1

NUMA 节点: 1

厂商 ID: GenuineIntel

CPU 系列: 6

型号: 158

型号名称: Intel(R) Core(TM) i5-8300H CPU @ 2.30GHz

步进: 10

CPU MHz: 2302.856

BogoMIPS: 4607.99

超管理器厂商: VMware

虚拟化类型: 完全

L1d 缓存: 32K

L1i 缓存: 32K

L2 缓存: 256K

L3 缓存: 8192K

NUMA 节点0 CPU: 0,1

Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec arat

5.2 查看内存

命令:

free

cat /proc/meminfo

[root@localhost ~]# free

total used free shared buff/cache available

Mem: 18670487784001707604900917888865052

Swap: 419430060364188264

[root@localhost ~]# df

文件系统 1K-块 已用 可用 已用% 挂载点

/dev/mapper/centos-root 524032004650780477524209% /

devtmpfs 91760409176040% /dev

tmpfs 93352409335240% /dev/shm

tmpfs 93352492609242641% /run

tmpfs 93352409335240% /sys/fs/cgroup

/dev/sda1 523264018237250502684% /boot

tmpfs 18670841867041% /run/user/42

tmpfs 186708321866761% /run/user/0

/dev/sr0 441459244145920100% /run/media/root/CentOS 7 x86_64

5.3 查看硬盘和分区

命令:

lsblk

cat /proc/partitions

[root@localhost ~]# lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sda 8:00 60G 0 disk

├─sda1 8:10 5G 0 part /boot

└─sda2 8:20 54G 0 part

├─centos-root 253:00 50G 0 lvm /

└─centos-swap 253:10 4G 0 lvm [SWAP]

sr0 11:014.2G 0 rom /run/media/root/CentOS 7 x

5.4 查看机器架构

[root@localhost ~]# arch

x86_64

5.5 查看内核版本

[root@localhost ~]# uname -r

3.10.0-693.el7.x86_64

5.6 系统时间

date查看当前系统时间

-d 你描述的日期,显示指定字符串所描述的时间,而非当前时间

%F 完整日期格式,等价于 %Y-%m-%d

% T 时间(24小时制)(hh:mm:ss)

[root@localhost ~]# date

2022年 09月 20日 星期二 18:40:08 CST

[root@localhost ~]# date -d '-1 day' +%F #前一天

2022-09-19

[root@localhost ~]# date +%F

2022-09-20

[root@localhost ~]# date -d '1 day ' +%F-%T

2022-09-21-18:41:12

[root@localhost ~]# date -d "-3 day" #前三天

2022年 09月 17日 星期六 18:41:22 CST

[root@localhost ~]# date -d "+3 day" #后三天

2022年 09月 23日 星期五 18:41:34 CST

三.总结

命令不多,但选项和参数很多,需要多练多实践才能掌握。

;