Linux-系统管理

系统管理

find

作用

根据给定路径和搜索条件查找文件

使用说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 格式:find [路径] [参数] 待搜索字段
# 常用参数
-name 匹配名称
-user 匹配所有者
-perm 匹配权限(mode为完全匹配,-mode为包含即可)
-type b(块设备)/d(目录)/c(字符设备)/p(管道)/l(链接文件)/f(文本文件) 匹配文件类型
-group 匹配所有组
-mtime -n +n 匹配修改内容的时间(-n指n天以内,+n指n天以前)
-atime -n +n 匹配访问文件的时间(-n指n天以内,+n指n天以前)
-ctime -n +n 匹配修改文件权限的时间(-n指n天以内,+n指n天以前)
-nouser 匹配无所有者的文件
-nogroup 匹配无所有组的文件
-size 匹配文件的大小(+50KB为查找超过50KB的文件,而-1M为查找小于1M的文件)
-exec [处理搜索结果的命令] {}\; 后面可跟用于进一步处理搜索结果的命令

locate

作用

locate命令的功能是用于快速查找文件或目录

与find命令进行全局搜索不同,locate命令是基于了数据文件(/var/lib/locatedb)进行的定点查找

此命令缩小了搜索范围,因此快速快很多

使用说明

1
2
3
4
5
6
# 格式:locate 关键词
# 更新数据库文件
[root@zhima home]# updatedb

# 查找系统中文件名中有network的文件
[root@zhima home]# locate network

which

作用

找到命令本身所在的路径

使用说明

1
# 格式:which [参数] 命令

参考案例

1
2
3
4
5
6
[root@zhima home]# which yum
/usr/bin/yum
[root@zhima home]# which rpm
/usr/bin/rpm
[root@zhima home]# which docker
/usr/bin/docker

whereis

作用

定位命令的二进制程序、源代码文件和man手册页等相关文件的路径

它不是在磁盘中乱找,而是在一个数据库文件中查询

此数据库文件是包含有本地所有文件的信息,需要自己手动使用updatedb更新数据库

正因为这样,whereis命令的搜索结果有时候会不准确,比如刚添加的文件可能搜不到, 原因就是该数据库文件没有被更新。

使用说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 格式:whereis [参数] 命令名
# 常用参数
# 只搜索二进制文件
-b search only for binaries
# 指定路径搜索二进制文件
-B <dirs> define binaries lookup path
# 只搜索man手册
-m search only for manuals
# 指定路径下搜索man手册
-M <dirs> define man lookup path
# 只搜索源代码
-s search only for sources
# 指定路径下搜索源代码
-S <dirs> define sources lookup path

rpm

作用

包管理器(RedHat Package Manager)

使用说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 格式:rpm [参数] 软件包名
# 常用参数
# 列出所有软件包
-a, --all query/verify all packages
# 卸载软件包
-e, --erase=<package>+ erase (uninstall) package
# 查询文件或命令属于哪个软件包
-f, --file query/verify package(s) owning file
# 下载软件包
-i, --install install package(s)
# 显示软件包的文件列表
-l, --list list files in package
# 查询指定的rpm软件包
-p, --package query/verify a package file
# 安装软件包时列出标记
-h, --hash print hash marks as package installs (good with -v)
# 显示命令执行过程
-v, --verbose provide more detailed output

参考案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 安装软件包
[root@zhima home]# rmp ivh cockpit-185-2.el8.x86_64.rpm

# 列出系统安装的所有软件
[root@zhima home]# rpm -qa

# 查看cockpit的文件列表
[root@zhima home]#rpm -ql cockpit

# 升级指定软件包
[root@zhima home]#rpm -Uvh cockpit-185-2.el8.x86_64.rpm

# 卸载cockpit
[root@zhima home]#rpm -evh cockpit

ps

作用

查看进程状态(process status)

使用说明

1
2
3
4
5
6
7
8
9
10
# 格式:ps [参数]
# 常用参数
a 显示现行终端机下的所有程序,包括其他用户的程序
u 以用户为主的格式来显示程序状况
x 显示所有程序,不以终端机来区分
r 只列出现行终端机正在执行中的程序
e 列出程序时,显示每个程序所使用的环境变量
-f 显示UID,PPIP,C与STIME栏位
-l 采用详细的格式来显示程序状况
-y 配合选项”-l”使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位

参考案例

1
2
3
4
5
6
7
8
9
10
11
12
# 显示系统中全部的进程信息,包含详细信息
# 结合输出重定向,将当前进程信息保留备份至指定文件
ps aux > now_process_status.txt

# 显示当前系统运行状态详细信息
ps -ely

# 显示当前系统运行状态
ps -ef

# 依据内存使用量(第四列)情况降序排序
ps aux | sort -rnk 4

nohup

作用

后台启动程序

使用说明

1
# 格式:nohup [参数] 程序名

参考案例

1
2
3
4
5
# 以后台模式运行xxx.jar包
nohup java -jar xxx.jar &

# 以后台模式运行xxx.jar包并讲输出结果都写入xxx_log.txt文件
nohup java -jar xxx.jar & > xxx_log.txt

systemctl

作用

管理系统服务(后台进程)

使用说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 开启服务
systemctl start servieName

# 重启服务
systemctl restart servieName

# 关闭服务
systemctl stop servieName

# 查看服务状态
systemctl status servieName

# 关闭后台服务自启动
systemctl disable serviceName

# 开启后台服务自启动
systemctl enable serviceName

# 查看所有后台服务状态
systemctl list-units --type service --all

uname

作用

显示系统内核内容

使用说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 格式:uname [参数]
# 常用参数
# 显示全部信息
-a, --all print all information, in the following order,
except omit -p and -i if unknown:
# 显示主机名
-n, --nodename print the network node hostname
# 显示内核名
-s, --kernel-name print the kernel name
# 显示硬件架构
-m, --machine print the machine hardware name
# 显示内核发行号
-r, --kernel-release print the kernel release
# 显示内核版本
-v, --kernel-version print the kernel version
# 显示处理器的类型
-p, --processor print the processor type or "unknown"
# 显示操作系统类型
-o, --operating-system print the operating system

shutdown

作用

关机

使用说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# Linux系统中为了提高磁盘的读写效率,对磁盘采用了“预读迟写”操作方式。当用户保存文件时,Linux核心并不一定立即将数据写入物理磁盘中,而是将数据保存在缓存区中,等到缓存区被填满了之后再将数据写入磁盘,这种方式确实极大地提高了读写效率,但是也有其所在的一些问题,当服务器遭受到断电或者其他意外情况的时候,缓存中的数据会直接丢失,这就会导致一些问题,sync就是将缓存中的东西直接写入到磁盘中去,无需等待缓存被填满
#将数据同步到硬盘(关机前必须做)
sync

#服务器在十分钟后关机
shutdown -h 10

#立即关机
shutdown -h now

#在20:35关机
shutdown -h 20:35

#立马重启
shutdown -r now

#立马重启
reboot
给作者买杯咖啡吧~~~