Linux系统介绍
1、Linux操作系统介绍
1.1操作系统介绍
啥是操作系统?
操作系统其实就是应用程序和硬件之间的媒介,它本身也是一个计算机程序。
举个例子:你在电脑上使用qq或微信和小伙伴通电话时,就是qq向操作系统提出请求,然后操作系统接受到请求打开麦克风和音频播放器。
1.2常见的操作系统
1.个人电脑:Windows、MacOS
2.服务器:Linux、Unix、Windows、Server
3.嵌入式(汽车系统):Linux
4.移动端(手机、平板):安卓(基于Linux)、iOS、鸿蒙
1.3Linux操作系统的特点
1.最最最主要的原因就是开源免费
2.其次就是安全稳定、可移植性性好、高性能
1.4Linux常见的发行版本
Ubuntu(乌班图)、Redhat(红帽)、CentOS
(这些东东了解就行啦)
1.5Linux使用领域
应用服务器、数据库服务器、网络服务器、虚拟化云计算、嵌入式领域、个人PC、移动手机
(了解就好)
1.6Linux使用场景(测试)
1.项目部署的测试环境(这个东东一般情况下应该也不会让我们测试部署,最怕开发和运维生病有事请假哈哈哈哈)
2.查看日志定位问题(如何查看日志后面会讲到滴)
2、Linux文件系统和目录
Linux是树形结构的文件结构,一个根目录“/”和若干子节点,每个子节点都可以继续展开出自身的子节点(下一级)。
/:唯一根目录
/home:用户目录
/root:系统管理员目录
/usr:应用程序
/etc:系统配置
/boot:内核文件
/tmp:临时文件
/bin:存放命令、工具
Linux常用命令
1、Linux远程链接
1.1什么是远程链接
就是用自己的电脑控制放在”山沟沟“里的电脑(服务器),然后一般我们不好去山沟沟
1.2为啥要远程链接?
因为实际情况中,我们的项目服务器是在机房或者云服务器里,我们都接触不到,想要访问服务器就需要通过远程链接来完成。因为Linux不像我们平时使用的Windows系统,它没有图形界面,想要操作文件只能通过命令在控制台进行,这就很抽象了嘿嘿,但是我们用工具远程链接的话,有的工具经过开发是具备半图形界面化的,就文件会显示出界面图像可以看到或者点击操作的。
1.3远程链接工具介绍
常用的远程链接的工具有:finalshell xshell SecureCRT
我们今天说的工具是finalshell
就是长这个样子
连接在这,有需要的小伙伴自行下载哦:
链接:https://pan.baidu.com/s/19bFPwpDrIYbZNsqeBTHZrg
提取码:FNSL
安装的话就是哪里亮了点哪里,小心别安在C盘哈哈
1.4链接Linux服务器
我们链接Linux服务器的时候需要知道服务器的ip地址,用户名和密码还有ssh链接的端口号
链接前最好先确定远程ip地址是否可以同ping(连通)可以通过本地电脑进入cmd进行ping x.x.x.x
查询服务器的ip地址的命令是ifconfig,用户名密码我用的是默认的root+123456
ifconfig
netstat –anp | grep sshd
然后就可以打开finalshell连接了
设置完后就是这样
然后我们选择这个链接打开就链接成功啦嘿嘿
对ssh链接有兴趣的宝子们可以去搜一搜嘿嘿
2、Linux命令格式
2.1终端命令格式
command [-options] [parameter]
Command:命令名称
[]:可选项
[-options]:命令选项,可有可无
[parameter]:命令参数,可以不传,也可以传一个或多个
2.2查看命令帮助
命令 --help
man 命令
例如查看ls命令的使用
ls --help
man ls
使用吗man help时:b和空格上下翻页、退出时按q、/word:搜索word字符串
3、文件和目录常用命令
3.1查看目录内容--ls
命令格式:ls [选项] [文件或命令]
ls选项:
-l:以列表的形式查询文件信息
-a:显示所有的文件信息,包括隐藏的文件
-h:显示文件大小
小伙伴们注意啦:这个命令查看的是指定路径下的目录(文件夹)和文件的信息,有的小伙伴以为查看文件信息就是查看文件具体内容,实际上并不是的,这里我们并没有打开具体的文件,只是看看有没有这个文件。(我们可以暂时理解为,不带后缀的叫目录(文件夹),有后缀的是文件)
例如:
我们先进入usr目录
cd /usr
创建一个test_demo目录(文件夹)
mkdir test_demo
进入test_demo
cd test_demo
创建两个文件 file.txt file.csv
touch file.txt file.csv
创建两个目录(文件夹)directory1 directory2
mkdir directory1 directory2
现在我们使用ls命令来查看test_demo目录下的文件信息
我们只写了命令和选项并没有写路径/目录是因为我们查看的是当前目录下的文件信息,不写的话默认就是当前目录
我们查看文件信息的时候还可以结合则通配符一起使用
常见的通配符:
*:表示0或多个任意字符(也代表所有的意思)
?:表示一个字符
[abcd]:表示匹配abcd之中的任意一个字符
[a-z]或者[0-9]:表示匹配这个范围内的任意一个字符:注意只能匹配一个字符哦
打架可以把下面几个命令敲一下感受一下
ls -l *
ls -l fi*
ls -l ?ile.txt
ls -l [a-d]ire*
3.2切换目录--cd
cd或cd ~:切换到当前用户主目录
cd
cd ~
cd ./ :切换到当前目录
cd ./
cd ../:切换到上级目录
cd ../
cd -:切换到上次所在目录
cd -
小伙伴们要注意目录是要区分大小写的
这里还就涉及到绝对路径和相对路径:
绝对路径:从根目录或者家目录开始到目标目录过程中的所有目录都写出来
相对路径:相对当前目录所在的位置(不以根目录或家目录开头)
3.3创建文件--touch
命令:touch 文件名
touch 文件名
规则:
如果文件不存在则创建文件
如果文件已存在,则更新文件的修改时间
如果创建的文件不在当前目录则文件名前面需要加路径
可以同时创建多个文件
3.4创建目录--mkdir
命令:mkdir 目录名
mkdir 目录
规则:
选项加 -p (小写) 可以创建多个层级的目录
目录名称不能和当前目录下的文件的目录名字相同
支持其他路径创建目录
mkdir -p mod/mod1/mod2
3.5删除目录或文件--rm
命令:rm [-选项] 目录名或文件名
选项:
-i:交互式执行,删除前会询问是否删除
-f:强制删除,忽略不存在的文件,不提示
-r:删除文件夹和文件夹下的所有内容
注意:使用rm删除文件时无法恢复,建议使用rm时跟上 –i 参数
rm -i fileA.txt fileB.txt fileC.txt
有一个小细节:用ls命令查看目录下稳健信息时,没有反应就是目录下没东西
couch directory2/file.txt
rm -r directory2
rm -rf directory1
3.6复制文件或目录-cp
命令:cp 源文件 目标文件
选项:
-i:交互,覆盖时会提示用户确认
-f:强制覆盖已存在的目标文件不提示(就是我想把a文件复制到一个目录下并取名叫b文件,但是此目录下已经有b文件了,咋办,直接把原来的b文件替换了嘿嘿,后面我们可以验证一下)
-r:若文件为目录,则复制目录下面的所有内容
-v:显示进度(这个没有动画效果哈,其实就是把文件操作的过程通过目录文件显示出来)
cp file.txt file1.txt
(用ls检查要形成一种习惯滴)
我们现在来验证一下选项-f是不是和描述一样(这里本来设计到后面的查看文件和编辑文件,但是图形界面话工具真是个好东西,我们可以直接像操作windows系统一样写文件和查看文件)
现在我们file.txt和file1.txt里面是都没有东西的
我们可以直接在像windows系统一样直接选中右键打开
我们在file.txt里面写入:我好喜欢linux哇
在file1.txt里面写入:我不喜欢linux
然后我们用cp命令把file.txt文件复制到当前目录下并取名为file1.txt,但是当前目录已经存在file1.txt文件了,我们看看能不能把原有的file1的内容替换掉
cp -f file.txt file1.txt
乖乖!成功了!还真的可以直接覆盖掉原来的文件内容哈哈
3.7移动文件或目录--mv
命令格式:mv 源文件 目标文件
选项:
-f:强制覆盖已存在的目标文件,刚刚解释过啦
-i:交互,覆盖时会提示用户确认
-v:显示进度
(mv命令的本质其实是把文件销毁掉然后再冲新创建一个一样的文件,但是新文件的名字你可以冲新取,如果新名字跟已存在的文件冲突了,价加个-f就可以把原来的文件替换了)
所以所mv命令不仅可以移动文件还能给文件改名字哈哈
这里我把file.csv文件移动到和我们的test_demo同一级并把名字改为file_csv.csv
mv file.csv /usr/file_csv.csv
3.8查看文件命令
常用查看文件的命令:
1.cat 文件名:查看内容较少的文件,可以用来查看文件、创建文件、合并文件、追加文件等功能
2.more 文件名:查看内容较多的文件,分屏展示
3.grep 索引:查看内容较多的文件,用来搜索指定内容
cat命令格式:cat [选项] 文件名
选项:
-b:对有内容的行进行编号
-n:对所有行编号
(这里我就偷偷懒不敲啦,上面有演示过啦哈哈)
more命令格式:more [选项] 文件名
(使用more会进入查看文件模式,这个时候不能输入命令但可以操作,可以配合管道符进行操作)
操作键:
空格键或f:下一页
b:上一页
回车键(Enter):下一行
q:退出查看模式
grep命令格式:gerp [选项] 匹配字符 文件名(这个必须要有匹配字符,不然不能查找得到)
(这个东东很常用滴,用grep来搜索很方便,会配合这管道符来使用)
选项:
-v:取反,非,意思就是搜索除匹配到的行的所有行(就是我不想看啥我就加个-v然后把)
-n:显示匹配的行号
-i:忽略大小写
(grep可以配合着正在表达式一起用,正则表达式就是用来匹配字段滴)
(管道符 | :就是对命令的结果进行再次操作)
查看file文件’我‘开头的行并显示行号
cat file.txt | grep -n ^我
grep -n ^我 file.txt
(后面还会一直用到)
^a:以a来头的行
a$:以a结尾的行
[abc]:匹配abc之中的任意一个字符
(家人们,别搞混了喔,grep匹配字符用的是正则表达式,不是通配符哦)
3.9其他命令
重定向--> >>
解释:
linux允许命令执行结果重定向到另一个文件中
可以将终端显示的内容添加或追加到另一个文件中
> 重定向符号表示输出到新文件中,会覆盖文件中原有内容
>> 重定向符号表示追加到新文件中,不会覆盖原有的内容
ls -l >> file1.txt
cat file.txt > file1.txt
(重定向可以配合cat对文件进行创建、追加、合并)
还有个管道符 |
linux允许将一个命令的输出结果通过管道符作为另一个命令的输入
(这个东西后面会经常出现滴,看一下很容易理解的,可以和more,grep一起使用)
其他命令--pwd、clear、which
命令格式:pwd
pwd命令用于显示当前所在的行
命令格式:clear
clear命令用于清除当前屏幕终端显示的所有内容
命令格式:which 工具名称
which用于查找工具或程序的安装位置
which ls
4、信息系统相关命令
4.1重启与关机
重启命令:reboot
命令说明:执行命令后立即冲新启动操作系统
关机命令:shutdown
命令说明:执行命令后,根据选项自定义关机系统
选项:
shutdow -r now :重新启动操作系统,shutdown会给别的用户提示
shutdow -h now:立即关机,now相当于时间为0的状态
shutdow -h 22:22 :系统在今天22:22会关机
shutdow -h +10:十分钟后系统自动关机
4.2擦看系统进程--ps
命令格式:ps -aux
选项:
-a:显示终端上的所有进程,包括其他用户的进程
-u:显示进程状态的详细信息
-x:显示没有控制终端的进程
ps命令一般会配合这管道符和grep对查找出来的结果进行筛选
例如:
ps -aux | grep nginx
ps -ef | grep nginx
4.3查看系统进程--top
命令格式:top
说明:top命令 用于实时查看系统进程相关信息
交互键:
M:根据当前内存的大小降序查看系统进程相关的信息
P:根据cpu使用率大小降序显示进程信息
q:退出top命令 或者按ctrl+c
top
4.4关闭进程--kill
命令:kill -9 进程号(强制关闭对应进程)
进程号可通过ps和netstat命令查看(那个PID就是进程号)
这个俺就不掩饰啦哈哈
4.5查看监听端口--netsat
命令:netstat [-anptu]
说明:netstat可以查看当前系统网络状态和对应软件使用的端口
选项:
-a:显示所有已打开的端口
-p:显示对应进程的id(这个也可以显示进程号6的哇)
-n:用数字显示对应端口,不用别名显示
-t:显示所有tcp协议端口
-u:显示所有udp协议端口
(滴滴,这个东东可以和管道符一起使用喔)
netstat -anp |grep mysql
4.6查看监听指定端口--lsof
命令:lsof -i:端口号
说明:这话lsof其实是一个工具,用来列出当前系统打开文件的工具,可以查看系统中正在使用端口号的详细信息
lsof -i :不给条件,就是默认显示已打开进程的所有信息
:只查看端口号为3306的进程信息
(我们在启动一个程序的时候,有时候就会出现端口号被占用的情况,我们可以通过这个命令查看我们要启动程序的端口号的使用信息)
lsof -i:3306
4.7查看日志信息--tail
命令:head 文件明
说明:
默认显示日志文件前10行内容
head -20 文件名:显示日志文件前20行内容
命令: tail 文件名
说明:
默认显示日志文件后10行内容
tail -20 文件名:显示日志文件后20行内容
tail -f 文件名:实时显示日志信息
(然后就是我们的老朋友管道符加grep啦,我就说grep很常用喽哈哈)
tail -f 文件名 | grep 关键字:实时显示日志信息并只显示含关键字的日志信息
找一个日志文件,从根目录开始找
find / -name *.log
有好多日志文件,然后我们用tail命令随便找一个进去看一看就行啦
(要是用项目的话,就找到项目日志文件然后在浏览器打开项目进行操作,在linux里面查看实时日志)
5、用户限权和管理
5.1限权的基本概念
Linux系统文件和目录的限权有以下几种:
5.2查看文件和目录限权
ls -l
5.3修改文件限权
两种方法,一种数字法,一种字母法
数字法:
命令:chmod 777 文件名
解释:这三个数字分别表示的是拥有者/用户组限权/其他用户限权(7代表4+2+1就是全部限权)
有一个表对照表
字母法:
命令:chmod u[+-=][rwx] , g[+-=][rwx] , o[+-=][rwx] 文件名
说明:
u:拥有者
g:组
o:其他
+:添加限权
-:减少限权
=:等于设置的限权
举个例子:
给file.txt这个文件的限权设置为:拥有者全部限权、组读和执行限权、其他只读限权
chmod u=rwx,g=rx,o=r file.txt
5.4查看登录用户、切换用户
查看登录用户:who
选项:
-q或 --count:只显示用户的登录账号和登录用户数量
-u或 --heading:显示列标题
who
whoami
5.5切换用户、设置用户密码
切换用户:su - 或 su 用户名
说明:
su -:切换到root用户
su 用户名:切换到指定用户
(滴滴,普通用户切换其他用户是要输入用户名和密码的哦)
设置密码:passwd 货 passwd 用户名
说明:
passwd:设置当前用户密码
passwd 用户名:设置指定用户密码(只用root有这个权限)
5.6退出登录账户
命令:exit
说明:
如果是图形界面,退出当前终端
如果是ssh远程登录,退出登录账户
如果切换过用户,则退出返回上一个用户
(就是一层一层套娃,推到最后一个用户就退出登录了)
6.其他命令
6.1查看文件命令
命令:find 路径 -name 文件名
说明:
/ 表示直接从根目录开始搜索,这是用于完全不知道文件在naer
路径省略不写默认当前路径
文件名可以用通配符表示、
find / -name *.txt
6.2软连接--ln
命令:ln -s 源文件 链接文件
说明:
软连接只是只向源文件的一个链接,就是跟快捷方式一样
源文件要使用绝对路径,这样一定链接文件后,仍然可以使用
软连接可以连接目录
6.3压缩/解压(gzip)
命令:
压缩文件:tar -zcvf 压缩文件名.tar.gz 被压缩的文件/路径(这个压缩文件名是自己起的)
解压:tar -zxvf 压缩文件名.tar.gz
解压到指定目录:tar -zxvf 压缩文件名.tar.gz -C 目标路径(大写的C)
说明:tar(打包)和gzip(压缩)命令结合使用 实现文件打包、压缩、解压,压缩后文件名后缀为xxx.tar.gz
tar -zcvf file.tar.gz file.txt
![](https://i-blog.csdnimg.cn/blog_migrate/b6c429442a2ff63f4feb6f6519fa41a8.png)
我们把file.txt删掉,再解压看看有没有解压成功
rm file.txt
ls
tar -zxvf file.tar.gz
6.4压缩解压--zip
命令:
压缩:zip [r] 压缩文件名 被压缩文件
解压:unzip [d] 解压后的目录 压缩文件.zip(在当前目录可简写成unzip 压缩文件.zip)
说明:
zip压缩的时候是不用指定文件后缀的
(这个命令比较简单就不演示了)
终于说完了,虽然说得没有那么完整呜呜呜QAQ!
之后会继续优化滴!