Linux常用命令
1 vi和vim编辑器相关
vi或vim编辑器有三种模式:
命令 | 说明 | 备注 |
---|---|---|
vim 文件名 | 进入文件并编辑 | |
yy | 拷贝 | 一般模式使用 |
p | 粘贴 | 一般模式使用 |
5yy | 拷贝当前行向下的5行 | 一般模式使用 |
dd | 删除当前行 | 一般模式使用 |
5dd | 删除当前行向下的5行 | 一般模式使用 |
set nu | 显示行号 | 一般模式使用 |
set nonu | 取消行号显示 | 一般模式使用 |
gg | 回到文档首行 | 一般模式使用 |
G | 回到文档末行 | 一般模式使用 |
u | 撤销 | 一般模式使用 |
shift+20 | 将光标移动到第20行 | 一般模式使用,先输入20,再输入shift+20 |
/字串 | 向下搜寻指定字串 | 一般模式使用,n:向下查找,N:向上查找 |
2 开机、重启和用户登录注销
命令 | 常用选项 | 说明 | 备注 |
---|---|---|---|
shutdown | -h now | 立即关机 | |
-h 2 | 2分钟后关机 | ||
-r now | 立即重启 | ||
halt | 关机 | ||
reboot | 重启 | ||
sync | 将内存中的数据同步到磁盘 | 关机或者重启时,应先执行sync 指令,防止数据丢失 | |
su - 用户名 | 切换用户 | 一般在当前用户权限不足时使用,可以切换到root。 从高权限切换到低权限,不需要输入密码,反之需要。 需要返回到原来用户时,使用 exit 指令。 | |
logout | 注销用户 | 在图形运行级别无效,在 运行级别3下有效 | |
init 5 | 切换运行级别 | 共有七个运行级别:0,1,2,3,4,5,6; 常用的是运行级别3-多用户状态有网络服务和运行级别5-图形界面 | |
文件/etc/inittab | id:5:initdefault | 可通过设置数字来改变默认运行级别 | 忘记root密码时,可以在开机引导时,进入单用户级别,不用密码就可进入系统,然后修改密码 |
3 用户管理
命令 | 常用选项 | 说明 | 备注 |
---|---|---|---|
useradd 用户名 | 添加用户,并自动创建和用户同名的家目录 | ||
useradd -d 家目录 用户名 | 添加用户,并给用户指定家目录 | ||
useradd -g 用户组 用户名 | 添加用户,并给用户指定组 | ||
passwd 用户名 | 给用户指定密码 | ||
userdel 用户名 | 删除用户,但保留家目录 | ||
userdel -r 用户名 | 删除用户及其家目录 | 删除用户时,一般不会删除家目录 | |
id 用户名 | 查看用户信息 | 将显示用户id号,所在组的id号和组名 | |
groupadd 组名 | 添加组 | ||
groupdel 组名 | 删除组 | ||
usermod -g 用户组 用户名 | 修改用户所在的组 |
在/etc目录下有三个文件,记录用户、口令和组的信息:
文件位置 | 说明 | 举例 | 备注 |
---|---|---|---|
/etc/passwd | 用户(user)的配置文件,记录用户的各种信息 | root:x:0:0:root:/root:/bin/bash | 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell |
/etc/shadow | 口令的配置文件 | bin:*:17110:0:99999:7::: | 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志 |
/etc/group | 组(group)的配置文件,记录 Linux 包含的组的信息 | bin:x:1: | 组名:口令:组标识号:组内用户列表 |
4 帮助命令
命令 | 说明 |
---|---|
man 命令或配置文件 | 获得命令的帮助信息 |
help 命令 | 获得 shell 内置命令的帮助信息 |
info 命令 | 获得命令的信息 |
5 日期时间相关
命令 | 说明 | 备注 |
---|---|---|
date | 显示当前时间 | |
date +%Y | 显示当前年份 | |
date +%m | 显示当前月份 | |
date +%d | 显示当前是哪一天 | |
date "+%Y-%m-%d %H:%M:%S" | 显示年月日时分秒 | 以指定字符串格式显示,-和:都可以换成其他显示符号,但+不能换 |
date -s 字符串时间 | 设置系统当前时间 | |
cal | 显示本月日历 | |
cal 2021 | 显示指定年份的全年日历 |
6 文件目录相关
命令 | 说明 | 备注 |
---|---|---|
pwd | 显示当前工作目录的绝对路径 | |
ll | 查看当前目录的所有内容信息 | |
cd 目录 | 切换到指定目录 | |
cd ~ 或cd | 切换至当前用户的家目录 | |
cd .. | 切换至当前目录的上一级目录 | |
mkdir 目录名 | 创建目录 | |
mkdir -p 目录名 | 创建多级目录 | |
rmdir 目录名 | 删除空目录 | 不能删除非空目录 |
touch 文件名 | 创建空文件 | |
cp 文件名 指定目录 | 拷贝文件到指定目录 | |
cp -r 文件名 指定目录 | 递归拷贝整个文件夹 | |
\cp | 当指定目录有和源文件同名的文件时,加\会强制覆盖,不会提醒确认 | |
rm [选项] 文件或目录 | 删除文件或目录 | -r:递归删除整个文件夹 -f:强制删除不提示 |
mv 旧文件名 新文件名 | 文件重命名 | |
mv 文件名 指定目录 | 将文件移动到指定目录 | |
cat [选项] 文件名 | cat 查看文件内容,以只读的方式打开。 | -n:显示行号 |
more 文件名 | 以全屏的方式,按页显示文本文件的内容 | |
less 文件名 | 分屏查看文件内容,功能与 more 指令类似,但在显示文件内容时, 并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。 | |
内容 > 文件 | 将内容写入文件,比如ls -l > a.txt 将当前目录的内容信息写入文件a.txt中(覆盖) | 如果该文件不存在,就创建该文件。 |
内容 >> 文件 | 将内容写入文件,比如cat b.txt > a.txt`将b.txt的内容信息写入文件a.txt中(追加) | |
echo 输出内容 | 将内容输出到控制台,比如echo $PATH ,将当前的环境路径输出到控制台 | |
head 文件 | 查看文件头几行的内容,默认是10行 | |
head -n 3 文件 | 指定行数 | |
tail 文件 | 查看文件末尾几行的内容,默认是10行 | |
tail -n 3 文件 | 指定行数 | |
tail -f 文件 | 实时追踪文件的所有更新,较常用 | |
history | 查看已执行过的所有历史命令 | |
history 数字 | 查看最近使用过的n个命令 | |
!数字 | 执行编号为n的命令 |
7 搜索查找相关
命令 | 说明 | 备注 | 举例 |
---|---|---|---|
find [搜索范围] [选项] | 从指定目录向下递归地遍历其各个子目录,显示满足条件的文件或者目录 | ||
find [搜索范围] -name 文件名 | 按照指定的文件名查找文件 | find /home -name hello.txt | |
find [搜索范围] -user 用户名 | 查找属于指定用户的文件 | find /opt -user tom | |
find [搜索范围] -size 文件大小 | 按照文件大小查找文件 | +n 大于; -n 小于;n 等于 | find /home -size -20M |
locate 文件名 | 快速定位文件路径 | locate 指令基于数据库进行查询, 所以第一次运行前,必须使用 updatedb 指令创建 locate数据库。 | |
| grep [选项]查找内容 | grep 过滤查找 , 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理 | -n:显示匹配行及行号 -i:忽略字母大小写 | cat hello.txt | grep -ni yes |
8 压缩和解压相关
命令 | 说明 | 备注 | 举例 |
---|---|---|---|
tar [-zcvf] 打包后的文件名 打包的内容 | 打包目录,压缩后的文件格式.tar.gz | -c:产生.tar打包文件 -v:显示详细信息 -f:指定压缩后的文件名 -z:打包同时压缩 -x:解包.tar文件 | tar -zcvf a.tar.gz a1.txt a2.txt |
tar [-zxvf] 打包的文件名 | 将打包的文件解压到当前目录 | tar -zxvf a.tar.gz | |
tar [-zxvf] 打包的文件名 目录名 | 将打包的文件解压到指定目录 | tar -zxvf a.tar.gz /home/ |
9 组管理和权限管理相关
命令 | 说明 | 备注 |
---|---|---|
ls -ahl | 查看文件/目录的所有者 | |
chown [选项] 用户名 文件/目录名 | 修改文件/目录的所有者 | -R:递归,包括子目录和子目录下的所有文件 |
chown [选项] 用户名:组名 文件/目录名 | 同时修改文件/目录的所有者和所在组 | |
chgrp [选项] 组名 文件/目录名 | 修改文件/目录所在的组 | |
chmod u=rwx,g=rx,o=x 文件/目录名 | 变更权限 | u:所有者;g:所在组;o:其他组;a:所有人 |
chmod o+w 文件/目录名 | 变更权限 | =:赋予权限;+:增加权限;-:减少权限 |
chmod 数字 文件/目录名 | 变更权限 | 比如chmod 751 相当于chmod u=rwx,g=rx,o=x |
usermod –g 组名 用户名 | 修改用户所在组 |
通过ls -l可以显示当前目录的信息,基本介绍:
各部分说明 | 文件类型 | 文件所有者的权限 | 文件所在组的用户的权限 | 其他组的用户的权限 | 数字 | 文件所有者 | 文件所在组 | 文件/目录大小 | 最后修改时间 | 文件名 |
---|---|---|---|---|---|---|---|---|---|---|
备注 | d代表目录,-代表普通文件,l代表软连接,c代表字符设备(键盘鼠标等),b代表块文件(硬盘) | r表示拥读权限,w表示拥有写权限,x表示拥有执行权限 | 如果是文件,表示硬链接的数量,一般是1;如果是目录,则表示该目录的子目录个数 | 如果是普通文件,数字表示实际大小,单位是字节;如果是目录,大小为4096 | ||||||
举例 | - | rw- | r– | r– | 1 | tom | police | 6 | 3月 18 16:19 | ok.txt |
举例含义 | 普通文件 | 文件所有者拥有读和写权限 | 文件所在组的用户拥有读权限 | 其他组的用户拥有读权限 | 文件硬链接的数量 | 文件所有者为tom | 文件所在组为police | 文件大小为6字节 | 最后修改时间 | 文件名为ok.txt |
关于权限的说明:
r | w | x | |
---|---|---|---|
作用到文件 | 可以读取,查看 | 可以修改;如果要删除该文件,则必须拥有该文件所在目录的写权限 | 可以被执行 |
作用到目录 | 可以读取,ls 查看目录内容 | 可以修改,目录内创建+删除+重命名目录 | 可以进入该目录 |
数字表示 | 4 | 2 | 1 |
10 进程管理
(1)在 LINUX 中,每个执行的程序(代码)都称为一个进程,每个进程都分配一个 ID 号。
(2)每个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。
(3)每个进程都可能以两种方式存在:前台与后台。前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
(4)一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才才结束。
10.1 显示系统执行的进程
指令为ps
,常用选项为-aux
,a:显示当前终端的所有进程信息;u:以用户格式显示进程信息;x:显示后台进程运行的参数。
运行后显示如下内容:
USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND |
---|---|---|---|---|---|---|---|---|---|---|
root | 1 | 0.1 | 0.0 | 19364 | 1552 | ? | Ss | 17:18 | 0.:05 | /sbin/init |
用户名 | 进程ID | 占用的cpu | 占用的内存 | 使用的虚拟内存,单位KB | 使用的物理内存,单位KB | 使用的终端 | 进程状态:S:休眠;R:正在运行 | 启动时间 | 占用cpu总时间 | 进程执行时的所用的命令和参数 |
ps -ef
是以全格式显示当前所有进程,e:显示所有进程;f:全格式。常用ps -ef | grep 进程名
命令来查看某个进程是否在运行。命令运行后会显示以下内容:
UID | PID | PPID | C | STIME | TTY | TIME | CMD |
---|---|---|---|---|---|---|---|
root | 1 | 0 | 0 | 17:18 | ? | 00:00:05 | /sbin/init |
用户ID | 进程ID | 父进程ID | CPU 用于计算执行优先级的因子 | 启动时间 | 使用的终端 | 占用cpu总时间 | 进程执行时的所用的命令和参数 |
10.2 终止进程
若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。使用kill
命令来完成此项任务。
命令 | 说明 | 备注 | 举例 |
---|---|---|---|
kill [选项] 进程号 | 通过进程号终止进程 | -9:强制终止进程 | kill -9 4090 |
killall 进程名称 | 通过进程名终止进程,支持通配符 | killall gedit 终止多个gedit编辑器 |
10.3 查看进程树
pstree [选项]
,p:显示进程的PID;u:显示进程的所属用户。
10.4 服务管理
服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd防火墙等),因此又称为守护进程。在 CentOS7.0后不再使用service ,而是 systemctl。
命令(CentOS6) | 命令(CentOS7) | 说明 |
---|---|---|
service 服务名 start | systemctl start 服务名 | 开启服务 |
service 服务名 stop | systemctl stop 服务名 | 关闭服务 |
service 服务名 restart | systemctl restart 服务名 | 重启服务 |
service 服务名 status | systemctl status 服务名 | 查看服务是否开启 |
chkconfig 服务名 on | systemctl enable 服务名 | 开机自启动服务 |
chkconfig 服务名 off | systemctl disable 服务名 | 开机时禁用服务 |
chkconfig --list | systemctl list-unit-files | 查看所有服务的各个运行级别的运行状态 |
10.5 动态监控进程
top
与 ps 命令很相似,都用来显示正在执行的进程。不同之处在于, top 在执行一段时间可以更新正在运行的的进程。
基本语法:top [选项]
,选项说明:d:指定top命令每隔几秒更新;i:不显示任何闲置或者僵死进程。
|
| chkconfig --list
| systemctl list-unit-files
| 查看所有服务的各个运行级别的运行状态 |
10.5 动态监控进程
top
与 ps 命令很相似,都用来显示正在执行的进程。不同之处在于, top 在执行一段时间可以更新正在运行的的进程。
基本语法:top [选项]
,选项说明:d:指定top命令每隔几秒更新;i:不显示任何闲置或者僵死进程。
应用实例:(1)top -d 5
,指定系统状态更新的时间,每隔5秒自动更新, 默认是3秒。(2)输入top
命令,回车,查看执行的进程;输入u,然后输入用户名,回车,监视特定用户。(3)输入top
命令,回车,查看执行的进程;输入k,然后输入进程ID,回车,终止指定进程。