Linux学习01
Linux学习01
网址:man.linuxde.net
1.为什么使用Linux操作系统
-
性能问题,与Windows服务器操作系统相比Linux性能更高。
-
稳定性:
- 底层架构:Linux更加稳定,开机时间可以达到好几年不关机。
- 开源:因为开源,人人都可以看到源代码,就可以为其提供自己的补丁,补丁可以提高稳定性和安全性。
-
安全性:Linux操作系统,相对Windows操作系统更加安全。
-
远程管理方面:Windows不如Linux高效(Windows要传输桌面数据)。
-
服务器价格昂贵,需要对资源充分利用,充分把资源用到项目上(访问并发、性能),而不是把资源浪费在图形化界面上。
2.Linux系统特点
- 开放性(开源)
- 多用户:多个用户,再登录计算机(操作系统),允许同时登录多个用户进行操作。
- 多任务:多个任务,允许用户同时对多个任务进行操作。
什么是单用户:一个用户,在登录计算机(操作系统),只允许同时登录一个用户。
什么是单任务:一个任务,允许用户同时操作的任务数量为1。
Windows属于单用户、多任务操作系统。
Linux属于多用户、多任务操作系统。
3.Linux终端
说明:
root:位置表示当前登录的用户名。
@:表示“在”
localhost:当前登录的主机名。
~:当前终端的工作目录。
#:表示身份识别符,如果用超级管理员用户登录显示"#",否则显示"$"。
4.Linux关机命令
- shutdown -h now(立刻关机)
正常关机
- halt
关闭内存
- init 0
5.使用VMware备份Linux操作系统
有两种备份方式:
- 快照(还原点)。
侧重点在于短期备份,需要频繁备份。(做快照的时候虚拟机一般处于开启状态)
- 克隆(就是复制)。
侧重长期备份(做克隆的时候虚拟机必须关闭)。
6.Linux系统的文件
1.文件与文件夹(目录)
- 文件:一般都是一个独立的东西,可以通过一些特定的工具打开,并且不能包含除文字以外的东西。
- 文件夹:可以在其中包含其他文件的东西。
Linux一切皆文件:在Windows中不是文件的在Linux中也是文件。
文件操作:
创建文件、编辑文件、保存文件、关闭文件、重命名文件、删除文件、恢复文件
2.Linux系统的文件目录结构
目录结构
bin
全称binary,含义是二进制,该目录中存储的都是一些二进制文件,文件都是可以被运行的。dev
该目录中主要存放的是外接设备,例如:U盘,其他的光盘等。在其中的外接设备是不能直接被使用的,需要挂载(分配盘符)。etc
该目录主要是存储一些配置文件。home
表示"家",表示除了root用户以外其他用户的家目录,类似于Windows下的User目录。proc
process,表示进程,该目录中存储的是Linux运行时候的进程。root
该目录是root用户自己的家目录。sbin
全称 super binary ,该目录也是存放一些可以被执行的二进制文件,但是必须得有 super权限的用户才能执行。tmp
表示临时的,当系统运行时产生的临时文件会在这个目录下存着。usr
存放的是用户自己安装软件。,类似于Windows下的 program files。var
存放的是程序/系统的日志文件。mnt
当外接设备需要挂载的时候,就需要挂载到mnt目录下。
7.指令与选项
什么是Linux的指令:
在Linux终端(命令行)中输入的内容就称为指令。
一个完整的指令的标准格式:
Linux通用的格式。
指令 [选项] [操作对象]
指令只能是一个。
一个指令可以包含多个选项。
操作对象也可以是多个。
1.基础指令
1.ls
ls
:(list) 列出当前工作路径下的所有的文件和文件夹的名称。
列出的文件颜色说明:其中蓝色的表示文件夹、黑色的表示文件、绿色的表示其权限为拥有所有权限。
-
ls 路径
:列出指定路径下的文件和文件夹的名称。路径
:相对路径、绝对路径./
表示当前目录下。../
表示上一级目录下。
-
ls [选项] 路径
列出指定路径下的文件和文件夹的名称,并以指定的格式进行显示。-
ls -l 路径
:表示以详细列表的形式进行显示。 -
ls -la 路径
:显示所有的文件和文件夹(包含了隐藏文件/文件夹)红色框表示文件权限,蓝色(第一列字符)表示文件的类型。
-:表示文件类型为文件。
d:表示文件类型为文件夹。
在Linux中隐藏文件一般都是以 "."开头
-
ls -lh 路径
:列出指定路径下的所有文件和文件夹的名称,以列表的形式并且显示文档大小的时候以可读性较高的形式显示。
-
2.pwd
pwd
:(print working directory)打印当前的工作路径。
3.cd
cd
:(change directory改变目录);用于改变当前的工作目录的。
cd 路径
cd ~
补充:在Linux中有一个特殊的符号"~",表示当前用户的家目录。
4.mkdir
mkdir
:(make directory创建目录)
mkdir 路径
:(这里的路径可以是文件夹的名称相当于"./名称",也可以是一个包含文件夹名称的路径)。mkdir -p 路径
:实现多层一次性创建多个文件夹。mkdir 路径1 路径2 路径3 ...
:一次创建多个文件夹。
5.touch
touch
:创建文件
-
touch 文件路径
:(路径可以是直接的文件名也可以是包含文件名的路径)。touch linux.txt 在当前路径下创建文件
6.cp
cp
(copy,复制):复制文件/文件夹到指定的位置。
cp 被复制的文件路径 文件被复制到的路径
(注意:复制过程中可以对文件重命名,一般不用)。复制文件夹
注意:当使用cp命令进行文件夹复制操作的时候需要添加选项"-r"(表示递归复制),否者目录将被忽略。
7.mv
mv
:(move,移动,剪切)移动文件到新的位置。(移动后原始文件不在原来的位置了)
mv 需要移动的文件路径 需要保存的位置路径
移动文件
移动文件夹
(不用加"-r")。(不改名可以不写)
重命名
(路径不要变,原地移动)。
8.rm
rm
:(remove,移除,删除):移除/删除文件。
-
rm 选项 需要移除的文件路径
rm -r
:递归删除。rm -f
:删除时不用频繁输入确认,"-f"表示(force)强制。rm -rf
:直接强制递归删除。
-
删除一个文件
rm 文件名 -
删除文件夹
:添加选项"-r"。 -
删除多个文件
:可以同时删除,直接往后写。rm -rf a b c.txt
9.vim
vim
:(vim 是一款文本编辑器)打开一个文件(文件可以存在也可以不存在)。
vim 文件的路径
10.输出重定向
一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果保存到文件中进行后续的分析/统计,则这时候就需要使用到输出重定向技术。
>
:覆盖输出,会覆盖掉原先的文件内容。>>
:追加输出,不会覆盖原始文件内容,会在原始文件末尾进行追加。正常执行的命令 >/>> 文件的路径
注意:文件可以不存在,不存在则新建。
案例:使用覆盖重定向,保存ls -la 的执行结果,保存到当前目录下的ls.txt
ls -la > ls.txt
11.cat
cat
:能够直接打开一个文件。
cat 文件的路径
cat 待合并的路径1 待合并的路径2 .... >/>> 合并之后的文件路径
还可以对文件进行合并。
2.进阶指令
1.df
df
查看磁盘空间。
df -h
:以可读性较强的形式显示。
2.free
free
:查看内存使用情况。
-
free
-
free -m
:单位MB,剩余真实可用的看第二行。
Swap:用于临时内存,当系统真实内存不够用时可以临时使用磁盘空间充当内存。
3.head
head
:查看一个文件的前 n 行,默认是前10行。
head -n(数字) 文件路径
4.tail
tail
:查看一个文件的后 n 行,不指定n默认10行。
-
tail -n(数字) 文件路径
-
tail -f 文件路径
:查看一个文件的动态变化(变化的内容不能是用户手动添加的)。该命令一般用来查看日志
5.less
less
:查看文件,以较少的内容进行输出,按下辅助功能键(数字,回车,空格,方向键)查看更多。
less 文件路径
按"q"退出
6.wc
wc
:统计文件内容信息。(包括行数、单词数、字节数)。
wc -lwc 需要统计的文件路径
-l
:表示lines,行数。-w
:表示worlds,单词数(以空格区分)。-c
:表示bytes,字节数。
7.date⭐⭐⭐
date
:表示操作时间和日期的(读取、设置)-->(shell脚本中有用)
几个时间符号: CST(表示当地时间)
date
:输出格式:2022年 06月 30日 星期四 16:10:51 CSTdate +%F(等价于 date "+%Y-%m-%d")
:输出格式:2022-06-30date "+%F %T (等价于 date "+%Y-%m-%d %H:%M:%S")"
输出格式:2022-06-30 16:18:01获取之前或者之后的某个时间
(备份,删除备份)date -d "-1 day(year)" "+%Y-%m-%d %H:%M:%S"
:输出一天前的时间date -d "+1 day(year)" "+%Y-%m-%d %H:%M:%S"
:输出一天后的时间
8.cal
cal
:操作日历的命令。
cal
等价于cal -1
:直接输出当月的日历。cal -3
:输出上一个月+本月+下一个月的日历。cal -y 年份
:输出某一年的日历。
9.clear
clear
等价于ctrl + L
:清屏。之前的内容上划了(并不是真正的清除了之前的信息,可以通过滚动条查看)。
10.管道⭐⭐⭐
管道符 "|"
:管道操作可以用于过滤、特殊、扩展处理。
管道不能单独使用,必须配合前面所讲的一些指令一起使用,起辅助作用。
过滤
:通过管道查询出根目录下包含"y"字母的文档名称。
ls / |grep y
说明:以管道作为分界线,前面的命令有输出,后面需要先输入,在过滤,再输出。
简单说就是管道前面的输出就是后的指令的输入。
grep指令
:主要用于过滤。
-
特殊用法案例
:通过管道的操作方法来实现less的等价效果(了解)。cat 路径 | less
-
扩展处理
:请使用学过的命令,来统计某个目录下的文档的总个数。ls / | wc -l
11.挂载和解挂
-
解挂操作
- 命令
umount
- 语法
umount 当前设备的挂载点
(路径)
此时,相当于U盘在Windows上已经被弹出了,但是没有拔下来。 - 命令
-
挂载操作
- 命令:
mount
- 语法:
mount 设备原始地址 要挂载的位置路径
设备的原始地址:
在/dev目录下
,然后根据大小确定具体的name值,拼凑在一起组成原始地址。案例:挂载光盘
原始路径: /dev/sr0
挂载位置: /mnt/dvd
要挂载的位置路径:挂载目录一般都在
mnt
下,也可以在 mnt 下新建目录。 - 命令:
3.高级指令
1.hostname
hostname
:操作服务器的主机名(读取、设置)。
hostname
:输出完整的主机名hostname -f
:输出当前主机名中的FQDN(全限定域名)。
2.id
id
:查看一个用户的一些基本信息(包含用户id,用户组id,附加组id...)如果不指定用户则默认当前用户。
id
:默认输出当前用户的信息。id 用户名
:输出指定用户名的信息。
验证用户信息:通过文件 /etc/passwd
验证用户组信息:通过文件 /etc/group
3.whoami
whoami
:显示当前登录的用户名。一般用于shell脚本,用于获取当前操作的用户名方便记录日志。
4.ps -ef⭐⭐⭐
ps
:用于查看服务器的进程信息。
-
ps -e
等价于ps -A
:表示列出全部的进程。 -
ps -f
:显示全部的列(显示全字段)。
UID:该进程执行的用户id。
PID:进程id。
PPID:该进程的父级进程id。
C:CPU的占用率。
STIME:进程的启动时间。
TTY:终端设备,发起该进程的设备识别。"?"表示该进程不是由终端设备发起的。
TIME:进程运行的多长时间。
CMD:该进程的名称或对应的路径。
-
ps -ef | grep 进程名称
:在 ps 的结果中过滤出想要查看的进程状态。
5.top⭐⭐⭐
top
:查看服务器的进程占的资源。
-
top
:动态显示,(退出"q")。运行top时按下M按照内存占用排序、P按照cpu使用率排序当服务器拥有多个cpu的时候,可以使用'1'来切换是否展示各个cpu的详情。
PID:进程id
USER:该进程对应的用户
PR:优先级
NI:用户进程内改变过优先级的进程占cpu的百分比
VIRT:虚拟内存
RES:常驻内存
SHR:共享内存
计算一个进程实际使用的内存 = 常驻内存(RES) - 共享内存(SHR)
S:表示进程的状态(sleeping,S表示睡眠,R表示运行)⭐
%CPU%:cpu的占用百分比⭐
%MEM:内存的占用百分比⭐
TIME+:执行的时间
COMMAND:进程的名称或路径⭐
虚拟、常驻、共享(内存):举例:
chrome浏览器运行:
虚拟内存: 申请500MB 实际使用320MB 此时的虚拟内存就是500MB
常驻内存: 申请500MB 实际使用320MB 此时的常驻内存就是320MB
共享内存: 申请500MB
实际使用320MB,但是其中还包含对其他进程的调用开销则需要扣除。
6.du -sh
du -sh
:查看目录的真实大小。
du -s
:(summary)只显示汇总的大小。du -h
:以较高的可读性的形式进行显示。
7.find
find
:用于查找文件。
-
find 路径范围 选项 选项的值
-
find 路径范围 -name 选项的值
:按照文档的名称进行搜索(支持模糊搜索)。 -
find 路径范围 -type 选项的值
:按照文档类型进行搜索,(文档类型,"-"表示文件[在使用find的时候需要用f来替换],"d"表示文件夹)
案例:搜索etc目录下所有的conf后缀文件。
查看有多少个:
案例:使用find来搜索/etc/dbus-1/目录下所有的文件。find /etc/dbus-1/ -type f
8.service
service
:用于控制一些软件的服务启动/停止/重启
注意:这是centOS 6的命令
service 服务名 start
service 服务名 stop
service 服务名 restart
启动本机安装的Apache(网站服务器软件),其服务名httpd
centOS7用一下命令:
systemctl status httpd.service
:查看服务状态。systemctl start httpd.service
:启动服务。systemctl stop httpd.service
:关闭服务。systemctl restart httpd.service
:重启服务。
也可以通过 ps 命令来检查httpd服务是否启动。
9.kill
kill
表示杀死进程。(当遇到僵尸进程或者出于某种原因需要关闭进程的时候使用)。
-
kill 进程PID
:(语法需要配合 ps 一起使用)。 -
killall 进程名称
:与kill命令相似但是比kill更好用的杀死进程的命令"killall"
一般需要安装:centOS下使用命令:
[root@localhost ~]# yum install psmisc
10.ifconfig
ifconfig
:用于操作网卡相关的指令。
-
ifconfig
:获取网卡信息。(可能没有安装)使用:ip addr
代替。
安装ifconfig命令:[root@localhost ~]# yum install net-tools
11.reboot
reboot
:重新启动计算机。
reboot
:重启reboot -w
:模拟重启、但是不重启(用来写关机和开机日志)。
12.shutdown
shutdown
:关机。(慎用)
-
shutdown -h now "关机提示"
-
shutdown -h 15:23
-
shutdown -c
取消关机。 -
其他关机命令: init 0 halt poweroff
13.uptime
uptime
:输出计算机的持续在线时间(计算机从开机到现在运行的时间)。
14.uname
uname
:获取计算机操作系统相关的信息。
uname
:获取操作系统的类型。uname -a
:获取全部的系统信息(包含:操作系统类型、全部主机名、内核版本、发布时间、开源计划)。
15.netstat -tnlp
netstat
:作用:查看网络的连接状态。
netstat -tnlp
:
选项说明:-t
:表示只列出tcp协议的连接。-n
:表示列出ip地址,可以把协议转换成端口号来显示。-l
:表示过滤出"state"(状态)列中其值为LISTEN(监听)的连接。-p
:表示显示进程的PID和进程的名称。
16.man
man
(manual,手册)
man命令中文汉化:
Red Hat / CentOS:
yum update yum install man-pages-zh-CN
man 命令
:(退出:按"q")。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!