Centos7常用指令

VIM编辑器
模式转换方法

vi 和 vim 快捷键
拷贝/拷贝当前向下5行:yy / 5yy
删除/删除当前向下5行:dd / 5dd
文件中搜索:命令行模式下 /关键字 然后回车查找,,输入n表示下一个
设置 / 取消文件的行号: 命令行模式下输入 :set nu / :set nonu
查看文件最末行:G 最首行:gg
撤销输入的文本的动作: u


关机重启命令
shutdown -h now 立该进行关机
shutdown -h 1 1 分钟后会关机
shutdown -r now 现在重新启动计算机
halt 关机,作用和上面一样
reboot 现在重新启动计算机
sync 把内存的数据同步到磁盘.
注意:

不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中
目前的 shutdown/reboot/halt 等命令均已经在关机前进行了 sync
登录注销
登录尽量使用普通账户,当权限不够再使用 su 用户名指令切换为管理员
注销:logout
用户管理
添加用户
语法:useradd 用户名或useradd -d 指定目录 用户名
当创建用户成功后,会自动的创建和用户同名的家目录,useradd -d 指定目录 用户名可以给新创建的用户指定目录

指定/修改密码
语法:passwd 用户名
查看当前用户号所在目录:pwd

删除用户
语法:userdel 用户名
注意: 删除用户仍然会保留用户目录,如需删除用户及其目录,可用userdel -r 用户名

查询用户信息指令
语法:id 用户名

切换用户
语法:su 用户名
注意: 当需要返回到原来用户时,使用 exit/logout 指令

查看当前用户/登录用户
whoami/who am I

用户组管理
新增用户组
语法:groupadd 组名

删除用户组
语法:groupdel 组名

练习:可以在新增用户组之后添加用户时直接指定用户所在组:useradd -g 用户组名 用户名

修改用户组
语法:usermod -g 用户组 用户名

用户和组相关文件
/etc/passwd 文件

用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell

/etc/shadow 文件

口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

/etc/group 文件

组(group)的配置文件,记录 Linux 包含的组的信息每行含义:组名:口令:组标识号:组内用户列表

指定运行级别
运行级别说明:
0 :关机
1 :单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用运行级别是 3 和 5 ,也可以指定默认运行级别
命令:init [0123456] 应用案例: 通过 init 来切换不同的运行级别
假设 root 密码忘记了,请问如何找回密码
重启进入单用户模式修改

文件目录类
显示当前工作目录的绝对路径
语法:pwd

显示当前文件夹文件
语法:ls
 常用选项
-a :显示当前目录所有的文件和目录,包括隐藏的。
-l :以列表的方式显示信息

切换当前路径
语法cd 指定目录

创建目录
语法:mkdir [选项] 要创建的目录
 常用选项
-p :创建多级目录

删除目录
删除空目录语法:rmdir [选项] 要删除的空目录
删除非空目录语法:rm -rf 要删除的目录

创建文件
语法:touch 文件名称

拷贝文件
语法:cp [选项] 原地址 目标地址
 常用选项
-r :递归复制整个文件夹

删除文件或目录
语法:rm [选项] 要删除的文件或目录
 常用选项
-r :递归删除整个文件夹
-f : 强制删除不提示

移动文件、目录(也可用作文件重命名)
语法:mv 旧文件名 新文件名(重命名)
mv 文件/目录 移动地址(移动文件)

查看文件内容
语法:cat [选项] 要查看的文件
 常用选项
-n :显示行号
注意:
cat 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上 管道命令 | more cat -n /etc/profile | more [进行交互]

more指令
基于 VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more 指令中内置了若干快捷键(交互的指令),详见操作说明
语法:more 要查看的文件操作说明
如图:


less指令
less 指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
语法:less 要查看的文件


echo 指令
echo 输出内容到控制台
语法:echo [选项] [输出内容]

head指令
head 用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容
语法:head 文件
例子:head -n 5 文件 (功能描述:查看文件头 5 行内容,5 可以是任意行数)

tail 指令
tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的前 10 行内容。
语法:

tail 文件 (功能描述:查看文件尾 10 行内容)
tail -n 5 文件 (功能描述:查看文件尾 5 行内容,5 可以是任意行数)
tail -f 文件 (功能描述:实时追踪该文档的所有更新)
> 指令 和 >> 指令
>输出重定向(内容覆盖)和>>追加
语法案例:
1)ls -l >文件 (功能描述:列表的内容写入文件 a.txt 中(覆盖写))
2) ls -al >>文件 (功能描述:列表的内容追加到文件 aa.txt 的末尾)
3) cat 文件 1 > 文件 2 (功能描述:将文件 1 的内容覆盖到文件 2)
4)echo "内容">> 文件 (追加)

ln 指令(软连接)
语法:ln -s [原文件或目录] [软链接名](功能描述:给原文件创建一个软链接)
案例: 在/home 目录下创建一个软连接 myroot,连接到 /root 目录
ln -s /root /home/myroot

history指令
查看已经执行过历史命令,也可以执行历史指令
语法:history (功能描述:查看已经执行过历史命令)

时间日期类
date 指令-显示当前日期
语法:

date (功能描述:显示当前时间)
date +%Y(功能描述:显示当前年份)
date +%m(功能描述:显示当前月份)
date +%d(功能描述:显示当前是哪一天)
date "+%Y-%m-%d %H:%M:%S"(功能描述:显示年月日时分秒)
date 指令-设置日期
语法:
date -s 字符串时间
案例
设置系统当前时间 , 比如设置成 2020-11-03 20:02:10
date -s “2020-11-03 20:02:10”

cal 指令
查看日历指令 cal
语法:cal [选项](功能描述:不加选项,显示本月日历)
案例
显示 2020 年日历 :cal 2020

搜索查找类
find 指令
find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
语法:find [搜索范围] [选项]
 选项说明


locate 指令
locate 指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻

语法:locate 搜索文件
注意: 由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库。

grep 指令和 管道符号 |
语法:grep [选项] 查找内容 源文件
选项

案例 : 请在 hello.txt 文件中,查找 “yes” 所在行,并且显示行号写法 1: cat /home/hello.txt | grep “yes”
写法 2: grep -n “yes” /home/hello.txt

压缩和解压类
gzip/gunzip 指令
gzip 用于压缩文件, gunzip 用于解压的

语法:gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz 文件)
gunzip 文件.gz (功能描述:解压缩文件命令)

zip/unzip 指令
zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的

语法:zip [选项] XXX.zip 将要压缩的内容(功能描述:压缩文件和目录的命令)
unzip [选项] XXX.zip (功能描述:解压缩文件)

 zip 常用选项

-r:递归压缩,即压缩目录
 unzip 的常用选项

-d<目录> :指定解压后文件的存放目录
tar 指令
语法:tar [选项] XXX.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)

案例:

压缩多个文件,将 /home/pig.txt 和 /home/cat.txt 压缩成 pc.tar.gz
tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt
将/home 的文件夹 压缩成 myhome.tar.gz
tar -zcvf myhome.tar.gz /home/
将 pc.tar.gz 解压到当前目录
tar -zxvf pc.tar.gz
将myhome.tar.gz 解压到 /opt/tmp2 目录下
(1) mkdir /opt/tmp2
(2) tar -zxvf /home/myhome.tar.gz -C /opt/tmp2
组管理和权限管理
查看文件的所有者
语法:ls –ahl

修改文件所有者
语法:chown 用户名 文件名

组的创建
语法:groupadd 组名
注意: 当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组(默认)。

查看文件/目录所在组
语法:ls –ahl

修改文件/目录所在的组
语法:chgrp 组名 文件名

改变用户所在组
语法:usermod –g 新组名 用户名
usermod –d 目录名 用户名 改变该用户登陆的初始目录。
**注意:**用户需要有进入到新目录的权限。

文件信息的基本介绍
ls -l 中显示的内容如下:
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
0-9 位说明

第 0 位确定文件类型(d, - , l , c , b)
l 是链接,相当于 windows 的快捷方式
d 是目录,相当于 windows 的文件夹
c 是字符设备文件,鼠标,键盘
b 是块设备,比如硬盘
第 1-3 位确定所有者(该文件的所有者)拥有该文件的权限。—User
第 4-6 位确定所属组(同用户组的)拥有该文件的权限,—Group
第 7-9 位确定其他用户拥有该文件的权限 —Other
权限可用数字表示为: r=4,w=2,x=1 因此 rwx=4+2+1=7 , 数字可以进行组合
 其它说明
1 文件:硬连接数 或 目录:子目录数
root 用户
root 组
1213 文件大小(字节),如果是文件夹,显示 4096 字节
Feb 2 09:39 最后修改日期
abc 文件名

修改权限-chmod
方法一:+ 、-、= 变更权限
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和)

chmod u=rwx,g=rx,o=x 文件/目录名
chmod o+w 文件/目录名
chmod a-x 文件/目录名
方法二:通过数字变更权限
r=4 w=2 x=1 rwx=4+2+1=7 chmod u=rwx,g=rx,o=x 文件目录名相当于 chmod 751 文件/目录名
修改文件所有者-chown
语法:
chown newowner 文件/目录 改变所有者
chown newowner:newgroup 文件/目录 改变所有者和所在组
-R 如果是目录 则使其下所有子文件或目录递归生效

修改文件/目录所在组-chgrp
语法:chgrp newgroup 文件/目录 【 改变所在组】

任务调度
语法crontab [选项]
常用的:

conrtab –r:终止任务调度。
crontab –l:列出当前有那些任务调度
service crond restart [重启任务调度]
常用选项:

快速入门:

设置任务调度文件:/etc/crontab
设置个人任务调度。执行 crontab –e 命令。
接着输入任务到调度文件,如:*/1 * * * * ls –l /etc/ > /tmp/to.txt,意思说每小时的每分钟执行 ls –l /etc/ > /tmp/to.txt 命令
参数细节说明
5 个占位符的说明

特殊符号的说明

特殊时间执行案例

一些操作案例:

案例 1:每隔 1 分钟,就将当前的日期信息,追加到 /tmp/mydate 文件中
*/1 * * * * date >> /tmp/mydate
案例 2:每隔 1 分钟, 将当前日期和日历都追加到 /home/mycal 文件中步骤:
(1) vim /home/my.sh 写入内容 date >> /home/mycal和 cal >> /home/mycal
(2) 给 my.sh 增加执行权限,chmod u+x /home/my.sh
(3) crontab -e 增加 */1 * * * * /home/my.sh
案例 3: 每天凌晨 2:00 将 mysql 数据库 testdb ,备份到文件中。提示: 指令为
mysqldump -u root -p 密码 数据库 > /home/db.bak
步骤(1) crontab -e
步骤(2)0 2 * * * mysqldump -u root -proot testdb > /home/db.bak
at 定时任务
语法:at [选项] [时间]
Ctrl + D 结束 at 命令的输入, 输出两次
at 命令选项

 at 指定时间的方法:

接受在当天的 hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。 例如:04:00
使用 midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午 4 点)等比较模糊的词语来指定时间。
采用 12 小时计时制,即在时间后面加上 AM(上午)或 PM(下午)来说明是上午还是下午。 例如:12pm
指定命令执行的具体日期,指定格式为 month day(月 日)或 mm/dd/yy(月/日/年)或 dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。 例如:04:00 2021-03-1
使用相对计时法。指定格式为:now + count time-units ,now 就是当前时间,time-units 是时间单位,这里能够是 minutes
(分钟)、hours(小时)、days(天)、weeks(星期)。count 是时间的数量,几天,几小时。 例如:now + 5 minutes
直接使用 today(今天)、tomorrow(明天)来指定完成命令的时间。
案例:
案例 1:2 天后的下午 5 点执行 /bin/ls /home

案例 2:atq 命令来查看系统中没有执行的工作任务
案例 3:明天 17 点钟,输出时间到指定文件内 比如 /root/date100.log

案例 4:2 分钟后,输出时间到指定文件内 比如 /root/date200.log

案例 5:删除已经设置的任务 , atrm 编号
atrm 4 //表示将 job 队列,编号为 4 的 job 删除

磁盘分区挂载
语法:lsblk 或者lsblk -f (速记:老师不离开(lsblk))

 分区命令 fdisk /dev/sdb
开始对/sdb 分区
m 显示命令列表
p 显示磁盘分区 同 fdisk –l n 新增分区
d 删除分区
w 写入并退出
 说明: 开始分区后输入 n,新增分区,然后选择 p ,分区类型为主分区。两次回车默认剩余全部空间。最后输入 w
写入分区并退出,若不保存退出输入 q。

 格式化磁盘
分区命令:mkfs -t ext4 /dev/sdb1
其中 ext4 是分区类型
 挂载: 将一个分区与一个目录联系起来,
mount 设备名称 挂载目录
例如: mount /dev/sdb1 /newdisk
 umount 设备名称 或者 挂载目录
例如: umount /dev/sdb1 或者 umount /newdisk
永久挂载: 通过修改/etc/fstab 实现挂载添加完成后 执行 mount –a 即刻生效

查看系统整体磁盘使用情况
语法:df -h


查询指定目录的磁盘占用情况
语法:du -h
 查询指定目录的磁盘占用情况,默认为当前目录
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
–max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值

磁盘情况-工作实用指令
统计/opt 文件夹下文件的个数
ls -l /opt | grep "^-" | wc -l
统计/opt 文件夹下目录的个数
ls -l /opt | grep "^d" | wc -l
统计/opt 文件夹下文件的个数,包括子文件夹里的
ls -lR /opt | grep "^-" | wc -l
统计/opt 文件夹下目录的个数,包括子文件夹里的
ls -lR /opt | grep "^d" | wc -l
以树状显示目录结构 tree 目录 , 注意,如果没有 tree ,则使用 yum install tree 安装

进程管理
显示系统执行的进程
语法:ps


指令:ps –aux|grep xxx ,比如我看看有没有 sshd 服务
指令说明
 System V 展示风格
 USER:用户名称
 PID:进程号
 %CPU:进程占用 CPU 的百分比
 %MEM:进程占用物理内存的百分比
 VSZ:进程占用的虚拟内存大小(单位:KB)
 RSS:进程占用的物理内存大小(单位:KB)
 TT:终端名称,缩写 .
 STAT:进程状态,其中 S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-
正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
 STARTED:进程的启动时间
 TIME:CPU 时间,即进程使用 CPU 的总时间
 COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
实例:

以全格式显示当前所有的进程,查看进程的父进程。
查看 sshd 的父进程信息
ps -ef 是以全格式显示当前所有的进程
-e 显示所有进程。-f 全格式
ps -ef|grep sshd
终止进程kill
语法:
kill [选项] 进程号(功能描述:通过进程号杀死/终止进程)
killall 进程名称(功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)

常用选项:
-9 :表示强迫进程立即停止

实例:

案例 1:踢掉某个非法登录用户
kill 进程号 , 比如 kill 11421
案例 2: 终止远程登录服务 sshd, 在适当时候再次重启 sshd 服务
kill sshd 对应的进程号; /bin/systemctl start sshd.service
案例 3: 终止多个 gedit , 演示 killall gedit
案例 4:强制杀掉一个终端, 指令 kill -9 bash 对应的进程号
查看进程树 pstree
语法:pstree [选项] ,可以更加直观的来看进程信息
常用选项:
-p :显示进程的 PID
-u :显示进程的所属用户

服务管理
语法:service 服务名 [start | stop | restart | reload | status]
注意:

在 CentOS7.0 后 很多服务不再使用 service ,而是 systemctl
service 指令管理的服务在 /etc/init.d 查看
通过 chkconfig 命令可以给服务的各个运行级别设置自 启动/关闭
chkconfig 指令管理的服务在 /etc/init.d 查看
 chkconfig 基本语法

查看服务 chkconfig --list [| grep xxx]
chkconfig 服务名 --list
chkconfig --level 5 服务名 on/off
systemctl 管理指令
语法: systemctl [start | stop | restart | status] 服务名
systemctl 指令管理的服务在 /usr/lib/systemd/system 查看

systemctl 设置服务的自启动状态
systemctl list-unit-files [ | grep 服务名](查看服务开机启动状态, grep 可以进行过滤)
systemctl enable 服务名 (设置服务开机启动)
systemctl disable 服务名 (关闭服务开机启动)
systemctl is-enabled 服务名(查询某个服务是否是自启动的)
案例:
查看当前防火墙的状况,关闭防火墙和重启防火墙
systemctl status firewalld 查看防火墙状态
systemctl stop firewalld关闭防火墙
systemctl start firewalld重启防火墙
注意:
关闭或者启用防火墙后,立即生效。[telnet 测试 某个端口即可]
这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。
如果希望设置某个服务自启动或关闭永久生效,要使用 systemctl [enable|disable] 服务名
firewall 指令(防火墙)
打开端口: firewall-cmd --permanent --add-port=端口号/协议
关闭端口: firewall-cmd --permanent --remove-port=端口号/协议
重新载入,才能生效 : firewall-cmd --reload
查询端口是否开放: firewall-cmd --query-port=端口/协议
案例:
启用防火墙, 测试 111 端口是否能 telnet , (此时不行)
开放 111 端口后
firewall-cmd --permanent --add-port=111/tcp ; 需要 firewall-cmd --reload
再次关闭 111 端口
firewall-cmd --permanent --remove-port=111/tcp ; 需要 firewall-cmd --reload
动态监控进程
top 与 ps 命令很相似。它们都用来显示正在执行的进程。Top 与 ps 最大的不同之处,在于 top 在执行一段时间可以更新正在运行的的进程。

语法:top [选项]


选项说明:
交互操作说明:

案例:

案例 1.监视特定用户, 比如我们监控 tom 用户top:输入此命令,按回车键,查看执行的进程。u:然后输入“u”回车,再输入用户名,即可,
案例 2:终止指定的进程, 比如我们要结束 tom 登录top:输入此命令,按回车键,查看执行的进程。k:然后输入“k”回车,再输入要结束的进程 ID 号
案例 3:指定系统状态更新的时间(每隔 10 秒自动更新), 默认是 3 秒
top -d 10
查看网络状态
语法:netstat [选项]
选项:
-an 按一定顺序排列输出
-p 显示哪个进程在调用

检测主机连接命令ping:
包管理
RPM包管理
一些语法指令:
rpm -qa :查询所安装的所有 rpm 软件包

rpm -qa | more
rpm -qa | grep X [rpm -qa | grep firefox ]
rpm -q 软件包名 :查询软件包是否安装

rpm -q firefox
rpm -qi 软件包名 :查询软件包信息
案例: rpm -qi firefox
rpm -ql 软件包名 :查询软件包中的文件

rpm -ql firefox
rpm -qf 文件全路径名: 查询文件所属的软件包
rpm -qf /etc/passwd
rpm -qf /root/install.log
卸载rpm包
语法:rpm -e RPM 包的名称
注意:

如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。如: $ rpm -e foo
removing these packages would break dependencies:foo is needed by bar-1.0-1
如果我们就是要删除 foo 这个 rpm 包,可以增加参数 --nodeps ,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行
如:$ rpm -e --nodeps foo
安装rpm包
语法:rpm -ivh RPM 包全路径名称
 参数说明

i=install 安装
v=verbose 提示
h=hash 进度条
实例:
演示卸载和安装 firefox 浏览器
rpm -e firefox 卸载
rpm -ivh firefox 安装

yum包管理
Yum 是一个 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。

语法:yum list|grep xx 软件列表 查询 yum 服务器是否有需要安装的软件

安装指定的yum包
语法:yum install xxx 下载安装

实例:
请使用 yum 的方式来安装 firefox
rpm -e firefox
yum list | grep firefox
yum install firefox

移除指定的yum包
语法:yum remove xxx 下载安装
————————————————
版权声明:本文为CSDN博主「Dream_Candy」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Dream_6666/article/details/118566438

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值