linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。在Linux世界里,一切皆文件。
命令 | 作用 |
---|---|
:set nu | 设置行号 |
:set nonu | 取消行号 |
G | 到第最后一行 |
gg | 到第一行 |
nG | 到第n行 |
:n | 到第n行 |
$ | 移至行尾 |
0 | 移至行首 |
x | 删除光标所在处字符 |
nx | 删除光标所在处后的n个字符 |
dd | 删除/剪切光标所在行 |
ndd | 删除/剪切光标所在处后的n行 |
dG | 删除光标所在行到文件末尾的内容 |
D | 删除光标所在处到行尾的内容 |
:n1,n2d | 删除n1行到n2行 |
yy | 复制光标所在行 |
nyy | 复制光标所在处后的n行 |
p | 粘贴光标所在行下 |
P | 粘贴光标所在行上 |
r | 取代光标所在处字符 |
R | 从光标所在处开始替换字符,按ESC结束 |
u | 取消上一步操作 |
/String | 搜索指定字符串,搜索时忽略大小写:set ic |
n | 搜索指定字符串出现的下一处位置 |
:%s/old/new/g | 全文替换指定字符串 |
:n1,n2s/old/new/g | 在一定范围内替换指定字符串 |
:w | 保存修改 |
:w new_filename | 另存为指定文件 |
:wq | 保存修改并退出 |
ZZ | 快捷键,保存修改并退出 |
q! | 不保存修改退出 |
wq! | 保存修改并退出(文件所有者及root用户可使用) |
命令 | 作用 |
---|---|
shutdown -h now | 表示立刻关机 |
shutdown -h 1 | 表示1分钟以后关机 |
shutdown -r now | 表示立刻重启 |
halt | 直接使用,效果等价与关机 |
reboot | 重启系统 |
syn | 把内存的数据同步到磁盘 |
注意细节:我们关机或者重启机器之前,应使用syn命令将内存中的数据持久化到磁盘中,防止数据丢失。
说明:
命令 | 作用 |
---|---|
useradd [选项] 用户名 | 添加一个用户 |
示例:useradd xm 添加一个名为xm的用户。
细节说明:
命令 | 作用 |
---|---|
passwd 用户名 | 给用户指定密码 |
示例:passwd xm
命令 | 作用 |
---|---|
userdel 用户名 | 删除一个用户,保留家目录 |
userdel -r 用户名 | 删除一个用户,不保留家目录 |
注意细节:我们一般在删除用户时,会保留其家目录。
命令 | 作用 |
---|---|
id 用户名 | 查询用户信息 |
示例:id root
若用户不存在,则返回“无此用户”。
在Linux中,若用户的权限不够,可通过“su - 用户名”切换为高权限用户,比如root。
命令 | 作用 |
---|---|
su - 用户名 | 切换用户 |
注意细节:
在Linux系统中,有组的概念,系统可以对有共性的多个用户进行同一的管理。
命令 | 作用 |
---|---|
groupadd 组名 | 增加一个用户组 |
groupdel 组名 | 删除一个用户组 |
命令 | 作用 |
---|---|
useradd -g 用户组 用户名 | 添加一个指定用户组的用户 |
示例:useradd -g wudang zwj 添加一个名为zwj的用户,将其指定到wudang组(需要先创建wudang组)。
命令 | 作用 |
---|---|
usermod -g 用户组 用户名 | 修改用户的用户组 |
示例:usermod -g shaolin zwj 将用户zwj从原来的wudang组修改为shaolin组(需要先创建shaolin组)
用户(user)的配置文件,记录用户的各种信息。
每行的含义:用户名:口令:用户ID:组ID:注释性描述:家目录(主目录):登录shell
口令的配置文件。
每行的含义:** 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志**
组(group)的配置文件,记录Linux包含的组的信息。
每行含义:组名:口令:组ID:组内用户列表
运行级别 | 说明 |
---|---|
0 | 关机 |
1 | 单用户(找回丢失密码) |
2 | 多用户状态没有网络服务 |
3 | 多用户状态有网络服务 |
4 | 系统未使用保留给用户 |
5 | 图形界面 |
6 | 重启系统 |
常用运行级别是3和5, 要修改默认的运行级别可改文件。
/etc/inittab的id:5:initdefault:这一行中的数字即代表系统默认的运行级别。
运行级别 | 说明 |
---|---|
init [012356] | 切换系统的运行级别 |
思路:init 1 切换运行级别到系统的单用户模式,然后修改root密码。因为单用户模式不需要密码就可以登录。
解决步骤:
当我们不熟悉某个指令,我们可以使用Linux提供的帮助指令来了解使用这个指令。
指令 | 作用 |
---|---|
man [命令或配置文件] | 获得指令的帮助信息 |
示例:man ls 查看ls命令的帮助信息
指令 | 作用 |
---|---|
help [命令] | 获得shell内置命令的帮助信息 |
示例:help cd 查看cd命令的帮助信息
CSDN、百度
指令 | 作用 |
---|---|
pwd | 显示当前工作目录的绝对路径 |
指令 | 作用 |
---|---|
ls [选项] [目录或是文件] | 显示目录或者文件的信息 |
常用选项
change directory
指令 | 作用 |
---|---|
cd [参数] | 切换到指定目录 |
常用参数
理解绝对路径和相对路径
绝对路径:以‘/’开头的路径,‘/’代表根目录。(需深刻理解Linux的目录结构)
相对路径:不以‘/’开头的路径,相对路径相对的是当前目录。
make directory
指令 | 作用 |
---|---|
mkdir [选项] 要创建的目录 | 创建一个目录 |
常用选项
示例:mkdir -p /home/animal/tiger 在home目录下创建animal/tiger目录
指令 | 作用 |
---|---|
rmdir [选项] 要删除的空目录 | 删除空目录 |
常用选项
指令 | 作用 |
---|---|
touch 文件名称 文件名称 … | 创建空文件 |
示例:touch /home/hello.txt /home/hi.txt 在home目录下创建hello.txt文件和hi.txt文件
指令 | 作用 |
---|---|
cp [选项] source dest | 复制source源文件到dest目录下 |
常用选项
示例:cp /home/dog/hello.txt /home 将 /home/dog文件夹下的hello.txt文件复制到/home目录下
指令 | 作用 |
---|---|
rm [选项] 要删除的文件或目录 | 移除【删除】文件或目录 |
常用选项:
示例:rm /home/hello.txt 移除/home目录下的hello.txt文件
rm -rf /home/zwj/test 递归删除/home/zwj下的test目录。
指令 | 作用 |
---|---|
mv oldFileName newFilename | 给文件冲命名 |
mv 要移除的文件 目标目录 | 将指定文件移动到指定目录 |
示例:mv /home/hello.txt d.txt 将home目录下的hello.txt文件重命名为d.txt ,并移动到当前目录
mv d.txt /home/test 将d.txt文件移动到test目录下
指令 | 作用 |
---|---|
wc [选项] | 输出每个指定文件的行数、单词计数和字节数 |
常用选项:
指令 | 作用 |
---|---|
cat [选项] 要查看的文件 | 查看文件内容,以只读的方式打开 |
常用选项:
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键。
指令 | 作用 |
---|---|
more 文件 | 按页显示文件内容 |
常用快捷键
操作 | 功能说明 |
---|---|
空格键[space] | 代表向下翻一页 |
Enter键 | 代表向下翻一行 |
q | 代表立刻离开more,不再显示改文件内容 |
Ctrl+F | 向下滚动一屏 |
Ctrl+B | 返回上一屏 |
= | 输出当前行号 |
:f | 输出文件名和当前行号 |
less指令用来分屏查看文件内容,它的功能和more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率,less指令也内置了若干快捷键。
指令 | 作用 |
---|---|
less 文件 | 分屏查看文件内容 |
常用快捷键
操作 | 功能说明 |
---|---|
空格键[space] | 向下翻动一页 |
[pagedown] | 向下翻动一页 |
[pageup] | 向上翻动一页 |
/String | 向下搜索指定字符串 n:向下查找;N:向上查找 |
?String | 向上搜索指定字符串 n:向下查找;N:向上查找 |
q | 离开less这个程序 |
指令 | 作用 |
---|---|
命令 /文本 > 文件 | 输出重定向,会将原来的内容覆盖 |
命令/文本 >> 文件 | 追加,不会覆盖原来的文件内容,而是追加到文件的尾部 |
指令 | 作用 |
---|---|
echo [选项] [输出内容] | 输出内容到控制台 |
head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容
指令 | 作用 |
---|---|
head 文件 | 查看文件头10行的内容 |
head -n | 查看文件的头n行内容 |
注意细节:head 5等价与head -n 5
tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容。
指令 | 作用 |
---|---|
tail 文件 | 查看文件后10行的内容 |
tail -n | 查看文件的后n行内容 |
tail -f 文件 | 实时追踪文件的所有更新,常用 。Ctrl+C退出监控 |
软链接也叫符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径。
指令 | 作用 |
---|---|
ln -s [原文件或者目录] [软链接名] | 给原文件或目录创建一个软链接 |
示例:ln -s /root /home/linkToRoot 在home目录下创建一个软链接linkToRoot链接到/root目录
注意细节:
查看已经执行过的历史命令,也可以执行历史命令。
指令 | 作用 |
---|---|
history | 查看已经执行过的历史命令 |
history n | 查看最近使用过的n个指令 |
!n | 执行编号为n的指令 |
指令 | 作用 |
---|---|
date | 显示当前时间 |
date +%Y | 显示当前年份 |
date +%y | 显示当前年份后两位数字 |
date +%m | 显示当前月份 |
date +%M | 显示当前分钟 |
date +%d | 显示当前是哪一天 |
date +%D | 类似于%m/%d/%y |
date +%H | 显示当前小时 |
date +%h | 类似于%b,本地化月份 |
date +%S | 显示当前秒 |
date +%s | 自1970-01-01 00:00:00 UTC至今的时间戳 |
date “+%Y-%m-%d %H:%M:%S” | 显示当前年月日时分秒 |
date -s 字符串时间 | 设置自系统时间。格式为:%Y-%m-%d %H:%M:%S |
指令 | 作用 |
---|---|
cal [选项] | 显示本月日历 |
常用选项
示例:cal 2022 显示2022年全年的日历
find指令将从指定目录向下递归的遍历其各个子目录,将满足条件的文件或者目录显示在终端。
指令 | 作用 |
---|---|
find [搜索范围] [选项] | 从搜索范围递归的搜索满足条件的文件 |
常用选项:
locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员需定期更新locate时刻。
指令 | 作用 |
---|---|
locate 搜索文件 | 快速定位文件所处的绝对路径 |
注意细节:由于locate指令基于数据库进行查询,所以第一次运行前,必须使用“updatedb”指令创建locate数据库。
grep过滤查找,管道符“ | ”表示将前一个命令的处理结果输出传递给后面的命令处理。
命令 | 作用 |
---|---|
grep [选型] 查找内容 源文件 | 顾虑查找符合条件的内容 |
常用选项:
示例:cat hello.txt | grep -ni yyds 在hello.txt文件中查找yyds字符串
指令 | 作用 |
---|---|
gzip 文件 | 压缩文件,只能将文件压缩为*.gz文件 |
gunzip 文件.gz | 解压缩文件 |
注意细节:当我们使用gzip对文件进行压缩后,不会保留原来的文件
示例:
zip用于压缩文件,unzip用于解压缩文件,这对指令在项目打包发布中很有用
指令 | 作用 |
---|---|
zip [选项] xxx.zip 将要压缩的内容 | 压缩文件和目录的命令 |
unzip [选项] xxx.zip | 解压缩文件 |
zip常用选项:
unzip常用选项:
tar指令时打包指令,打包后的文件是“ *.tar ”格式的文件。tar是打包,不是压缩。
指令 | 作用 |
---|---|
tar [选项] xxx.tar.gz 打包的内容 | 打包/解压目录/文件,压缩后的文件格式为.tar.gz |
常用选项:
在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其他组的概念。
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
想要查看文件的所有者,一般运用“ ls -ahl ”指令进行查看。
指令 | 作用 |
---|---|
chown 用户名 文件名 | 将指定文件的所有者指定给指定用户 |
当某个用户创建了一个文件后,默认这个文件的所在组就是该用户所在的组。
ls -ahl 或者 ll -ah
指令 | 作用 |
---|---|
chgrp 组名 文件名 | 修改文件的所在组 |
除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组。
在添加用户时,可以指定将该用户添加到哪一个组中,同样的用root的管理权限可以改变某个用户所在的组。
指令 | 作用 |
---|---|
usermod -g 组名 用户名 | 改变用户的所在组 |
usermod -d 目录名 用户名 | 改变该用户登录的初始目录(家目录) |
ls -l 中显示以下内容
-rwxrw-r–. 1 tom root 177 2月 14 04:38 aaa.tar.gz
参数 | 说明 |
---|---|
- | 第0位确定文件类型(文件类型常见的有“d 目录”、“- 普通文件”、“l 链接文件”、“c 符号文件,如鼠标,键盘”、“b 块文件,如磁盘”) |
rwx | 第1-3位确定所有者(该文件的所有者)拥有该文件的权限 |
rw- | 第4-6位确定所在组(同用户组)拥有该文件的权限 |
r– | 第4-6位确定所在组(同用户组)拥有该文件的权限 |
1 | 权限后的数字代表的是:如果是文件,表示硬链接的数,如果是目录则表示该目录的子目录个数 |
tom | 文件的所有者 |
root | 文件的所在组 |
177 | 文件的大小(字节),如果是文件夹,显示4096个字节 |
2月 14 04:38 | 文件的最后修改日期 |
aaa.tar.gz | 文件名 |
通过chmod指令,可以修改文件或目录的权限
u:所有者 g:所有组 o:其他人 a:所有人(u/g/o 的总和)
规则:r=4 w=2 x=1,rwx=4+2+1=7
“chmod u=rwx,g=rx,o=x 文件目录名”指令相当于 “chmod 751 文件目录名”
指令 | 作用 |
---|---|
chown newowner file | 改变文件的所有者 |
chown newowner:newgroup file | 改变文件的所有者和所在组 |
指令 | 作用 |
---|---|
chgrp newgroup file | 改变文件的所有组 |
任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:1.系统工作:有些重要的工作必须周而复始的执行。如病毒扫描,mysql备份。
2. 个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
指令 | 作用 |
---|---|
crontab [选项] | 定时任务调度 |
service crond restart | 重启任务调度 |
常用选项:
示例:①crontab -e进入任务编辑页面;②输入“*/1 * * * * ls -l /etc >> /tmp/to.txt”;③当保存退出后就开启了一个定时任务;④该命令含义为每个整分时crond机制会调度“ ls -l /etc >> /tmp/to.txt ”命令。
5个占位符的说明
项目 | 含义 | 范围 |
---|---|---|
第一个* | 一小时当中的第几分钟 | 0-59 |
第二个* | 一天当中的第几个小时 | 0-23 |
第三个* | 一个月当中的第几天 | 1-31 |
第四个* | 一年当中的第几月 | 1-12 |
第五个* | 一周当中的星期几 | 0-7(0和7都代表星期日) |
特殊符号的说明
特殊符号 | 含义 |
---|---|
* | 代表任何时间。比如第一个 * 就代表一小时中每分钟都执行一次的意思 |
, | 代表不连续的时间。比如“ 0 8,12,16 * * * 命令”,就代表在每天的8点整,12点整,16点整都执行一次命令 |
- | 代表连续的时间范围。比如“ 0 5 * * 1-6 命令”,代表在周一到周六的每天的凌晨5点整执行命令 |
*/n | 代表每隔多久执行一次。比如“ */10 * * * * 命令”,代表每隔10分钟就执行一遍命令 |
特定时间执行任务案例
时间 | 含义 |
---|---|
45 22 * * * 命令 | 在22点45分执行命令 |
0 17 * * 1 命令 | 在每周一的17点整执行命令 |
0 5 1,15 * * 命令 | 在每个月的1号和15号的凌晨5点整执行命令 |
40 4 * * 1-5 命令 | 在每周一到周五的凌晨4:40分执行命令 |
*/10 4 * * * 命令 | 每天的凌晨4点开始每隔10分钟执行一次命令 |
0 0 1,15 * 1 命令 | 每月1号和15号,每周一的0点0分执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱 |
指令 | 作用 |
---|---|
lsblk [选项] | 查看当前系统的分区情况 |
常用选项:
在挂载硬盘是使用到的指令
指令 | 作用 |
---|---|
fdisk 磁盘目录 | 给磁盘分区 |
fdisk -l | 显示磁盘分区 |
mkfs -t ext4 磁盘目录 | 格式化磁盘格式为ext4 |
mount 磁盘目录 挂载目录 | 将磁盘挂载到某个目录上 |
umount 磁盘目录/挂载目录 | 将磁盘从某个目录上卸载 |
步骤:
指令 | 作用 |
---|---|
df [选项] | 查询系统整体磁盘使用情况 |
常用选项:
指令 | 作用 |
---|---|
du [选项] 目录 | 查看指定目录的磁盘占用情况,默认为当前目录 |
常用选项:
DHCP:动态获取ip
缺点:linux启动后会自动获取IP,每次自动获取的ip地址可能不一样。这样非常不利于做服务器,因为服务器的ip需要是固定的。
vim /etc/sysconfig/network-scripts/ifcfg-eth0
ifcfg-eth0文件说明
EVICE=eth0 //接口名(设备,网卡)
TYPE=Ethernet //网络类型(通常是Ethernet)
UUID=878f38f3-d242-46c0-8a18-406a25efd730 //随机ID
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
HWADDR=00:0C:29:15:92:07
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
LAST_CONNECT=1644908595