vim三种模式
1、正常模式:打开文件后默认进入的模式,此时可以上下左右移动光标,也可以对文件进行删除和赋值操作;
2、插入模式/编辑模式:正常模式一般按下“i”进入编辑模式;
3、命令行模式:
基本命令
关机、重启命令
shutdown 指令
shutdown -h now //立刻关机
shutdown -h 1 //1分钟后关机
shutdown -r now //立刻重启
halt 指令
halt 可以直接使用,效果等价 关机;
reboot 指令
reboot 重启
sync 指令
sync可以吧内存的数据同步到磁盘中;
注意:关机或重启前都应执行sync指令,把内存数据写入磁盘中,防止丢失;
用户登录和注销
切换用户指令 su
su 用户名 //切换到对应的用户
添加用户
useradd [选项] 用户名 //添加新用户
修改用户密码
passwd 用户名 //修改或设置用户密码
删除用户
userdel 用户名 //删除用户
查询用户信息
id 用户名 //查询用户信息
实用指令
切换运行级别指令
init [0~6] //切换到不同的运行级别
运行级别具体如下:
- 0 关机;
- 1 单用户模式(可以用于找回密码);
- 2 多用户 无网络;
- 3 多用户 有网络服务;
- 4 保留位;
- 5 图形界面;
- 6 重启;
帮助指令
man 指令
man 命令或配置文件
例如:
man init
man ls
man shutdown
help 指令
help 命令
文件目录类指令
pwd 指令
功能:显示当前所在目录的绝对路径;
语法:pwd
ls 指令
功能:查看当前目录的所有内容;
语法:ls [选项] [目录或文件]
常用选项:
1. -l :以列表的形式显示;
2. -a :显示当前目录的所有文件和目录,包括隐藏文件和目录;
cd 指令
功能:切换路径;
语法:cd [参数]
常用参数:
mkdir 指令
功能:创建文件夹;
语法:mkdir [选项] 要创建的目录名
常用选项:
-p:创建多级目录
rmdir 指令
功能:删除空目录;
语法:rmdir [选项] 要删除的空目录
常用选项:
-p:多级删除空目录
**注:**rmdir只能删除空目录,如果目录下有内容时无法删除。
如果要删除非空目录,需要使用**rm -rf 要删除的目录**
touch 指令
功能:创建空文件
语法:touch 文件名称
例如:
touch a.txt
touch a.txt b.txt //可以同时创建多个文件
cp 指令
功能:复制文件到指定的目录
语法:cp [选项] 目标文件 拷贝地址
常用选项:
-r:递归拷贝整个文件夹;
rm 指令
功能:删除文件或目录
语法:rm [选项] 要删除的目录
常用选项:
- -r:递归删除整个文件
- -f:强制删除不进行提醒
rm -rf 要删除的目录
可以同时删除多个文件:rm a.c b.c c.c
mv 指令
功能:移动、剪切文件 或者 对文件进行重命名
语法:mv 原来的文件名 修改后的文件名
cat 指令
功能:查看文件内容(无法对文件进行修改)
语法:cat [选项] 要查看的文件
选项:-n :显示行号;
**注:**cat只能浏览文件,不能修改文件;为了方便浏览一般会带上管道符 |more
more 指令
功能:more指令是一个基于vi编辑器的文本过滤器,他以全屏的方式按页显示文本内容;
语法:cat -n cat.c | more
快捷键:
- 空格:向下翻一页;
- enter:向下翻一行;
- q:退出;
less 指令
功能:与more相似,但是对于大型文件有较高的显示效率;
语法:cat -n cat.c | less
>指令 和 >>指令
功能:
>:输出重定向;(会覆盖源文件)
>>:追加指令;(不会覆盖源文件)
示例:
- ls -l > a.txt (功能:路径下文件内容以列表的形式保存到a.txt中)(会覆盖源文件);
- ls -al >> a.txt (功能:路径下所有文件内容以列表的形式追加到a.txt中)(不会覆盖原文件,而是再末尾追加填写)
- cat 文件1 > 文件2 (功能:将文件1的内容覆盖到文件2)
- echo “内容”>>文件 (功能:将内容写入文件中,覆盖文件)
- echo "内容">>文件 (功能:将内容写道文件末尾,不会覆盖)
echo 指令
功能:打印数据到控制面板中;
语法:echo 要输出的内容;
head 指令
功能:显示文件开头部分,默认情况下显示开头10行;
语法:
head 文件名 //默认显示文件前10行
head -n5 文件名 //显示文件前5行
tail 指令
功能:
1、显示文件尾部的内容,默认后10行;
**2、实时追踪文件的更新;**
语法:
1、tail 文件名 //默认显示文件后10行数据;
2、tail -n4 文件 //显示文件后4行;
3、tail -f 文件 //实时追踪文档的所有更新
ln 指令
功能:文件之间建立软连接;
语法:ln -s 目标文件路径 快捷方式名称
history 指令
功能:查看所有历史指令;
语法:
1、history //查看所有历史指令;
2、history 10 //查看最后执行的10条指令;
**注:** 历史指令存在编号,“!编号”执行这一指令,例如:!200:执行第200条指令;
时间日期指令
基本语法
- date:显示当前时间;
- date + %Y:显示当前年份;
- date + %m:显示当前月份;
- date + %d :显示当前是那一天;
- date “+ %Y - %m - %d %H:%M:%S” : 显示年月日时分秒;
设置系统时间
date -s "2020-11-11 11:22:22" //设置当前系统时间
cal 指令
功能:查看日历
语法:cal [选项] (如果不加选项默认显示本月日历)
cal 年份 //显示当前一年的所有日历
crond 任务调度
功能:让系统在某个时间执行特定的命令或程序;
语法:crontab [选项]
常用选项:
-e 打开crontab,编辑定时任务;
-l 查询当前定时任务;
-r 删除当前用户的所有定时任务;
service crond restart 重启任务调度
例如:
首先执行 crontab -e;
然后输入 */1 * * * * ls -l /etc/ > /home/haitun/a.txt 到调度文件中;
作用:每小时的每分钟都会自动执行 ls -l /etc/ > /ho
me/haitun/a.txt;
参数说明
*/1 * * * * ls -l /etc/ > /home/haitun/a.txt
占位符说明
项目 | 含义 | 范围 |
---|---|---|
第一个 * | 一小时当中的第几分钟 | 0-59 |
第二个 * | 一天当中的第几个小时 | 0-23 |
第三个 * | 一个月中的第几天 | 1-31 |
第四个 * | 一年当中的第几个月 | 1-12 |
第五个 * | 一周当中的星期几 | 0-7(0和7都代表周日) |
特殊符号说明
特殊符号 | 含义 |
---|---|
* | 代表时间 |
,(逗号) | 代表不连续的时间。比如:“10 8,12,16 * * * ”命令,代表每天8:10、12:10、16:10都会执行一次命令 |
- | 代表连续的时间范围。比如:“0 5 * * 1-6”命令,代表周一到周六每天的5点执行命令 |
*/n | 每隔多久执行一次。比如:“*/10 * * * * ”命令,代表每隔10分钟执行一次命令 |
例子:每隔一分钟将当前的日期追加到文件中;
1、先编一个shell文件 mytask.sh,然后在里面输入“date >> a.txt”
2、给mytask.sh一个可执行权限 chmod 777 mytask.sh;
3、crontab -e 然后输入 *\1 * * * * mytask.sh;
Linux磁盘分区、挂载
Linux分区
1、Linux硬盘分为IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘;
2、对于IDE硬盘驱动器标识符为“hdx~”,其中hd表明分区所在的设备类型,x表示盘号,(a为基本盘,b为基本从属盘,c为辅助主盘,d为从属盘),“~”代表分区,前四个分区用数字1~4表示主分区或扩展分区,从5开始表示逻辑分区;
3、对于SCSI硬盘标识符为“sdx~”,sd表示分区所在设备类型,其余同上;
lsblk 指令
作用:查看所有设备的挂载情况;
使用:lsblk 或 lsblk -f
进程管理
- 在Linux系统中,每个执行的程序(代码)都称为一个进程。每个进程都分配一个ID号;
- 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。
- 每个进程都可能以两种方式存在。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程实际在操作,但是由于屏幕上无法看到的进程,通常使用后台方式执行。
- 一班系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。
ps 指令
作用:查看目前系统中那些进程正在执行,以及其执行情况;
语句:ps [选项]
例如:
ps -a :显示当前终端的所有进程;
ps -u :以用户的格式显示进程信息;
ps -x :显示后台进程运行的参数;
一般使用时可以
ps -aux | more 查看进程
ps -aux | grep XXX 查看有无XXX进程
ps -ef 查看父进程
ps显示的信息选项:
字段 | 说明 |
---|---|
USER | 用户名 |
PID | 进程识别号(进程ID) |
PPID | 父进程的ID(父进程为0则表示没有父进程) |
%CPU | 占用CPU的百分比 |
%MEM | 占用内存的百分比 |
VSZ | 占用虚拟内存大小(单位:KB) |
RSS | 占用物理内存大小(单位:KB) |
TTY | 终端名称(使用的终端) |
STAT | 进程状态(S-休眠;R-运行中;Z-僵死进程) |
START | 进程启动时间 |
TIME | 此进程所消耗CPU的总时间 |
COMMAND | 正在执行的命令或进程名,进程执行时的命令行 |
终止进程 kill 和 kill all
作用:若是某个进程执行到一半需要停止时,或者是已经消耗了很大的系统资源时,此时可以考虑停止该进程,用kill命令;
语法:
kill [选项] 进程号 (通过进程号杀死某个进程);
kill all 进程名称 (通过进程名称杀死进程,也支持通配符,在系统因为负载过大而变得很慢时有用)
常用选项: kill -9 进程号 (强制进程立刻停止)
pstree 查看进程树
作用:以树状结构显示当前进程;
语法:pstree [选项]
选项:
-p:显示进程的PID;
-u:显示进程的所属用户;
服务(service)管理
服务(service)的本质就是进程,但是在后台运行的,通常都会监听某个端口,等待其他程序的请求,比如(mysql(3306)、sshd(22)、防火墙等),又因此我们称之为守护进程。
service管理命令:service 服务名 [start | stop | restart | reload | status]
服务的运行级别
查看或修改默认级别:vi/etc/inittab
linux系统有7中运行级别:
- 运行级别0:系统停机状态(关机),系统默认运行级别不能设为0,否则不能正常启动;
- 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录;
- 运行级别2:多用户无网络状态;
- 运行级别3:多用户有网络状态;
- 运行级别4:暂未使用,保留;
- 运行级别5:图形模式;
- 运行级别6:重启,系统默认运行级别不能设为6,否则不能正常启动;
top 动态监控进程
top与ps命令很相似,它们都是用来显示正在执行的进程。Top与ps最大的不同在于,top执行后可以更新显示正在运行的进程。
语法: top [选项]
选项 | 功能 |
---|---|
-d 秒数 | 指定top命令每隔几秒更新,默认是3秒 |
-i | 使top不显示任何闲置或僵死进程 |
-p | 通过指定监控进程ID来仅仅监控某个进程的状态 |
案例:
1、监视特定用户:先输入top然后按下“u”回车后再输入用户名即可;
2、终止指定进程:先输入top然后按下“k”回车后再输入要结束的ID号;
netstat 查看系统网络情况
语法:netstat [选项]
netstat -anp :查看所有网络服务;
netstat -anp | grep sshd : 查看sshd的网络服务;
选项 | 说明 |
---|---|
-an | 按照一定顺序排列输出 |
-p | 显示那个进程正在调用 |