一、Linux导图
二、linux哲学思想
一切都是一个文件。(包括硬件,文本,二进制,源代码)连配置文件都存储在文本中,方便增删改查
系统中拥有小型,单一用途的程序。(一个程序只负责做好自己的本职工作)
当遇到复杂任务,通过不同功能用途的程序组合起来完成。 轻量级,一台服务 dhcp ip 数据库服务 网页
避免令人困惑的用户界面就是没有复杂的图形界面。
不在乎后缀名,有没有都无所谓,不是通过后缀名来定义文件的类型。
基础命令(初识)
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
三.总结
命令不多,但选项和参数很多,需要多练多实践才能掌握。