课程传送门:003_韩顺平Linux_概述_哔哩哔哩_bilibili
Linux 内核下载地址:https://kernel.org/
发行版本
linux内核一样,个别发行版本不一样:
- 乌班图
- 红帽
- Centos
VM和Centos
学习Linux需要一个环境,需要创建一个虚拟机,然后在虚拟机上安装一个Centos系统来学习
- 先安装virtual machine
- 再安装linux Centos

网络连接的三种方式
桥接模式:虚拟系统可以和外部系统相互通讯,但是容易造成ip冲突
NAT模式:网络地址转换模式,虚拟系统可以和外部系统通讯,而且不造成IP冲突
主机模式:独立系统,不与外界发生通讯
Linux目录结构
linux的文件系统是采用及层式的树状目录结构,在此结构的最上层是根目录"/",然后在此目录下再创建其他目录
linux会把硬件映射成为一个文件来管理,在linux世界里,一切皆文件
- 目录树如下:
- / 根目录
- root root用户(系统管理员)的目录
- home 存放普通用户的主目录,在linux中每个用户都有自己的目录,一般该目录名是由用户的账号命名
- bin 存放着最经常使用的指令
- etc 配置文件,环境设置文件
- usr 用户的很多应用程序都和文件都是放在此目录下
- local 给主机额外安装软件所安装的目录
- boot 存放的是启动linux时使用的一些核心文件,包括一些连接文件和镜像文件
- lib 系统开机所需要最基本的动态连接共享库,几乎所有的应用程序都需要用到这些共享库
- proc 【不能动】是一个虚拟目录,是系统内存的映射,访问此目录获取系统信息
- srv 【不能动】service的缩写,存放一些服务启动之后需要提取的数据
- sys 【不能动】系统文件
- temp 存放一些临时文件
- lost+found 一般情况下为空目录,当系统非法关机后,就会存放一些文件
- dev 类似设备管理器,所有的硬件用文件的形式储存
- media 自动识别一些设备,U盘等,识别后,会把设备挂载到此目录下
- mnt 临时挂在别的文件系统
- opt 约定俗成,给主机额外安装软件所存放的目录
- var 目录存放不断扩充着的东西,经常被修改的目录,日志文件等
- selinux 是一种安全的子系统
linux远程登录和远程文件传输
公司开发时,具体运用场景:
- linux服务器是开发小组共享
- 正式上线的项目是运行在公网
- 因此程序员需要远程登录到linux进行项目管理或者开发
- 远程登录客户端有Xshell- 登录,Xftp6 - 上传下载
vi和vim
Linux系统会内置vi文本编辑器,类似于记事本.txt
- vi : 查看编辑文件命令
- vim : 是vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计,代码补完,编译以及错误跳转等方便编程的功能
vi的模式
正常模式:可以查看,删除内容,无法输入内容
编辑模式:可以查看,删除,输入内容
命令行模式:可以 :wq 保存退出文件, :q 退出文件 或 :q! 强制退出不保存文件
快捷键
正常模式,从光标开始计算:
- yy ,拷贝当前行,5yy 拷贝当前行往下计算5行 ,p 根据光标位置粘贴行
- dd , 删除当前行,5dd 删除当前行往下计算5行
- G , 定位到文件最后一行; gg 定位到文件首行
- u , 撤销操作,当输入了不必要的字符,粘贴错误,可以按u撤销
- number + Shift +g , 快速定位到number行
命令行模式
- 在命令行中输入 关键字 并回车,即可以查找文本的关键字,输入n 查找下一个
- set nu ,设置文件行号 ; set nonu ,取消设置行号
关机,重启,登录注销命令
关机,重启
双重保险:无论是关机还是重启,都要先执行sync!
- shutdown -h now ,立刻进行关机
- shutdown -h 1 ,1分钟后关机
- shutdown -r now ,重新启动
- halt , 关机
- reboot ,重新启动
- sync ,内存数据同步到磁盘
登录注销
- 登录时尽量少用root 账号,因为是管理员,最大权限,
- 可以普通用户登录后使用su - 用户名 命令切换用户身份
- su - root 切换管理员身份
- 在提示符下输入logout即可注销(退出)当前用户
- 退出终端 exit
用户管理
linux是多用户多任务的操作系统,任何一个要使用系统资源的用户,都需要想系统管理员申请一个身份,然后以这个账号的身份进入系统
用户增删改查
添加用户:
- useradd 用户名 ,增加一个用户,默认家目录
- useradd -d 目录,增加一个用户,指定家目录
指定,修改密码:
- passwd 用户名, 给该用户设置密码,没有填写用户则修改当前账号的密码
删除用户:
- userdel 用户名,删除用户,但保留用户家目录
- userdel -r 用户名,删除用户,并删除用户家目录(慎重使用)
查询用户信息
- id 用户名,显示用户的uid,gid组
- who am i ,显示目前登录到该系统的账号
用户组
系统可以对有共性/权限的多个用户进行统一管理
用户组增删查
新增组:groupadd 组名
删除组:groupdel 组名
组和角色
增加用户时加上组:useradd -g 组名 用户名
修改用户的所在组:usermod -g 组名 用户名
用户和组的相关文件
/etc/pwasswd文件:
- 用户(user)的配置文件,记录用户的各种信息
- 每行的含义: 用户名:口令:用户标识号:组标识号:注释性描述:家目录:登录Shell
/etc/shadow文件:
- 口令的配置文件
- 每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group文件:
- 组的配置文件,记录Linux目前拥有的组的信息
- 每行的含义:组名:口令:组标识号:组内用户列表
运行级别
运行级别说明:
- 0 :关机
- 1 :单用户【找回丢失密码】
- 2 :多用户状态没有网络服务
- 3 :多用户状态有网络服务
- 4 :系统未使用保留给用户
- 5 :图形界面
- 6 :系统重启
init [123456] ,切换不同的运行级别
文件目录管理
目录
查询,切换
- pwd ,显示当前工作目录的绝对路径
- ls ,显示目录下的文件,文件夹
- -a ,显示所有文件和目录,包括隐藏
- -l ,以列表的形式显示信息
- cd 路径, 切换目录
- ~ ,家目录
- / ,根目录
- .. ,上一级目录
创建
- mkdir 目录名 ,创建目录
- -p ,创建多级目录
删除
- rmdir 目录名,删除空目录
- -rf , 删除有内容的目录
文件
创建
- touch 文件名,创建空文件
拷贝
- cp 文件名 目的路径,复制文件到目的目录
- -r ,递归拷贝文件夹,将目录下的所有内容拷贝到目的目录
- \cp -r ,强制覆盖不提醒拷贝
删除
- rm , 移除文件或目录
- -r ,递归删除整个文件夹
- -f ,强制删除不提示
移动
- mv 文件名 新文件名,移动文件或者目录或重命名
- 同目录下 : mv 文件名 新文件名 ,文件重命名
- 不同目录下 : mv 文件名 路径/新文件名,移动文件
查看
- cat 文件名,查看文件内容
- -n , 显示行号
- cat Xxx.txt | more ,分页查看
- | , 管道命令 ,将前面得到的结果交给下一个命令
- more ,全屏分页查看功能
- less 文件名,可以根据需要显示,动态加载,文件较大情况下可以使用,分屏查看文件
- head 文件名, 默认显示显示文件开头前10行部分
- -n number, 选择显示前number行
- tail 文件名,输出文件尾部部分
- -n number ,查看文件最后number行
- -f , 实时追踪文件的更新
输出
- echo 输出内容到控制台
- echo $环境变量
- echo "XXXX"
- > 重定向 ,新增内容覆盖文件
- ls -a > 文件名
- >> 追加 ,文件末尾追加内容
- echo "XXXX" >> 文件名
日期
- date ,显示日期
- +%Y , 显示年份
- date "+%Y-%m-%d %H:%M:%S" ,显示年月日时分秒
- -s , 修改当前系统的时间
- cal ,显示本月日历
查找
- find , 从指定目录递归遍历子目录,将满足条件的文件或目录显示
- -name , 按文件名查找
- -user , 按用户查找
- -size , 按文件大小查找
- grep ,过滤查找
压缩和解压
gzip
- gzip [文件] , 压缩文件,将文件压缩为*.gz文件
- gunzip [文件] , 解压文件
zip
- zip [选项]XXX.zip ,压缩文件和目录
- -r :递归压缩,即压缩目录
- unzip [选项]XXX.zip ,解压缩文件
- -d :解压后文件存放的位置
tar
- tar [选项]XXX.tar.gz ,打包tar.gz文件
- -c , 产生.tar打包文件
- -v , 显示详细信息
- -f , 指定压缩后的文件名
- -z , 打包同时压缩
- -x , 解包.tar文件
管理组和权限管理
在Linux中的每个用户必须属于一个组,不能独立于组外,在Linux中每个文件有所有者,所在组,其他组的概念
所有者 :
- ls -ahl ,查看文件的所有者,所在组
- chown 用户名 文件名 , 修改文件的所有者
- chown -R 用户名 目录名, 目录下的文件递归修改所有者
所在组
- chgrp 组名 文件名 , 修改文件所在组
- chgrp -R 用户名 目录名, 目录下的文件递归修改所有者
其他组
- usermod -g 组名 用户名 , 改变用户所在组
- usermod -d 目录名 用户名 , 改变该用户登录的初始目录
- 特别说明:修改后的用户,需要有进入到新目录的权限
rwx权限
rwx作用到文件
r : read , 可读权限,查看文件内容
w : write , 写入权限,可以修改,注意:删除文件需要用户在此文件所在的目录拥有w权限才能删除
x : execute , 执行权限 ,可以执行文件
rwx作用到目录
r : read ,可查看目录内的文件
w : write , 可以修改目录内容,例:目录内进行创建,删除,重命名目录
x : execute , 可进入该目录,可以cd 进入目录
权限用数字表示
r = 4 , w = 2 , x = 1
内容说明:
-rwxrw-r-- 1 root root 1213 Frb 2 09:39 abc.txt
- 0位 :确定文件类型
- - : 普通文件
- I :连接,相当于window的快捷方式
- d :目录,相当于window的文件夹
- c :字符设备文件,鼠标,硬盘
- b :块设备,硬盘等
- 1-3位 :文件所有者,对该文件的权限
- 4-6位 :文件所属组,对该文件的权限
- 7-9位 :其他非组内用户,对该文件的权限
-rwxrw-r-- 1 root root 1213 Frb 2 09:39 abc.txt
- 1
- 文件:硬连接数
- 目录:子目录/文件总数
-rwxrw-r-- 1 root root 1213 Frb 2 09:39 abc.txt
第一个:文件拥有者
第二个:文件所属组
-rwxrw-r-- 1 root root 1213 Frb 2 09:39 abc.txt
1213 : 文件名
Frb 2 09:39 : 最后修改日期
abc.txt : 文件名
修改文件权限 chmod 指令
u 所有者 , g 所在组 , o其他组
- chmod u=rwx,g=rx,o=x 文件名/目录名
- 给文件所有者读写执行权限,所在组读执行权限,其他组执行权限
- chmod o+w 文件名/目录名
- 为其他组用户增加写入权限
- chmod a-x 文件名/目录名
- 所有用户取消执行权限