linux基础操作笔记
linux
杂项
操作系统演变历程
1969 Unix 美国 肯·汤普森 收费
1983 GNU
1985 windows 1.0
1991 LINUX 芬兰人 林纳斯·托瓦兹
1995 windows 95
1998 windows 98
2007 windows 7
2008 windows 8
2010 windows 10
Linux系统特点
1 稳定性好(相对稳定) 2 安全性强 3 硬件需求少(配置要求低) 4 自由多样化(开源可修改) 5 综合成本低(免费)
常见版本
Debian Ubuntu redhat centos
linux 系统与windos系统区别
类别/序号 | windows | linux |
---|---|---|
费用方面 | 收费购买 | 免费 |
学习难易度方面 | 图形化界面 上手容易 | 非图形化界面 操作全靠敲指令 不易上手 |
软件适配 | 大多数为收费软件 微软官方提供技术支持和服务 | 大部分为开源免费软件 用户可以修改定制再发布 由全球开发者和软件社区提供支持 |
系统安全性 | 需要经常打补丁 而且容易中病毒木马 | 相对安全性更高 无需安装杀毒软件 |
开源 | 封闭系统 无法做到定制修改 | 开源 可以自定修改 |
硬件方面 | 支持图形化界面 相对硬件需求更高 | 图形化界面少 硬件要求低 |
系统维护 | windows更新升级快 | 更新频率相对低 不用强制更新 |
娱乐 | 软件多 适配广 厂商多 | 相对支持厂商少 娱乐适配低 |
linux思想/基本哲学
一切皆文件
linux组成部件
硬件 内核 shell 应用程序
目录结构
目录名称 | 用途 |
---|---|
bin | 存放可执行二进制文件 |
dev | 存放系统的设备文件 |
etc | 存放系统配置文件 |
home | 存放用户的主目录 |
mnt | 让用户临时挂载其他文件的系统目录 |
opt | 额外可放置应用程序的目录 |
proc | 虚拟目录 用来获取系统信息 |
root | 超级用户的主目录 |
sbin | 超级用户身份访问的可执行二进制文件 |
var | 存放系统日志文件 |
身份标识
$符号表示普通用户
表示超级用户身份
工具
xshell 远程连接虚拟机的终端工具
xftp 配合xshell使用的上传或下载的终端工具
中断操作
ctrl + c
大小写
linux严格区分大小写
yum更新
yum -y(全部确定) 文件包名
yum -y l多个文件包名
cd
cd - 回到上一级
指令
1 ifconfig
查看linux虚拟机内ip
2 SU -ROOT
普通用户切换到超级用户
2.1 EXIT
退出超级用户
3 ping
ping 网站 测试网站访问
4 ls直接查看
查看当前目录下内容
ls [选项] [目录或文件名]
参数
-a:--all的缩写,显示所有的文件,包括隐藏文件(以.开头的文件)
-A : --almost-all 同上 不显示 .和..两级目录
-l:列出长数据串,显示出文件的属性与权限等数据信息(常用)
-f:直接列出结果,而不进行排序(ls默认会以文件名排序)
-F: 在文件或目录名后加上文件类型的指示符号
-t: 以修改时间排序
-S 以文件大小排序
--help 帮助信息
4.1 ll
列出当前文件或目录的详细信息
文件类型 文件属性 目录/连接个数 所有者以及组 文件大小 修改日期 文件名称 字体颜色
5 mkdir
创建目录 或者创建一个级联[套娃目录 a/b/c]目录
格式
mkdir 参数 目录名
-p 如果目录存在 不报错 若父目录不存在 自动创建父目录 用于创建套娃目录
-m=mode 设置访问权限
6 rmdir
删除目录 不能删除非空目录
rmdir 参数 目录
参数
-p 递归删除目录
-v --verbose 显示指令执行过程
递归删除test/test1/test2
不能直接rmdir 也不能 rmdir -p test
需要 rmdir -p 接完整路径 会向上查找递归删除
7pwd
用 pwd 命令来查看”当前工作目录“的完整路径,目前所在的工作目录的绝对路径名称。
8 touch
touch 创建文件
touch 参数 名称
-a:或--time=atime或--time=access或--time=use 只更改存取时间;
-c:或--no-create 不建立任何文件;
-d:<时间日期> 使用指定的日期时间,而非现在的时间;
-f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;
-m:或--time=mtime或--time=modify 只更该变动时间;
-r:<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
-t:<日期时间> 使用指定的日期时间,而非现在的时间;
9 rm
删除一个目录中的文件或者多个文件或目录
对于链接文件 只是删除链接 原有文件保持不变
rm 参数 文件
参数
-f force 忽略不存在的文件 不给提示
-i 进行交互式删除 给提示
-r 将指定目录下的所有目录递归删除
-v 显示执行步骤
删库指令 rm * -rf
10mv
用于剪切文件或者将文件重命名
mv 旧文件名 新文件名 改名
mv 文件名 目录名 将文件移动到目标目录
mv 目录名 目录名 目标存在 源目录内容移到目标目录 不存在 改名
mv 目录名 文件名 报错
参数
-i 若有同名文件 询问是否覆盖
-f 覆盖不提示
11 stat
查看详细信息
stat 目录
12 ln
ln命令是linux系统中一个非常重要命令,英文全称是“link”,即链接的意思,它的功能是为某一个
文件在另外一个位置建立一个同步的链接。
一种是hard link,又称为硬链接;
另一种是symbolic link,又称为软链接。
通俗一点理解,
硬链接当成源文件的副本,他和源文件一样的大小,但是事实上却不占任何空间。
软链接可以理解为类似windows一样的快捷方式。
软链接 :
软链接以路径的形式存在,类似于Windows操作系统中的快捷方式。
软链接可以跨文件系统 ,硬链接不可以。
软链接可以对一个不存在的文件名进行链接,硬链接不可以。
软链接可以对目录进行链接,硬链接不可以。
硬链接:
硬链接以文件副本的形式存在,但不占用实际空间。
硬链接不允许给目录创建硬链接。
硬链接只有在同一个文件系统中才能创建。
ln [参数] [源文件或目录] [目标文件或目录]
参数
-s 对源文件建立软链接,而非硬链接
-b 为每个已存在的目标文件创建备份文件
-d 此选项允许“root”用户建立目录的硬链接
-f 强制创建链接,即使目标文件已经存在
-n 把指向目录的符号链接视为一个普通文件
-i 交互模式,若目标文件已经存在,则提示用户确认进行覆盖
-v 详细信息模式,输出指令的详细执行过程
13 cat tac
一次性显示整个文件
cat 参数 名字 查看文件 | 可以同时查看多个文件
cat > 名称 创建新文件
cat 文档1 文档2 > 新文档3 文档合并
参数
-n --number 由1开始对所有输出的行编号
-b 同上 空白行不编号
-s 遇到连续两行以上的空白行 旧代换为一行空白行
-v
显示test文档内 第2-7行文字
cat test.txt | head -n 7 |tail -n +2
查询带关键字的日志并保存在其他文档内
cat test.txt |grep 查询目标 >保存文件路径
13.1 tac
反向显示文件内容
tac 名称
13.2 sed
查询时间段内输入的内容
sed -n '/yyyy-mm-dd hh:mm:ss/,/yyyy-mm-dd hh:mm:ss/p' 文件名.txt
14 head
用于查看文件开头部分的内容 常用参数 -n 显示行数 默认为10
head 参数 文件
参数
-q 隐藏文件名
-v 显示文件名
-c数目 显示的字节数
-n行数 显示的行数
head -n -2 text.txt 不显示最好两行
15 tail
用于显示文件尾部的内容,默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入
tail 参数 文件
参数
f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示文件的尾部 n 行内容
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
tail -n -1 test.txt = tail -1 test.txt = tail -n 1 text.txt
16 echo
向文档写入文字
echo ‘内容的’ > 文件名
17 more
分页显示文件内容 可以逐页阅读文件内容 支持交互命令 只能往后看 不能往前翻
more 选项 文件名
按q退出 空格翻页 回车单行查看
参数
-f 计算行数时,以实际的行数,而不是自动换行过后的行数。
-p 不以卷动的方式显示每一页,而是先清除屏幕后再显示内容。
-c 跟 -p 选项相似,不同的是先显示内容再清除其他旧资料。
-s 当遇到有连续两行以上的空白行时,就替换为一行的空白行。
-u 不显示下引号(根据环境变量 TERM 指定的终端而有所不同)。
+n 从第 n 行开始显示文件内容,n 代表数字。
-n 一次显示的行数,n 代表数字。
交互命令
h 或 ? 显示 more 命令交互命令帮助。
q 或 Q 退出 more。
v 在当前行启动一个编辑器。
:f 显示当前文件的文件名和行号。
!<命令> 或 :!<命令> 在子Shell中执行指定命令。
回车键 向下移动一行。
空格键 向下移动一页。
Ctrl+l 刷新屏幕。
= 显示当前行的行号。
' 转到上一次搜索开始的地方。
Ctrf+f 向下滚动一页。.重复上次输入的命令。
/ 字符串搜索指定的字符串。
d 向下移动半页。b向上移动一页。
18 less
Linux中的less命令主要用来浏览文件内容,与more命令的用法相似,不同于more命令的是,less命令
可往回卷动浏览以看过的部分。
less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻,只能往后面看,
但若使用了 less时,就可以使用[pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容
less 参数 文件
参数
-b 《缓冲区大小》 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o 《文件名》 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x 《数字》 将“tab”键显示为规定的数字空格
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
19 cp
用于复制文件和目录 借助选项可以复制整个目录 以及对比两文件的新旧
默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用 -R 选项;
cp 参数 源文件 目标文件
参数
-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目
录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才
复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。
20 du
查看目录下所有文件的大小 此处要用绝对路径/home/ccc
du -h 目录名或者文件名
-k 以kb为单位显示内存使用情况 默认单位
-m 以mb为单位显示内存使用情况
-h 以合适的列表方式显示
21 gerp
文档内筛选目标内容
gerp 目标内容 文档名
22 hostname
显示主机名称
22.1 who
查询用户
22.2 unmame -a
查询系统详细信息
23 find
查询目录下文件名
find 路径 参数 名称
-name 根据名称查询
-size 根据大小查询 +8000c = 大于8k 同理 -8000c = 小于8k
23.1 wc
查看文档行数
24 gzip bzip2 zip
24.1 gzip
gzip压缩文件 不能压缩目录
gzip 文件名
gzip 解压
1 gzip -d 文件名.gz
-v 压缩程度 1-9 9最高
gzip -dv -9 文件名 或 gzip -d -9 文件名
2 gunzip 文件名.gz
24.2 bzip2
bzip2压缩文件 不能压缩目录
bzip2 文件名
bzip2 解压
bzip2 -d 文件名.bz2
bunzip2 文件名.bz2
24.3 zip
zip压缩 可以压缩目录 也可以压缩文件 默认放在当前目录下面
zip (目标地方)名称.zip 目录或者文件名
unzip 解压
24.5 注意事项
gzip bzip 压缩后源文件不存在
解压后源文件也不存在
zip压缩 源文件存在
解压后源文件存在
速度 bzip2 < gzip < zip
速度越快压缩率越低
25 tar
打包文件 tar包文件的命令通常都是以.tar结尾的 先打包 后调用其他程序压缩
用来压缩和解压缩 本身不带有压缩功能 是调用压缩功能实现的压缩
tar [必要参数] [选择参数] [文件]
tar -cvf 包名.tar 文件1 文件2 文件3
参数
常用参数
cvf 创建
解包x
t看包内内容
zcvf gzip格式打包
jcvf bz2格式打包
-A 新增压缩文件到已存在的压缩
-B 设置区块大小
-c 建立新的压缩文件
-d 记录文件的差别
-r 添加文件到已经压缩的文件
-u 添加改变了和现有的文件到已经存在的压缩文件
-x 从压缩的文件中提取文件
-t 显示压缩文件的内容
-z 支持gzip解压文件
-j 支持bzip2解压文件
//////-Z 支持compress解压文件
-v 显示操作过程
-l 文件系统边界设置
-k 保留原有文件不覆盖
-m 保留文件不被覆盖
-W 确认压缩文件的正确性
可选参数如下:
-b 设置区块数目
-C 切换到指定目录
-f 指定压缩文件
--help 显示帮助信息
--version 显示版本信
26 rpm
rpm软件管理查询
rpm 参数 命令名称
参数
-q 查看系统中已经安装的rpm包
-a 查看系统中已经安装的rpm包
-e 卸载命令 | yum -y remove 指令名称
-ivh 安装.rpm软件包
|grep 筛选
27 netstat
查询指定进程的端口号
netstat -anp 查看全部端口号
netstat -anp|gerp 筛选指定进程
28 ps
查看指定进程的进程号
ps -ef 查询全部进程
ps -ef|grep 筛选指定进程
ps -C 指定进程
ps -aux 显示某一瞬间所有进程状态
ps top动态显示当前系统中耗费资源最多的进程
29 kill
杀死pid进程号
kill -9(强行关闭) pid
进程pid和端口的区别
一个程序 启动时占用一个端口号 同时运行时内部程序会分配进程号
想释放端口 得将软件所有占用的进程号全部kill 然后应用会关闭 从而释放端口
30rz sz
rz上传
sz下载
用前需要下载
30.1
arch/ uname
uname 参数
-m 显示使用的内核
-a 显示使用的内核版本
getconf LONG_BIT(显示操作系统位数)
cat /proc/cpuinfo 显示cpu信息
cat /proc/version 显示内核版本
cat /proc/net/dev 显示网络适配信息
cat /etc/redhat-release 查看centos版本
date显示系统日期
date 后接设置时间格式(月日时分年.秒)
cal 年份 打印对应年份的日历表
ifconfig eth0显示以太网卡配置
ifconfig eth0 up 启用一个eth0网络设备
ifconfig eth0 down(禁用一个‘eth0’网络设备)
netstat 显示网络状态
netstat 参数
-r查看路由器信息 ,
w查询上机者的详细信息
whoami查看自己账号名称
groups查看某人的组
history查看自己敲过的命令
clear reset清屏
31 du df free 0
du diskuse
** 显示每个文件和目录以及占用了多少空间**
参数
-k 以kb为单位显示内存使用情况 默认单位
-m 以mb为单位显示内存使用情况
-h 以合适的列表方式显示
df diskfree
显示指定磁盘文件的可用大小
-k 以kb为单位显示内存使用情况 默认单位
-m 以mb为单位显示内存使用情况
-h 以合适的列表方式显示
free
显示系统使用和空闲的内存情况
参数
-k 以kb为单位显示内存使用情况 默认单位
-m 以mb为单位显示内存使用情况
-g 以合适的列表方式显示
32 shutdown
关机
shutdown -h now 关闭系统
init 0 关闭系统
telinit 0 关闭系统
Shutdown -h 时间 系统会在指定时间关机
shutdown -h +10 十分钟后关机
shutdown -r +10 系统十分钟后重启
shutdown -c 取消按预定时间关闭系统
shutdown -r now 马上重启
rebot 重启
halt 关闭系统
logout 注销
33 vim
文本编辑器
vim 文档名称
有就打开没有就新建
vim 绝对路径
vim +n 文件名 打开文档好定位第n行
i 进入插入模式
esc 退出模式
: 进入命令模式
:w 保存
:w 名称 另存为新文件
:set number 编辑文件显示行号
:set nunumber 编辑文件不显示行号
:e 打开目录下的文件 后可接绝对路径
:q 退出
:wq! 强制退出
基本模式
按两下dd 删除整行
按两下yy 复制整行
按 p 粘贴
34 user
34.1 useradd
创建新用户
useradd -u uid newuser
-p 添加密码
-g 分组
-d 创建用户目录
34.2 passwd
passwd newuser 为新用户newuser设置密码 密码不回显
passwd -d username 删除用户username的口令
34.3userdel
userdel 用户名 删除用户账号
userdel -r(remove) ddd 删除用户ddd以及其家目录克文件
34.4usermod
usermod -u uid username 修改用户username的uid
-g 修改组名
-p 修改密码
-l 修改账户名
-L 锁定用户
-U 解锁
35 groups
groups 用户名
查询用户所属组
35.1 groupadd
创建组
groupadd -g gid
组名 创建组时指定组gid
不指定时会自动增长
groupmod -g gid
组名 更改对应组名的gid
groupmod -n
新组名 旧组名 更改组名
groupdel
组名 删除用户组
groupdel
删除组
35.2 gpasswd
-a 用户 组名 将用户加入对应组
-d 用户 组名 将用户踢 出对应组
services iptables stop
关闭防火墙
id 用户
查询用户uid gid 组信息
36 文件权限管理
d | rwx | r-x | r-x. 4 root root 31 2月 27 10:30 公共
1 3 3 3 分组 分组内 - 充当填充作用
第一组基本权限
第二组用户权限
第三组用户组权限
第四组其他人权限
基本权限 通过ll查看
r(read) 读权限
w(write) 写权限
x(execute) 执行权限
d(dir) 目录
-( ) 普通文件
l(link) 链接文件
变更文件管理权限
chmod [权限范围 +/-/= 权限代号] 文件或目录
u:user 文件的创建者或者拥有者
g:group 文件或目录的所属群组
o:other 除了拥有者和群组之外 其他用户都属于这个范围
a:all 全部用户 包含拥有者 所属群组以及其他用户
r 读取 数字代号4
w写入 数字代号2
x执行或者切换 数字代号为1
-无权限 数字代号为0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律