1 指定运行级别
1)基本介绍:
运行级别说明:
- 0:关机
- 1:单用户【找回丢失密码】
- 2:多用户状态没有网络服务
- 3:多用户状态有网络服务
- 4:系统未使用保留给用户
- 5:图形界面
- 6:系统重启
常用运行级别是3和5,也可以指定默认运行级别
注:在centos7以前,/etc/inittab文件中可以指定linux的默认运行级别;
在在centos7及以后进行了简化,如下:
- mult-user.target: analogous to runlevel 3
- graphical.target: analogous to runlevel 5
2)切换不同的运行级别
可以通过init命令来切换不同的运行级别
命令:
init 运行级别
//如:切换到图形界面级别,代号5
init 5
3)查看当前的运行级别
systemctl get-ddefault
4)设置默认的运行级别
//这里设置默认目标运行级别为3,multi-user.target
systemctl set-default multi-user.target
2 帮助指令-解释命令的用法
1)man指令:帮助信息
基本语法:
//功能描述:获得帮助信息
man [命令或配置文件]
注:在linux下隐藏文件是以 “.” 开头的
2)help指令:帮助信息
基本语法:
//功能描述:获得shell内置命令的帮助信息
help 命令
3 目录指令
1)查看当前的绝对路径
pwd
2)查看当前目录下有哪些文件
ls [选项] [目录或是文件]
常用选项
-a : 显示当前目录所有的文件和目录,包括隐藏的
-l : 以列表的方式显示信息
3)切换目录
cd [参数]
如:
//回到当前用户自己的家目录
cd ~
//回到当前目录的上一级目录
cd ..
//切换到当前目录的下一级目录
cd 下级目录名
4)创建目录
mkdir 要创建的目录
理解:mkdir指令用于创建目录(默认只能创建一级目录)
如:在home目录下创建一个dog目录
mkdir /home/dog
也可以直接cd到home目录下,创建dog,
如:
cd /home
mkdir dog
5)创建多级目录 -p
注:mkdir指令用于创建目录(默认只能创建一级目录)
创建多级目录可以使用下面命令:-p :创建多级目录
mkdir -p /home/dog/dahuang
上面的含义是:在home目录下创建dog目录,在dog目录下创建dahuang目录,
也可以直接cd到home目录下,创建dog目录和dog目录下的dahuang目录,
如:
cd /home
mkdir -p dog/dahuang
6)删除目录
rmdir 目录名
注意:rmdir删除的是空目录,目录下有内容则无法删除
如果需要删除非空目录,需要使用:
//删除非空目录,会提示是否确认删除
rm -r 目录名
//强制删除,不提示
rm -rf 目录名
4 文件指令
1)创建文件
touch 文件名称
如:创建一个a.txt文件
touch a.txt
注意:创建的文件是空文件,不会有任何的内容
2)拷贝文件
a 拷贝单个文件到指定文件夹
cp 文件名 拷贝到的路径
如:将当前目录下的a.txt文件拷贝到bbb文件夹下
cp a.txt bbb/
b 将一个文件夹及其下面的内容拷贝到指定文件夹
cp -r 被拷贝的文件夹名 拷贝到的文件夹名
如:
将当前目录下的aaa文件夹及其下面的所以文件,拷贝到当前目录下的bbb文件夹下
cp -r aaa bbb
该命名执行的效果是:bbb目录下多了aaa文件夹及其所以文件
c 强制覆盖拷贝内容
先看一下上面的b标题内容;
当多次执行拷贝时,如:cp -r aaa bbb 执行了,两次,后面一次执行拷贝的文件会覆盖前一次的文件,所以会弹出提示信息,确认是否覆盖,相对比较麻烦,可以直接强制覆盖,不提醒,直接在cp前面加上一个\即可:
\cp -r aaa bbb
3)删除文件
//会提示,是否却删除
rm 文件名
//强制删除,不提示
rm -f 文件名
如:
rm a.txt
rm -f a.txt
4)移动文件与目录或重命名-mv
a 重命名:
如果没有更改文件目录,就是重命名;
如:将a.txt重命名为b.txt
mv a.txt b.txt
b 移动文件或目录
如:
//移动文件a.txt到home目录下
mv a.txt /home/
//移动文件a.txt到home目录下,并重命名为b.txt
mv a.txt /home/b.txt
//移动bbb文件夹到ccc文件夹中
mv bbb ccc/
//移动bbb文件夹到ccc文件夹中,并重命名为ddd
mv bbb ccc/ddd
5)查看文件内容
查看文件内容:
cat 文件名
查看文件内容,并显示行号:
cat -n 文件名
5 交互指令-more
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键(交互的指令)
more 要查看的文件名
6 分屏查看文件内容-less
语法:
less 查看的文件名
less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端.less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率
7 输出内容到控制台-echo指令
echo输出内容到控制台
语法:
echo 输出内容
如:输出环境变量
echo $HOSTNAME
如:输出hello,world~
echo "hello,world~"
8 显示文件开头部分的内容-head指令
head指令:
head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容
语法:
//查看文件头10行内容
head 文件名
//查看文件头5行内容,这里的5可以自己设置需要查看的行数
head -n 5 文件名
9 显示文件尾部部分的内容-tail指令
tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的前10行内容.
语法:
//查看文件尾10行内容
tail 文件名
//查看文件尾5行内容,5可以改为任意行数
tail -n 5 文件名
//实时追踪该文档的所有更新
tail -f 文件名
10 > 指令 和 >> 指令
1)> 指令
>
> 指令:表示将 > 前面执行的结果内容写到> 后面的文件中,并将后面文件的所有内容覆盖
案例1:将当前目录下的文件列表,写到文件a.txt中
ls -l > a.txt
案例2:将当前日历写到文件a.txt中,会覆盖之前的全部内容
cal > a.txt
2)>>指令
>>指令:表示将 >> 前面的执行结果内容追加到>> 后面的文件中,不会覆盖后面文件原本的内容,仅追加
案例1:将当前目录下的文件列表,追加到文件a.txt中
ls -l >> a.txt
案例2:将当前日历追加到文件a.txt中
cal >> a.txt
11 软连接-ln指令
软连接也称为符号链接,类似于windows里的快捷键方式,主要存放了连接其他文件的路径
基本语法:
//给原文件创建一个软链接
ln -s [原文件或目录] [软链接名]
12 历史指令-history指令
查看已经执行过历史命令,也可以执行历史指令
history 显示所有的历史命令
history 10 显示最近使用过的10个指令,这个10可以进行自定义
!5 执行历史编号为5的指令
13 时间日期-date指令
date指令-显示当前日期
1)基本语法:
date 显示当前时间
date +%Y 显示当前年份
date +%m 显示当前月份
date +%d 显示当前是哪一天
date "+%Y-%m-%d %H:%M:%S" 显示年月日时分秒
如:
2)date指令-将设备设置为指定日期
语法:
date -s 字符串时间
date -s "2021-6-20 16:44:30"
上面的语法将当前的设备时间设置为了:2021-6-20 16:44:30
3)查看日历-cal指令
语法:
//不加年份,默认显示当前月的日历
cal 年份
//如:显示2021整年的日历
cal 2021
14 搜索查找
1)查找指令-find指令
find指令指令 将从指定目录向下递归遍历各个子目录,将满足条件的文件或者目录显示在终端上
语法:
find [搜索范围] [选项]
参数中的:选项说明
选项 | 功能 |
-name<查询方式> | 按照指定的文件名查找模式查找文件 |
-user<用户名> | 查找属于指定用户名所有文件 |
-size<文件大小> | 按照指定的文件大小查找文件 |
如:
案例1:
按文件名;根据文件名称查找/home目录下的hello.txt文件
find /home -name hello.txt
案例2:
按拥有者;查找/home目录下,用户名为rjx创建的文件
find /home -user rjx
案例3:
查找home目录下,文件大于200M的文件
- (+n大于、-n小于、n等于,单位有k、M、G)
//查找home目录下,大于200M的文件
find /home +size +200M
//查找home目录下,小于200K的文件
find /home -size -200K
//查找home目录下,等于200G的文件
find /home -size -200G
2)定位指令-locate
locate指令可以快速定位文件路径。locate命令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位的文件名。Locate指令无需遍历整个文件系统,查询速度较快。
为了保障查询结果的准确度,管理员必须定期使用updatedb更新locate数据库
更新locate指令
updatedb
基本语法:
locate 搜索文件名
特别说明:由于locate指令基于数据进行查询,所以第一次运行前,必须是使用updatedb指令创建locate数据库
3)查看某个指令所在的文件目录-which
语法:
which 指令名称
如:查看ls指令在哪个文件目录下:
which ls
4)过滤查找-grep和管道符号|
管道符“|“:表示将“|”前面命令得到的结果,传递给“|”后面的命令进行处理
过滤查找grep:
2种基本语法:
语法1:
grep [选项] 查找内容 源文件
语法2:
得到源文件的语法 | grep [选项] 查找内容
[选项]:
- -n 显示匹配行及行号
- -i 忽略字母大小写
案例1:查找home目录下的a.txt文件里,包含yes字段的行
写法1:
//不显示行号
grep "yes" /home/a.txt
//显示所在行号
grep -n "yes" /home/a.txt
//显示所在行号,并忽略yes的大小写
grep -ni "yes" /home/a.txt
写法2:
//不显示行号
cat /home/a.txt | grep "yes"
//显示所在行号
cat /home/a.txt | grep -n "yes"
//显示所在行号,并忽略yes的大小写
cat /home/a.txt | grep -ni "yes"
15 压缩和解压
1)压缩指令-gzip
功能描述:压缩文件,只能将文件压缩为*.gz文件
语法:
gzip 将被压缩的文件名
2)解压指令-gunzip
功能描述:解压缩文件命令
语法:
gunzip 将被解压的文件名
3)压缩指令-zip
功能描述:压缩文件和压缩目录的命令
基本语法:
zip [选项] xxx.zip 将要压缩的内容
zip的常用项:
- -r 递归压缩,即压缩目录
案例:将home目录和home目录下的所以目录进行压缩为myzip.zip
zip -r myzip.zip /home/
4)解压指令-uzip
功能描述:解压缩文件,可以解压文件到指定的目录下
语法:
uzip [选项] xxx.zip (功能描述:解压文件)
nzip的常用项 :
- -d<目录> : 指定解压后文件的存放目录
案例:将myzip.zip压缩文件解压到/opt/tmp目录下
uzip -d /opt/tmp myzip.zip
5)打包解压指令-tar
tar指令是打包指令,最后打包后的文件是.tar.gz的文件。
功能描述:打包目录,压缩后的格式为*.tar.gz
语法:
tar [选项] xxx.tar.gz 打包的内容
选项说明:
选项 | 功能 |
-c | 产生.tar打包文件 |
-v | 显示详细信息 |
-f | 指定压缩后的文件名 |
-z | 打包同时压缩 |
-x | 解包.tar文件 |
案例1:压缩多个文件,将/home/pig.txt和/home/cat.txt 压缩成 pc.tar.gz
tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt
案例2:将/home的文件夹压缩成myhome.tar.gz
tar -zcvf myhome.tar.gz /home/
案例3:pc.tar.gz 解压到当前目录
tar -zxvf pc.tar.gz
案例4:将myhome.tar.gz 解压到/opt/tmp2目录下
//先创建该目录
mkdr /opt/tmp2
//进行解压
tar -zxvf myhome.tar.gz -C opt/tmp2
16 截取文本指定内容-cut
1)cut指令
指令:
cut -d '分割符' -f 截取段数
如:
cut -d '/' -f 3
注:cut不能使用空格作为分割符
案例:
2)awk指令
指令:
awk -F "分割符" '{print $截取段数}'
如:
awk -F " " '{print $5}
注:awk可以使用空格作为分割符
案例:
17 统计数量-uniq -c
指令:
uniq -c
案例:
18 排序
指令:
# 降序排列
sort
# 升序排列
sort -nr
案例:
19 锁定/解锁文件
1)锁定
当有些文件不想被轻易修改的时候,就需要我们进行锁定文件,让其不能被任何人修改;当需要修改的时候,必须解锁才能进行修改;
指令:
chattr +i 文件
2)解锁
指令:
chattr -i 文件
20 隐藏指令
当某个指令不想被别人使用时,可以将指令隐藏到某个自定义的位置,防止被黑客/别人使用
1)先查看指令的位置
指令:
which 指令
如:which chatter
2)移动指令
指令:
mv 指令 移动到的位置
3)案例
注:这个方法还是可以通过find指令找到。要想让别找不到,可以同时修改指令的名称;
如:移动并修改指令名为haha
mv /usr/bin/chattr /opt/haha
21 查看运行的Java进程
jps:是专门来监视java执行程序的
jps
22 查看网卡信息
ip addr
23 结束/杀死程序
- 需要先查询出进程的ID
kill -9 进程ID
24 修改Linux主机名
hostnamectl set-hostname 主机名