Linux 思想和基础命令

导图

windows:图形化的操作界面

linux:命令操作界面


 

一.linux哲学思想

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

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

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

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

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

基础命令(初识)

 

 

1 root      #表示用户 
2 localhost #主机名
3 ~    #家目录    一定要和用户相对应   一个用户的家,用户在这个文件夹中有 至高无上的权利
4 #    #管理员用户
5 $    #普通用户
6 root #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 文件名

 


 

二.linux命令

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  //查看帮助

 

3.5 百度

百度解决大部分问题

 

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

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

[root@localhost opt]#ln -s /opt/suoluo2022/   /mnt/suoluo22   #设置软连接
[root@localhost opt]#cd /mnt/suoluo22/     #切换到软连接
[root@localhost suoluo22]#ls
[root@localhost suoluo22]#pwd      #显示的是当前路径
/mnt/k18
[root@localhost suoluo22]#pwd -P    #文件的真实路径
/opt/suoluo2022

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   //显示隐藏文件
.  ..  ky23.txt  luo  suo

[root@localhost suoluo]# ls *   // *不包括.开头的
ky23.txt
luo:
suo:

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

..:
anaconda-ks.cfg  data  initial-setup-ks.cfg  ky23  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月  21 16:11 11.txt
-rw-r--r--. 4 root root 16 9月  21 16:11 1.txt   #
lrwxrwxrwx. 1 root root 22 9月  21 16:29 22.txt -> /root/suoluo/luo/1.txt
-rw-r--r--. 1 root root 16 9月  21 16: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------. 3     1002     1002 78 8月  26 09:27 hehe
drwx------. 3 mysql    mysql    78 8月  25 11:45 mysql
drwx------. 3 zhangsan zhangsan 78 8月   6 20: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月  26 10:02 99.img
[root@localhost opt]# echo >>99.img 
[root@localhost opt]# ll 99.img 
-rw-r--r--. 1 root root 103809025 8月  26 10:03 99.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:        1867048      778400      170760        4900      917888      865052
Swap:       4194300        6036     4188264
[root@localhost ~]# df
文件系统                   1K-块    已用     可用 已用% 挂载点
/dev/mapper/centos-root 52403200 4650780 47752420    9% /
devtmpfs                  917604       0   917604    0% /dev
tmpfs                     933524       0   933524    0% /dev/shm
tmpfs                     933524    9260   924264    1% /run
tmpfs                     933524       0   933524    0% /sys/fs/cgroup
/dev/sda1                5232640  182372  5050268    4% /boot
tmpfs                     186708       4   186704    1% /run/user/42
tmpfs                     186708      32   186676    1% /run/user/0
/dev/sr0                 4414592 4414592        0  100% /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:0    0   60G  0 disk 
├─sda1            8:1    0    5G  0 part /boot
└─sda2            8:2    0   54G  0 part 
  ├─centos-root 253:0    0   50G  0 lvm  /
  └─centos-swap 253:1    0    4G  0 lvm  [SWAP]
sr0              11:0    1  4.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

三.总结

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

posted @ 2022-09-21 19:49  索罗大魔王  阅读(81)  评论(0编辑  收藏  举报