Linux操作系统
程序员文章站
2022-06-20 08:38:24
...
Linux操作系统
Linux概述
是一个开源的操作系统
Linux一次代表的是Linux内核
创始人:林纳斯托瓦斯
Linux 两大发行版本
Red hat 一般在服务器上使用
Debian
Linux操作系统安装
虚拟一台电脑
点击 编辑虚拟机设置 , CD/DVD使用iso,选择本机ios地址
网络适配器:
桥接模式:使用和宿主机同一网段地址,同一局域网下可以互相访问
Nat模式:把自己电脑看成路由器,然后只能自己本机和虚拟机通信,或者是多个虚拟机之间
Linux目录结构
/ 根目录,处于Linux文件系统树形结构的顶端,所有的目录、文件、设备都在/下。
/bin Binary的缩写。目录存放经常使用的命令。
/boot 存放的是启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件。
/dev Device(设备)的缩写。该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc 该目录用来存放所有的系统管理所需要的配置文件和子目录。
/home 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib 这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/mnt 在这里面中有四个目录,系统提供这些目录是为了让用户临时挂载别的文件系统的。如:我们可以将光驱挂载在/mnt/cdrom上,然后进入该目录就可以查看光驱里的内容了。
/proc 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
/root 该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/tmp 这个目录是用来存放一些临时文件的。
/usr 这个目录存放了我们常用的程序和文件
常用命令
Linux查看IP地址 : ifconfig
防火墙:
关闭防火墙服务:service iptables stop
打开防火墙服务:service iptables start
永久关闭防火墙:chkconfig iptables off
永久打开防火墙:chkconfig iptables on
目录类操作
查看当前所在路径:pwd
默认root用户登录在root目录下
进入指定目录:cd 目录名/路径
回到上一层目录:cd ..
直接进入根目录:cd /
进入目录的两种写法:
绝对路径:从根目录一层一层往下找
相对路径:相对于当前位置 cd ../同级目录名
ls 查看当前目录有哪些文件或者子目录
ls -a 显示所有文件和目录包括隐藏目录或者文件
ls -la 显示文件或者目录的详细信息(也会展示出隐藏文件的详细信息)
开机关机
立即关闭:shutdown -h now
定时关机:shutdown +5 5分钟后关机
定时关机:shutdown 15:30
注销:logout
重启:reboot
用户管理类
添加用户 useradd 用户名
新建用户会创建以用户名命名的组
-g 指定该用户的主属组,一个用户永远只有一个主属组,创建的时候可以指定,也可以后期修改
-G 指定该用户的附属组,一个用户可以有多个附属组,同时主属组也会添加到附属组
也可以这样写useradd -g 主属组名 -G 附属组名 用户名
添加密码 passwd
passwd 用户名
修改用户 usermod
usermod -g 主属组名 -G 附属组名,附属组名 用户名
修改用户名 usermod
usermod -l 新用户名 旧用户名 [注]只会更改用户名,用户组、家目录、ID等都保持不变
修改家目录
sudo usermod -d /home/新用户名 -m 新用户名
修改组名
groupmod -n 新用户名 旧用户名
修改UID
sudo usermod -u 1000 新用户名
检
id 新用户名
删除用户 userdel
-r 递归删除该用户所以资料和账户信息
-f 强制删除
组的增、删、改
增加组:groupadd
groupadd 组名
删除组:groupdel
groupdel 组名
修改组:groupmod 主要是修改组名
groupmod -n 新组名 旧组名
查看系统有哪些组: cat /etc/group
查看 指定用户 的详细信息:id 指定用户名
查看 指定用户 的组的信息:groups 指定用户名
查询当前登录用户:whoami
文档目录的管理
创建一个文件夹
mkdir 文件名
同时创建多级目录 mkdir -p 文件名1/文件名2/文件名3/...
同时新建两个同级目录 mkdir 文件名1 文件名2
删除一个文件夹 rmdir
rmdir 文件名
[注]rmdir只能删除空目录,目录下如果还有其他字目录,则不能删除
重命名一个文件夹 mv
重命名
如果mv的第二个参数是个文件,则执行重命名的操作
mv 旧名字 新名字
剪切
如果mv的第二个参数是个路径的话,则执行剪切
mv 文件名 /剪切路径
剪切并改名
mv 旧文件名 /剪切路径 新文件名
z.B.当前在home下,但是要把tmp/ky,剪切到opt下
mv /tmp/ky /opt
命令和参数之间必须有空格,参数和后边文件或者路径之间应该有空格
文档操作类
统计 wc
可以统计文件中的字符数、单词数以及行数
wc -w 按照单词数统计
wc -w 文档名
[注]统计数量和系统版本有关系
wc -l 按照行数进行统计
wc -l 文档名
wc -m 根据字符来进行统计
wc -m 文档名
复制拷贝 cp
拷贝文件到其他路径
cp -r 递归拷贝 将源目录下的所有文件夹以及文件夹下的所有文件都复制到目标目录
cp -i 复制文件时会提示,如果复制的目标文件存在,会提示是否覆盖,如果不存在直接复制
z.B.
cp /home/1.txt ./ 将home中的1.txt拷贝到当前目录,使用 ./表示当前目录
删除 rm
r 表示递归删除
f 强制删除,不会询问
rm 本身只是删除文件,删除路径需要添加rf
rm -rf 文档名 强制删除文档
rm -rf / 慎重使用,会删除一切
创建文件
方式一:
touch 文件名
[注]touch创建的是空文件,如果要给里面添加内容,则需要使用vi编辑器
方式二:
vi 文件名
[注]使用vi编辑器创建并打开进行编辑文件,如果创建文件但是不进行编辑,则不会创建成功
vi编辑器
三种模式:
1、命令行模式 ———— 刚进入
2、编辑模式 ———— i 进入编辑模式
3、可视化模式(visual line)———- 可进行复制
esc退出编辑模式 :
w 保存 q 退出
q! 强制退出 wq 保存并退出
wq! 强制保存并退出
esc退出编辑模式 /要搜索的内容
esc退出编辑模式:s/被修改的内容/修改后的内容/g
:s/被修改的数字/修改后的数字
esc退出编辑模式 gg 移动到文件内容的首行
G 移动到文件内容的末尾
vi +5 文件名 指定打开文件时光标移动到第五行
grep查找
通过模式对文件内容进行查找
grep mail /etc/passwd
管道操作符 |
将管道操作符左边命令的输出作为右边命令的输入
z.B.
cat /etc/passwd | grep root
模糊搜索 ^
ls -la | grep ^d 搜索以d开头的字符串
ls -la | gerp ^[^d] 搜索除了以d开头之外的所有内容
grep -c 统计符合结果条件的行数
grep -c "INSERT" agilenone.sql 统计agileone中insert有几行
grep -n 查看行数
grep -n "INSERT" agileone.sql 显示符合样式的行之前标示出该行的列数编号
grep -v 看除了insert之外剩余的内容
grep -v "INSERT" agileone.sql
查看除了ls之外(-v)的行,并显示行号(-n)cat /etc/passwd | grep -v -n ls
区分大小写查找
列出大小写都存在的showtime
grep -i showtime hello
只查看大写/小写的Showtme/showtime
grep Soup/showtime hello
精确查找,例如需要查找483和484这两个数字
grep "48[34]" hello
通配符
grep "I...DB*" agileone.sql 寻找以I开头,以DB结尾的内容,然后中间几个点,代表中间省略几个字母
grep '\" ' agileone.sql 查询内容为双引号,必须加上转义\
sort排序
将文本文件的内容加以排序,默认根据ASCII码表进行排序
sort -n 按数字大小进行排序
sort -n 1.txt
sort -u 去重,并不改变源文件的内容
sort -u -n 1.txt
>> 追加重定向
例如在使用sort排序后,使用重定向功能,重定向到一个新的文件
sort -u -n 1.txt >> num
> 覆盖重定向,源文件内容被覆盖
sort -u -n 2.txt > num
find
在系统中查找具有指定特征的文件或者路径
find -name 根据文件名进行查找
find -name "*.txt" 在当前目录下查找出所有以.txt结尾的文件
find -perm 根据权限进行查找
find -perm 775 在当前目录下查找权限是775的所有文件
find -user 用户名 根据文件拥有者查找
find -nouser 查找没有用户的文件
find -group 组名 按照文件所属组进行查找
find -group test
find -type 根据类型来查找
find -type f
f代表文件
find -type d
d代表路径
不想查找用感叹号 !
find ! -type f 不查找文件f = find -type d
find -exec
find -name "*.txt" -exec rm -rf {} \; 删除后缀名为txt的所有文件
find -name "*.sql" -exec ls -la {} \; 查找文件名后缀以.sql结尾,的文件的详细信息
find -name "*.txt" -exec cp {} /opt \; 复制后缀名为txt的所有文件到opt文件夹
{}用来存放前面find出来的结果
find -ok
用法跟exec完全一致,区别在与会询问你是否执行
文件管理类
cat
显示文本文档的内容
cat -n 显示行号
可以多个文件同时显示
z.B.
cat 1.txt agone
cat -n agileone.sql test.sh
head 从开头开始显示指定行数
head -n agone
tail 从末尾开始显示指定行数
tail -n agone
more 分页显示
more +2 -3 agone 从第二行开始,每次显示三行(+ 从多少行开始;- 每页显示行数)
文件权限设置
一个用户能看到那些文件,完全取决于用户的身份和所属组
文件权限的种类
r读权限
w写权限
x执行权限
z.B.drwxrwxrwt
第一位
d:路径类型 - :文件类型 l : 软连接
第一组:rwx
拥有者的权限
第二组:rwx
文件所属组的权限
第三组:rwx
其他人的权限
chmod
一种根据数字来改变权限 chmod 777
r:4
w:2
x:1
根据角色来修改权限 chmod u + r
u:代表文件所有者
g:文件所属组
o:其他人
a:所有人
+:增加对应的权限
-:去掉对应的权限
chgrp
chgrp root 1.txt 改变文件1.txt的所属组为root
chown
chown tom 文件名 改变文件1.txt的所有者为tom
-R 修改所有文件的权限(R递归)
chmod -R a+rwx *.txt 给所有.txt文档赋予权限
diff (不经常用,比较'鸡肋')
比较两个文件的内容上的差异
例如: diff 1.txt 2.txt
whereis 命令名 定位可执行文件(-b)、源代码文件(-s)、帮助文件(-m)在文件系统中的位置
查找系统二进制文件(-b)的位置 例如:whereis find
查找系统man说明文件(参数-m)的位置
查找系统源代码文件(参数-s)的位置
which 查看可执行文件的位置
在系统的环境变量中查找 which python which cd
alias 给命令 取别名 例如:alias la='ls -a'
unalias 删除别名 例如:unalias la
网络通信
ping 确定网络和各外部主机的状态;跟踪和隔离硬件和软件问题;测试、评估和管理网络 ctrl+c终止
ping [参数] [主机名或IP地址]
ifconfig 查询ip地址
netstat 查询端口使用情况
netstat -ano 例如 netstat -ano(找所有的端口号) | grep 3306
备份压缩
tar
压缩
tar -zcvf 压缩后的文件名.tar.gz 被压缩文件名
tar -zxvf
解压
1、解压到本文件
tar -zxvf 被解压的文件名.tar.gz
2、解压到目标文件
tar -zcvf 被解压的文件名.tar.gz -C /解压到指定路径
f必须是放在最后
v代表解压的时候打印出所有的文件
zip
压缩 安装:yum -y install zip
zip 压缩后的文件名.zip 被压缩文件名
解压 安装:yum -y install unzip
1、解压到本文件
unzip 被解压的文件名.zip
2、解压到指定路径
unzip 被解压的文件名.zip -d /解压到指定路径
进程管理
进程管理的作用
判断服务器健康状态
查看系统中所有进程
杀死进程
查看系统中所有进程: ps -aux
USER:该进程是由哪个用户产生的
PID:进程的ID号
%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源
%MEN:该进程占用物理内存的百分比,占用越高,进程越耗费资源
VSZ:该进程占用虚拟内存的大小,单位KB
RSS:该进程占用实际物理内存的大小,单位KB
TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,
tty7是图形终端。pts/0-256代表虚拟终端
STAT:进程状态。常见的状态有:
R:运行
S:睡眠
T:停止状态
s:包含子进程
+:位于后台
START:该进程的启动时间
TIME:该进程占用CPU的运算时间,注意不是系统时间
COMMAND:产生此进程的命令名
查看系统中所有进程,使用Linux标准命令格式: ps -le(一般不用)
查看系统状态:top
查看可用的进程信息:kill -l
每两秒钟监控一次:vmstat 2
重启进程 : kill -1 进程ID
强制杀死进程: kill -9 进程ID
系统启动级别(一般情况下,不修改启动级别)
0:关机 init 0
1:单用户模式,只允许一个用户登录
2:多用户模式,不支持网络工作
3: 命令行模式,企业服务器开机模式
4:系统预留
5:图形化界面,Linux默认启动级别
6:重启模式,不能设置,否则系统反复重启 init 6
修改启动级别:vim /etc/inittab