Linux基本概念及常用命令
linux命令的步骤
为什么用这个命令
含义
语法格式
用法
用途
总结
1. VMware虚拟机
VM中,Linux32位操作系统,最大支持4G运行内存
1.1 快照
相当于存档点,可以恢复到之前的存档点
1.2 虚拟机的状态
启动:开启虚拟机
关机:关闭虚拟机
挂起:这一时刻被你保存起来了,下次可以从这里继续运行,挂起可能导致做实验出问题
1.3 手动分区
linux系统手动分区一定要分三个区
① /:根目录,一共60G,分给根目录50G;最重要的分区,所有文件、文件夹都在这个“/”根文件夹中,尽量大
② /boot:5G,存放操作系统,操作系统启动所需要的文件,没有这个文件,系统起不来
③ swap:虚拟内存,4G(一般是内存空间的两倍),它是一个硬件设备,它的作用是当内存不足时,将一部分硬盘上的空间当做内存使用(救急使用);他还是硬盘 上的空间,速度慢
系统快速引导:硬盘 光驱(U盘) 网络(网卡) f12 f7
怎么进BIOS:国产delete 国外F1
2. linux基本概念
2.1 linux的优点(为什么?)
-
linux系统是开源的
-
linux系统是多用户多任务模式
-
linux系统中一切皆文件(包括文件夹/目录,所有硬件,硬盘,二进制文件,压缩文件等)
-
linux系统小巧,轻量级,稳定,几百M就可以装一个linux操作系统
-
避免令人困惑的用户界面,没有复杂的图形界面,windows中点一点就可以操作,你不知道该操作的后果你也可以执行,但是linux中,你只有知道了操作的后果才能打出命令
-
linux对后缀名不敏感,有没有无所谓,不是通过后缀名来定义文件类型,但是windows对后缀名很敏感
2.2 / 的含义
① 表示根
② 表示路径分隔符
/前面没有任何字符,空格不算 —— 根 例如:/opt
/ 前面只要有其他字符 —— 路径分隔符 例如:/opt/test
2.3 文件路径
文件路径的作用:描述了文件在系统中的位置(文件存在哪里)
当我们对文件进行操作时,考虑以下三个问题
我对什么文件进行操作
这个文件在哪里
怎么找到这个文件
绝对路径与相对路径
绝对路径:以根开头,必须是唯一的;例如:/opt
相对路径:不以根开头,不一定唯一;例如:./data
2.4 "."与“..”
. 当前目录
.. 上级目录
[root@localhost test]# ls -a # 显示隐藏文件
. ..
# 当我们创建了一个空目录时,默认自带了“.”(表示当前目录)、“..”(表示上一级目录)
# “..”上一级目录可以没有,比如“/”目录下也有“.”和“..”
# 但是当我们cd ..时,不显示,因为根目录没有上一级目录
2.5 根目录下常见目录
常见目录 | 作用 |
---|---|
/bin/ | 存放系统命令,普通用户和root用户都可以执行,放在/bin下的命令在单用户模式下也可以执行,都是编译好的二进制文件 |
/sbin/ | 只有管理员才可以执行的系统命令 |
/boot/ | 存放系统启动需要的文件 |
/etc/ | 存放系统的配置文件(用户信息、密码信息)、系统自带运行程序、第三方安装的程序(yum仓库) |
/dev/ | 存放硬件设备(硬盘) |
/opt/ | 存放第三方安装的软件(如手工安装的源码包软件) |
/root/ | 管理员的家目录 |
/home/ | 普通用户家目录的上一级目录 |
/lib/ | 存放32位代码库文件 |
/lib64/ | 存放64位代码库文件 |
/misc/ | 挂载目录,系统建议用来挂载NFS服务的共享目录 |
/media/ | 挂载目录,系统建议用来挂载媒体设备,如软盘和光盘 |
/mnt/ | 挂载目录,系统建议用来挂载u盘,移动硬盘和其他系统的分区 |
/proc/ | 存放和进程有关的文件,正在运行的程序,ps aux命令可以显示进程 |
/run/ | 存放运行的内存文件,加载到内存中的文件 |
/usr/ | 简称小根目录,协助根目录处理问题 |
/net/ | 网络 |
/var/ | /var/log/ 存放日志文件 |
/tmp/ | 存放临时文件,垃圾文件,相当于回收站 |
2.6 [root@localhost /]# [wy@localhost /]$
[root@localhost ~]#
[wy@localhost /]$
root、wy:当前登录的用户
localhost:当前的主机名
~、/:当前所在的目录
:超级管理员
$:普通用户
关机命令
重启命令
时间命令
date
linux命令(增删改查,针对文件,不针对文件内容)
2.7 shell
shell 是一类软件的总称,是一个特定的程序,将人类使用的高级语言翻译成二进制
协助人机交互,位于用户与内核之间
shell(sh、csh、bash)
linux默认使用的是bash
打开一个终端编辑器,就会有一个bash
用户登录linx系统是,自动加载一个shell程序
该文件的位置:/bin/bash
cat /etc/shells 查看支持哪些shell
pstree
linux命令的分类
内部命令与外部命令
shell 是一个特定程序,具有补全功能,自带基础命令(内部命令)
不在shell里面的命令是外部命令
内部命令快,在内存中
外部命令慢,在硬盘中
命令的本质:电脑程序
程序:执行特定任务的一串代码
显示“bash: nginx: 未找到命令” 50%几率没有安装该程序
内部命令:不需要安装,集成在shell中,用户一旦登录系统,自动加载到内存中,速度快
外部命令:不在shell程序中,运行是需要从硬盘中加载到内存中
type 命令 来测试是否为内部或外部命令
内部命令是灭有独立文件,都集成在shell程序中,/bin/bash程序中
外部命令:是一个个独立的文件
系统规定了一些文件夹,当外部命令在这些文件夹中,可以直接使用
如果不在这些文件夹中,必须打出绝对路径/opt/ls
linux执行过程
先判断内部还是外部,如果是内部命令,直接运行;如果是外部命令,先看hash缓存表,hash中有,直接执行;如果表项中没有去硬盘上找(如果有表项,但是没有找到直接报错)
怎么去硬盘上找?
先去看规定的路径中是否有(懒惰模式)
找到一个就停止
如果没有找到,就报错
绝对路径 > 内部命令 > hash缓存表 > 外部命令
/usr/local/sbin
/usr/local/bin
执行顺序
绝对路径下的命令 > 别名 > 内部命令 > hash > 外部命令
既是内部命令,又是外部命令
echo 回声
echo 123
linux中的帮助
内部命令
help cd
外部命令
ls --help
info ls(全都是英文)
帮助
help
info
man
面试题
man
区间1:用户指令,man 1 passwd
区间5:文件格式,man 5 passwd
whatis ls
whatis pwd
mandb man数据库
man手册
q退出
空格 翻页
上下键
shell的操作命令
tab:自动补齐;列出;
反斜杠“\空格”:换行
ctrl+u:清除光标前至行首所有内容
ctrl+k:清空光标至行尾所有内容
ctrl+a:光标移到行首
ctrl+e:光标移到行尾
ctrl+l:清屏
ctrl+c:取消本次命令
ctrl+r:输入关键词,查找执行过的命令
上下键:历史命令
键盘:字符设备
文件常用命令(对文件进行增删改查)
~:当前用户的家目录
pwd -p
3. linux常见命令
命令行语法格式
命令 [选项] 参数
ls 对谁(文件夹,文件,用户名)
命令、选项、参数三个之间必须要有空格,有几个都可以
选项:短格式、长格式、类unix、子命令
ls -l --help a
参数(对象)
可有可无,可以是多个
1. pwd
print work directory 显示当前路径
用法
pwd 显示当前路径
pwd -P 显示真实路径
2. cd
change directory 切换目录
cd /
cd ~(cd 什么都不写)切换到当前用户的家目录
cd - 返回上一次目录
cd .
cd ..
路径的作用:
cd 只能切换目录
3. ls
list 列表 显示所有文件
生产环境中,慎用ls,因为生产环境中文件级别是千万级
ls -l = ll
ls -i 查看inode号
-a:显示隐藏文件,包括 .和..
-A
-d 只看目录本身
-h 人性化显示,加单位
-R 递归显示
-t 以时间排序
-r 倒序显示
--color 显示颜色,默认显示颜色
-S 以文件容量大小排序
tree 显示文件树
ls
ll
ll -a
ll -A
ll -h
ll -R
ll -d
ll -t
ll -S
ll -r
ls = ls --color
ls跟通配符配合使用
文件类型
”-“ 普通文件
d 目录
p 管道,但能单向传输数据 |
l 链接,快捷方式
s 套接字,两台电脑之间(可以单机)传递信息 mac,IP地址
c char 字符,一次只能接受一个字符或发送一个字符
b block 块设备,硬盘,一次可以接收或读取一块区域的数据
file /dev/sda1 查看文件的类型 块设备
typroa ------------- onenote
4. 通配符
作用 匹配文件名
正则表达式:匹配文件的内容 grep awk sed
通配符和find联用
电脑显示出的内容是文本,是字符,是文件内容
*:任意字符,任意长度
?:任意一个字符
p* p开头的文件
*.conf 以.conf结尾的文件
ls *
ls .*
{1..10}:1到10
[123]:一个字符,1或2或3,有就显示,没有就不显示
[0-9]:一个任意数字
[a-z]:一个a-z的字母[(a A b B ... y Y z),一个小写,一个大写这样排列的,所以[a-z]需要注意它的匹配的结果]
^:取反
[^0-9]:一个不是数字的字符
{A..Z}:26个大写字母
{a..z}:26个小写字母
“\“:反斜杠,表示本来意思
[[:lower:]]:一个小写字母a-z
[[:upper:]]:一个大写字母A-Z
[[:digit:]]:任意数字,0-9
[[:alpha:]]:任意字母
type ls 查看ls是内部命令还是外部命令
\ls 显示本来意思
5. alias
临时修改
语法
① 创建别名
alias 别名的名称=“实现的功能”
可以用单引号或者双引号
② 删除别名
unalias 别名的名称
用法
alias 直接
在linux基本所有使用命令修改的配置都是临时的,只有修改配置文件才能永久生效。
6. du
为什么用du
含义
显示使用量
选项
-a 一个个文件单独显示
-s 显示总和
-h 人性化显示,加单位
-d N 显示层级
--exclude 不计入统计
语法
用法
用途
我的服务器磁盘满了,删一些比较大的垃圾文件
du命令去快速
总结
磁盘被称为块设备,一块的大小为4k,一个文件要存放在磁盘中,最少占4k
du与ll的区别
du:看到文件的大小,占磁盘块的个数
ll:看到的是文件的真实大小
du -a
du -s
du -as × a和s不能同时使用
7. df
含义
磁盘剩余量
8. mkdir
含义
创建空目录
选项
-p 递归创建文件夹
-v 显示创建过程
语法格式
mkdir [选项] 文件夹名字
用法
mkdir -pv ./a/aa/aa
9. rmdir
含义
删除空文件夹
10. touch
含义
① 新建空文件
② 刷新文件的时间
touch 文件名
如果文件名不存在,是情况1,创建空文件
如果文件名存在,是情况2,刷新文件的时间
文件的时间有三种
合并命令使用
cd /opt/data ; ls
11. 软连接与硬连接
含义
软连接(快捷方式):指明了文件在系统中的位置
硬连接:同一个人有多个名字,在系统上多了一条路径去找到文件
文件夹的作用:记录文件的相关信息(文件位置、文件大小、文件权限、文件时间等)
语法格式
硬连接
ln 已存在的源文件名 未存在的目的路径
软连接
ln -s 已存在的源文件名 未存在的目的路径
用法
ln passwd hard
用途
生产环境中,当app迭代版本,就会用到软连接
注意事项
硬连接:目的地,如果不取名字,和源文件名同名,如果取名字,那就是重命名
系统不让目录创建硬连接,因为目录里面不知道有多少个文件
软连接必须用绝对路径
删除软连接,不能加“/”
12. cp
含义
复制
选项
-f 不是提示覆盖
-i 提示覆盖
-p 保留权限
-a 保留所有信息
-r 复制文件夹下所有的文件
-v 显示复制过程
-u 差异复制,差异备份,相当于增备(只对文件夹起作用)
语法格式
cp 要复制的文件 复制的路径
用途
一个命令打多次,如果结果一样,说明该命令具有幂等性
13. mv
含义
mv 移动到当前目录下 重命名
mv 移动到其他目录下 移动并改名
选项
rename 批量改名,只能对后缀名相同的文件改名
14. rm
注意事项
删除文件后空间不释放,是因为别人在使用
15. shred
16. locate
含义
查找文件是非常重要的一个基本技能
locatede的特性
查找文件,非常快,延时性大,模糊查找,从数据库中查找文件
updatedb 更新数据库(最好在晚上用)
17. find
17.1 find的特点
精确查找:少一个字都不行
实时查找:真的是去硬盘上一个块一个块的去遍历查找,靠谱,速度慢
支持查找条件很多
默认递归查询
17.2 语法格式
find [查找路径] [查找条件] [处理动作]
1.查找路径:需要在哪个路径下查找,就是指定查找的目录,也就是查找文件或子目录的目录位置:缺省默认在当前目录下查找
2.查找条件:按照什么样的类型查找,默认查找指定路径下所有文件;find支持多个类型查找,也支持使用逻辑表达式(与,或,非)
3.处理动作:指find查询到的结果怎么处理,默认是打印到屏幕pirnt
17.3 选项
-name 按文件名查找
-iname 不区分大小写,按文件名查找
-size 按文件大小查找,一般使用“+”、“-”表示大于或小于指定的大小;常用的容量单位有K M G
-user 按文件所有者查找
-nouser 查找没有有效用户属主的文件,查找没有有效文件所有者的文件
-type 按文件类型查找
文件类型种类
f 普通文件
d 目录
c 字符文件
b 块设备文件
p 管道文件
l 链接文件
s 套接字文件,
-inum 按inode号查找
-perm 按文件权限查找
-maxdepth level 最大搜索目录深度
-mindepth level 最小搜索目录深度
-links n 链接数为n的文件(目录的链接数,就是该目录的改名)
-mtime 根据时间戳查找
-samefile 相同inode号的文件
-empty 查找空文件
各表达式之间使用逻辑运算符
-a 表示而且(and)
-o 表示或者 (or)
! 表示非,取反 (not)
17.4 处理动作
-print 打印输出到屏幕
-ls 显示详细信息
-fls
-delete
-ok 命令序列 {} \;
-exec 命令序列 {} \;
17.5 用法
# 1. find查找一个文件
[root@localhost test]# ls
t1 t2 t3 t4 t5
[root@localhost test]# find t1 # 精确查找文件名为“t1”的文件,一个字都不能输错
t1
[root@localhost test]#
# 2. find查找多个文件
[root@localhost test]# ls
t1 t2 t3 t4 t5
[root@localhost test]# find t1 t3 # 精确查找多个文件
t1
t3
[root@localhost test]#
# 3. 缺省查找路径,-name按文件名查找文件
[root@localhost test]# ls
t1 t2 t3 t4 t5
[root@localhost test]# find -name t2 #
./t2
[root@localhost test]#
# 4. 给出查找路径,-name按文件名查找文件
[root@localhost test]# ls
t1 t2 t3 t4 t5
[root@localhost test]# find ./ -name t5
./t5
[root@localhost test]#
# 5. -iname 不区分大小写查找文件
[root@localhost test]# ls
t1 t2 t3 t4 t5
[root@localhost test]# find -iname T1
./t1
[root@localhost test]#
# 6. -size 按照文件大小查找文件
[root@localhost test]# ll -h
总用量 55M
-rw-r--r--. 1 root root 10M 10月 25 19:12 a1
-rw-r--r--. 1 root root 5.0M 10月 25 19:11 a2
-rw-r--r--. 1 root root 9.3M 10月 25 19:12 a3
-rw-r--r--. 1 root root 11M 10月 25 19:13 a4
-rw-r--r--. 1 root root 20M 10月 25 19:13 a5
[root@localhost test]# find -size 10M # 系统把不是整数的全部进1,如下
./a1 # 9.3≈10M 10M=10M
./a3
[root@localhost test]#
# 7. -size + 大于
[root@localhost test]# ll -h
总用量 55M
-rw-r--r--. 1 root root 10M 10月 25 19:12 a1
-rw-r--r--. 1 root root 5.0M 10月 25 19:11 a2
-rw-r--r--. 1 root root 9.3M 10月 25 19:12 a3
-rw-r--r--. 1 root root 11M 10月 25 19:13 a4
-rw-r--r--. 1 root root 20M 10月 25 19:13 a5
[root@localhost test]# find -size +10M # 查找大于10M的文件
./a4
./a5
[root@localhost test]#
# 8. -size - 小于
[root@localhost test]# ll -ah
总用量 55M
drwxr-xr-x. 2 root root 56 10月 25 19:13 .
drwxr-xr-x. 4 root root 28 10月 25 18:36 ..
-rw-r--r--. 1 root root 10M 10月 25 19:12 a1
-rw-r--r--. 1 root root 5.0M 10月 25 19:11 a2
-rw-r--r--. 1 root root 9.3M 10月 25 19:12 a3
-rw-r--r--. 1 root root 11M 10月 25 19:13 a4
-rw-r--r--. 1 root root 20M 10月 25 19:13 a5
[root@localhost test]# find -size -10M # 查找小于10M的文件,两个a2、test当前目录
.
./a2
[root@localhost test]#
# 9. -user 按文件所有者查找
[root@localhost test]# ll -h
总用量 55M
-rw-r--r--. 1 wy wy 10M 10月 25 19:12 a1
-rw-r--r--. 1 root root 5.0M 10月 25 19:11 a2
-rw-r--r--. 1 root root 9.3M 10月 25 19:12 a3
-rw-r--r--. 1 root root 11M 10月 25 19:13 a4
-rw-r--r--. 1 root root 20M 10月 25 19:13 a5
[root@localhost test]# find -user wy # 按照文件所有者查找文件
./a1
[root@localhost test]#
# 10. -nouser 查找没有有效文件所有者的文件
wy22:x:1001:1001::/home/wy22:/bin/bash # 先创建了一个用户wy22
-rw-r--r--. 1 wy22 wy22 0 10月 25 19:45 aaa # 创建了一个aaa文件,并将它的文件属主改为
# wy22
-rw-r--r--. 1 1001 1001 0 10月 25 19:45 aaa # 删除用户wy22后,aaa的文件属主变成了1001
# 该文件属主为无效用户
[root@localhost test]# ll
总用量 55640
-rw-r--r--. 1 root root 0 10月 25 19:36 11.txt
-rw-r--r--. 1 root root 0 10月 25 19:36 22.txt
-rw-r--r--. 1 wy wy 10485760 10月 25 19:12 a1
-rw-r--r--. 1 root root 5242880 10月 25 19:11 a2
-rw-r--r--. 1 root root 9728000 10月 25 19:12 a3
-rw-r--r--. 1 root root 10547200 10月 25 19:13 a4
-rw-r--r--. 1 root root 20971520 10月 25 19:13 a5
-rw-r--r--. 1 1001 1001 0 10月 25 19:45 aaa
[root@localhost test]# find -nouser # 查找到“aaa”为没有用户属主的文件
./aaa # 没有属主的意思:不是没有用户,而是该用户
[root@localhost test]# # 被删除了,没有有效用户,那么该文件为垃圾 文件
# 11.
17.6 用途
查找1G左右的文件
找到30天以上 大于1G,名字为log结尾的普通文件
18. which whereis
去找命令 ls cd,查看命令位置
which ls (精确查找)
whereis ls (模糊查找)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律