1、系统管理的常用命令
1.1、ls
- ls -a 显示所有的隐藏文件及目录,ls -A 显示隐藏文件
- ls -l == ll
- ls : 显示的是链接文件及链接路径,ls -L,显示的是链接路径下的真实文件
- 用绝对路径,表示index.html ;/root/test/app/index.html
- 用相对路径,表示index.htm ;/app/index.html
- pwd 显示的是当前路径,pwd -P 显示 链接文件的真实路径
[root@localhost ~]# cd ~ 切换到用户的家目录
[root@localhost opt]# cd - 切换到上一次文件所在的路径。
[root@localhost opt]# cd . ./ 切换到上层目录
[root@localhost opt]# cd . ./. ./ 切换到上上层目录
1.2、date
-
时钟显示格式的拼接
[root@localhost ~]# date ‘+%Y-%m-%d %H:%M:%S’
2021-02-04 21:01:15 -
修改系统时间(-s 将系统时间设为 datestr 中所设定的时间)
[root@localhost ~]# date -s 00:00:00
Thu Feb 4 00:00:00 CST 2021
[root@localhost ~]# date
Thu Feb 4 00:00:03 CST 2021 -
显示时区:
[root@localhost ~]# date +%Z
CST -
扩展:
#!/bin/bash
#使用时间戳命名文件
time=`date +%Y-%m-%d-%H-%M-%S`
touch "$time".log
1.3、wget
-
[root@localhost ~]# wget http://mirrors.sohu.com/centos/7.6.1810/extras/x86_64/Packages/centos-release-scl-2-3.el7.centos.noarch.rpm
-
[root@localhost src]# wget -b -c http://mirrors.sohu.com/centos/7.6.1810/extras/x86_64/Packages/ansible-2.4.2.0-2.el7.noarch.rpm /usr/local/src/
-b 后台运行
-c端点续传 -
[root@localhost src]# wget -P /usr/local/src/ http://mirrors.sohu.com/centos/7.6.1810/extras/x86_64/Packages/ansible-2.4.2.0-2.el7.noarch.rpm
-P 指定下载路径
1.4、uname 显示系统信息
-
[root@localhost src]# uname -a 查看系统内核信息
[root@localhost src]# uname -r -
[root@localhost ~]# cat /etc/redhat-release 查看虚拟器版本
CentOS Linux release 7.6.1810 (Core)
1.5、free 显示系统内存使用情况
[root@localhost src]# free
[root@localhost src]# free -m
[root@localhost src]# free -h
total used free shared buff/cache available
Mem: 976M 132M 533M 6.7M 311M 663M
Swap: 2.0G 0B 2.0G
1.6、mem:内存
swap: 在磁盘上格式化的一个和内存格式相同的分区
buff:数据读的缓存空间
cache:数据写的缓存空间
1.7、关机命令
shutdown -h now
init 0
1.8、重启
reboot
1.9、uptime
- [root@localhost ~]# uptime
10:35:32 ------up----1:3,----------- 2 users, ------load average: 0.00, 0.01, 0.05(----仅代表空格)
(系统时间)(状态) (工作时间)(用户数量) (1、5、15分钟平均负荷) - top 实时显示系统负载,以及每一个进程的资源占用情况
1.10、ps命令用法
- [root@localhost ~]# ps -ef 查看进程
- [root@localhost ~]# ps -aux |grep ssh 查找特定使用者的行程
- a 显示所有进程
- -a 显示同一终端下的所有程序
- -A 显示所有进程,包含详细信息
- -au 显示较详细的资讯
- -aux 显示所有包含其他使用者的行程
1.11、用户
- passwd 修改当前用户密码
- passwd 用户名 修改用户密码
- su 用户名 切换用户,用户目录没有变化
- su - 用户名 到用户的家目录
su命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su -以后的环境变量有何不同。 - exit 退出当前用户
- whoami 查看当前用户名
1.12、文件
- [root@localhost ~]# mkdir
只能创建1层目录; - [root@localhost ~]# mkdir -p date/date1/date2
-p 创建多层目录; - [root@localhost ~]# >filename
创建文件 - [root@localhost ~]# touch filename
创建文件 - [root@localhost ~]# diff file1 file2
对比文件 - [root@localhost ~]# cat -s filename
压缩空行,如果文本中有两行或以上的空行,在用 cat 命令之后将只显示一行空行 - [root@localhost ~]# cat -E file
在每行结束处显示$ - [root@localhost ~]# cat -En file
在每行结束处显示$,并显示出行号 - [root@localhost ~]# grep root /etc/passwd
筛选出包含root的行 - [root@localhost ~]# grep -c root /etc/passwd
统计包含root的行数 - [root@localhost ~]# grep -i root /etc/passwd
筛选出含root的行,不取分大小写 - [root@localhost ~]# grep -n root /etc/passwd
筛选以root开头的行并打印出行号 - [root@localhost ~]# grep -v root /etc/passwd
筛选出不包含root的行
1.13、查看文件
- cat file
- cat file1 file2
把两个文件的内容拼接到一起 - cat -n file
打印出行号; - vim +行号 /etc/passwd
光标直接跳到对应的行 - [root@localhost ~]# tail -num /etc/passwd
查看文件后num行,默认后10行 - [root@localhost ~]# head -num passwd
查看文件前num行,默认前10行 - diff file1 file2 文件对比
- [root@localhost ~]# vim +num file
查看文件,光标在第num行 - file 文件名
查看文件类型
1.14、more:分屏显示
- more -10 dmesg.old 一屏十行
- ctrl + f 向下翻屏滚动
- ctrl + b 向上翻屏滚动
1.15、删除
- rm 删除文件:
- rm filename
删除文件 - rm -r filename
递归删除 - rm -f filename
强制删除 - rm -d filename
删除空目录
1.16、更改文件名命令:
mv test test1
[root@localhost ~]# mv test test1
1.17、移动
- mv
移动文件位置,移动时,不指定新名字,名字不变,若指定,则重命名。
1.18、复制
- cp filename filepath
复制文件到指定目录下 - cp -p filename filepath
带权限复制 - cp -a filename filepath
保留原文件属性的前提下复制文件
1.19、创建链接
- ln file1 file2
创建硬链接,给file1做了硬链接,硬链接,在原文件删除后,内容依然存在 - ln -s file1 file2
创建软连接,软连接,在原文件删除的情况下,内容失效 - 扩展
- exec:
对匹配的文件执行该参数所给出的shell命令。形式为command {} \; ,注意{}与\;之间有空格 - find 查找路径,(默认当前)参数 (-name filename ,-user username, -type f/s/)
- find -name test1 -exec rm -rf {} \;
删除名字为test1的文件 - find -name “test*” -exec rm -rf {} ;
删除名字为 "test *"的所有文件 - 文件系统:类Unix系统上,是一个“倒挂树”的形式
2、Linux系统文件目录:
- bin,sbin
系统标准的Linux工具,如 ls、vi 等 - boot
主要存放于系统启动有关的文件 - dev
主要存放与设备(包括外设)有关的文件(unix和linux系统均把设备当成文件) - etc
主要存放了系统配置方面的文件 - home
用户的数据文件 - opt
用户自定义安装的软件 - usr
系统存放程序的目录,比如命令、帮助文件等 - var
/var下有/var/log 这是用来存放系统日志的目录。/var/www目录是定义Apache服务器站点存放目录;/var/lib 用来存放一些库文件,比如MySQL的,以及MySQL数据库的的存放地 - proc
操作系统运行时,进程信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里 - mnt
这个目录一般是用于存放挂载储存设备的挂载目录的
2.1文件操作
- cut
- cut -b 按照字节个数截取文件
[root@localhost log]# ip a |grep inet |grep -v inet6 |cut -b -20 - cut -b 0-20
- cut -b 10-
- cut -b -20
- cat sort |sort 默认正序
- cat sort |sort -r 倒序
- cat sort |sort |uniq 先排序再去重
- cat sort |wc -l 统计行数
- sort 排序
默认是正序排列
-r 倒叙
2.2、查询命令路径
- which 命令,查看命令所在路径,可以判断系统有没有安装命令程序
- whereis 命令,查看命令所在路径,以及压缩包所在路径
2.3、查询文件所在位置
- find
- [root@localhost ~]# find -name file2
./data1/file2 - [root@localhost ~]# find /etc -name passwd–在指定目录下寻找
- [root@localhost ~]# find -name test1 -exec rm -rf {} ;–寻找出test1并删除
- [root@localhost ~]# find -name “test*” -exec rm -rf {} ;–寻找出所有test开头文件并删除
- locate
2.4shell中单引号和双引号的区别
- 单引号:所见即所得,即输出时会将单引号内的所有内容都原样输出,或者描述为单引号里面看到的什么就输出什么,这成为强引用。
- 双引号:输出双引号的所有内容;如果内容中有命令(要反引)、变量、特殊转义,会先把变量、命令、转义字符解析出结果,然后在输出最终内容,这称为弱引。
- 反引号:一般用于命令,执行的时候命令会被执行,相当于$(),赋值和输出都要用反引号引起来。
2.5、基本正则表达式
-
字符匹配
-
. 匹配任意单个字符
-
[] 匹配指定范围内的任意单个字符
-
[^] 匹配指定范围外的任意单个字符
-
[:digit:] 数字
-
[[:digit:]]、[[:lower:]]、[[:upper:]]
-
匹配次数
-
匹配前边字符任意次数 *
-
匹配任意长度的任意字符 .*
-
匹配前面的字符0次或者1次 \?
-
匹配一次或者多次 \*
-
\{m,n} 匹配前边字符最少m次,最多n次
\{0,n} 匹配n次
\{m,\} 匹配最少m次 -
位置锚定
-
^ 行首锚定
-
$ 行尾锚定
-
^$ 空行
-
< \b 词首锚定
-
^[[:space:]]$:
-
分组和引用
-
\(\):
-
\(xy\)(zd\)ab\2 引用第二块
-
\1 引用第一块
重点:
link链接文件原理,软连接、硬链接
rm删除内容的原理