文章目录
一、Linux基础
1. 为什么要学习Linux?
- 对于绝大多数的企业来说,服务器一般安装在linux上
- 现在主流的云计算包括大数据,等等都是默认支持linux系统
- 面试岗位需求
2. Linux学习方法
- 1.C语言可以当做是一门技能,大量的练习,但是Linux绝大部分的内容是需要理解,一般练习也就是
基础命令的练习 - 2.学习方法:理解记忆+看书 (上课理解,下课巩固+扩展),这样子可能学习效率更高
二、Linux历史介绍
linux(类unix系统):多用户多任务的操作系统
unix系统:贝尔实验室1969年开发,unix7系统时候,发现unix的商业价值,就开始收回授权,最终在1982年发布了第一个完全商业版本unix system 3
芬兰的一个教授因为unix的版权原因,就准备开发一个类unix 的操作系统,Minix(微型unix系统),主要是用来教学和教育机构。
linus(林纳斯·托瓦兹),学习Minix源代码,半年后,开发一个linux内核(最初的版本)。
GNU,革奴计划:理查德斯托曼,致力于开发一个完全免费,自由,开源的并且兼容unix系统的操作系统GNU,但是这个计划发展了10来年,唯独缺少一个内核,当然这个计划有内核,叫hurd(只不过,一直在开发中)刚好GNU缺少内核,Linux缺少配套工具,刚好合在一起就是一个完整的操作系统,所以有人认为linux应该叫做GNU/Linux
GPL协议:理查德斯托曼在89年和一群律师一起起草了 一份协议,这个协议规定linux 的派生版本必须也免费
linux的优点(公司,开发人员为什么选择LINUX)
三、Linux简介
1. Linux和window系统有什么区别?
- Linux系统开源,Window不开源
- Linux主要应用于服务器上,Window主要应用于个人电脑
- Linux主要用命令行操作,Window主要用图形化操作界面
- Linux免费,window免费
- Linux是多用户系统,Window是单用户系统
2. Linux的内核版本和发行版本
Linux内核版本:www.kernel.org
2.1 查看自己的内核版本号
2.2 linux的发行版本
- 1.红帽子公司 全球最大的开源技术厂商,提供非常广泛的linux套件,提供全球技术支持(收费)。
有企业版(RHEL),有社区版本(centos),还有一个桌面版本(Fedora) - 2.debian公司
企业版本(debian) 社区版本(ubuntu)
ubuntu系统一款基于debian派生出来的一个产品,对最新的软件兼容性很好,大多数认为ubuntu和fedora系统都是非常好的linux系统
优点:
- ubuntu系统广泛应用于电脑,服务器,物联网,云…
- 既适合家庭使用环境,也适合商业环境
- ubuntu系统拥有良好的安装及操作系统
- ubuntu系统承诺免费(没有技术支持)
3.桌面介绍
3.1开关机(尽可能通过这里)
3.2 终端的打开
- 在桌面上通过鼠标右边可以打开这个终端
- ctrl+alt+t
3.3 怎么控制终端的大小
扩大 | ctrl shift ‘+’ |
---|---|
缩小 | ctrl ‘-’ |
进入管理员权限 | sudo su |
退出管理员权限 | ex |
四、Linux目录结构
window:将存储空间分为多个盘符:C,D,E,F。。。。
linux:只有一个根目录,倒立的属性结构,所有文件都是从根目录开始向下存储
1. linux的文件目录结构图
2. 常用目录介绍:
/bin | 存放常用的命令(二进制可执行程序)(重点) |
---|---|
/boot | 存放系统内核及启动相关的文件,类似于window里面的C盘,很重要,一般不会让别的人去挤压它的存储空间(重点) |
/dev | 存放我们的设备文件(重点) |
/etc | 存放系统配置文件(重点) |
/home | 家目录(所有普通用户的家目录) |
/lib | 存放库文件 |
/proc | 存放虚拟文件系统目录,保存进程在内存中的信息(重点) |
/usr | 存放系统应用文档和程序 例如QQ微信(重点) |
/var | 存放系统运行中经常修改的文件,例如系统日志 |
/root | 存放管理员的家目录 |
/mnt | 临时挂载点 |
/tmp | 存放临时文件,所有用户都可以访问 |
3. 绝对路径和相对路径的区别
绝对路径:就是从系统根目录开始向下遍历到指定位置(文件)的路径,中途用’/'隔开
- 假设以绝对路径表示20220406这个目录里的main可执行程
序:/home/stu/Desktop/SWAP/20220406/main - 假设以绝对路径表示用户stu的桌面的位置:/home/stu/Desktop
相对路径:就是从当前位置开始到执行位置的相对路径
- 假设以相对路径表示的20220406这个目录里的main可执行程序(当前就在20220406这个目录
里):./main - “.”:代表当前目录
- “…”:代表当前位置上一层目录
- 例如:./main 代表当前目录下的main文件
五、系统文件类型和文件权限
1. 文件类型
Linux上有一句话:一切皆文件
既然一切都可以看做文件,那么文件分为几种类型:
普通文件 | “-” |
---|---|
目录文件 | “d” (directory) |
管道文件 | “p” (piping) |
链接文件 | “l” (link) |
设备文件 | (块设备 ”b“ (block), 字符设备 ”c“ (char)) |
套接字文件 | “s” (socket) |
分别解释:
- 普通文件
- 目录文件
- 管道文件:进程间通讯的一种手段
- 链接文件:类似windows上的快捷方式(软链接),这里需要区分软链接(符号链接)和硬链接的
区别
- 设备文件(块设备):是指可以从这个设备的任意位置读取任意长度的信息,例如磁盘,U盘,
sd,tf卡 - 设备文件(字符设备):是指只能一个字节一个字节的读写的设备,不能随机读取,读取数据需要
按照先后顺序进行,字符设备是面向流的设备,例如鼠标,键盘等 - 套接字文件:用于网络通讯使用
linux上不以我们文件的后缀名去区分文件类型,linux一般还是写后缀名,主不过这个后缀名是帮助用户选择对应的解析器使用的。
查看命令:ls -l
2. 文件权限的分类
符号 | 权限 | 值 |
---|---|---|
r | 读权限 read | 4 |
w | 写权限 write | 2 |
x | 执行权限 execute | 1 |
- | 无权限 | 0 |
例如:
u | 表示文件属主的访问权限 |
---|---|
g | 表示文件同组成员的访问权限 |
o | 表示其他用户的访问权限 |
3. 修改文件权限
这里用两种文件权限的修改方法:
- 文字设定法
- 数字设定法
- 修改权限命令:chmod
3.1 文字设定法
u | 表示属主(user) |
---|---|
g | 表示属组(group) |
o | 表示其他人(other) |
a | 表示所有人(all) |
+ | 表示增加权限 |
- | 表现减少权限 |
= | 表示直接赋值权限 |
注意:如果需要对属主,属组,其他人同时进行不同的权限修改,用逗号隔开即可
例如:当前文件的权限如下
举例1:对于这个可执行文件main,的其他成员other,添加一个w写权限:
举例2:对于这个可执行文件main,的属主成员user,减少一个执行权限x:
举例3:对于这个可执行文件main,的所有成员all,都没有任何权限:
举例4:对于这个可执行文件main,的权限修改为rwxrwxr-x:
3.2 数字设定法
采用数字设定法时,权限通常由3个数字组成,每一个数字都代表一个角色的权限,每个角色的数字值由所具有的权限决定:
r | 读权限 | 4 | (100) |
---|---|---|---|
w | 写权限 | 2 | (010) |
x | 执行权限 | 1 | (001) |
- | 没有权限 | 0 | (000) |
例如:
- rwxrwxr-x: 775
- r-xr-xr–:554
- 修改权限的格式如下:chmod XXX filename(0<= X <=7)
例如:当前文件的权限如下:
举例1:将main权限通过数字设定法修改为r-x–x-w-:
举例2:将main权限通过数字设定法修改为rwxrwxr-x:
五、常用命令
1. 基础命令
1.1 pwd
显示当前位置的绝对路径,示例如下:
1.2 cd
切换目录,cd 后边加的参数 代表需要切换到的目的地,可以使用绝对路径或者相对路径,示例如下:
- “.” 通过“cd .” 回到当前位置
- “…” 通过“cd …” 回到当前目录的上一层位置
- “-” 通过“cd -”回到上一次所在目录
- “~” 通过“cd ~”回到当前用户的家目录
示例如下:
1.3 ls
显示当前目录中的所有文件,示例如下:
1.4 man
帮助手册,用于查看命令,系统调用,库函数等帮助信息,示例如下:
例如:
- 查看命令:man printf
- 查询库函数:man fopen
- 查询系统调用: man open
- 查看命令: man 1 ls
1.5 touch
用于创建普通文件,示例如下:
1.6 mkdir
创建目录文件,示例如下:
1.7 rmdir
删除空目录,不能删除非空目录,示例如下:
1.8 rm
删除文件,删除非空目录事,加-r 参数即可,示例如下:
rmdir | 只能删除空目录 |
---|---|
rm | 删除文件 |
rm -r | 删除空目录和非空目录都可以(普通文件也可以) |
注意:rm -r 非常危险,不会警告,直接会将整个目录递归删除掉。
1.9 cp
拷贝文件,拷贝目录文件加参数 “-r”,示例如下:
举例
- cp -r dir1 dir2:第一次执行, dir2不存在,系统将dir2当成名字处理,则将dir1拷贝一份起名dir2
- cp -r dir1 dir2:第二次执行, dir2存在,系统将dir2当成目录处理,将将dir1拷贝一份放到dir2里面
注意:如果拷贝普通文件时,目的路径下已经有一个和源文件同名的文件,则拷贝时,会将目的地的同名文件覆盖掉,windows上会警告提醒,到底是覆盖掉还是跳过,但是linux上不会提醒,直接覆盖掉。(Linux系统开发人员默认已经非常了解这个命令了)
示例如下
1.9 mv
1.9.1:剪切(移动)文件,示例如下:
1.9.2:文件重命名,示例如下:
1.10 find
在目录树中搜索指定的文件,也可以指定开始的搜索位置,示例如下:
1.11 grep
在文件中过滤出包含指定字符串的行,示例如下:
- grep -c 只显示个数
- grep -v 取反,将查找的数据之外的数据展示出来
1.12 管道 |
将上一个命令的输出数据 作为 下一个命令的输入数据,示例如下:
1.13 wc
统计文件中的单词个数(-w),字符个数(-c),行数(-l),示例如下:
1.14 sudo
su username | 切换用户 username 不写的话,默认切换root |
---|---|
sudo | 暂借root权限执行这一行命令 |
sudo su username | 切换用户 username 不写的话,默认切换root |
1.15 关机和重启
1.15.1 关机
shutdown -h now | //立刻关机 |
---|---|
halt | //立刻关机 |
init 0 | //立刻关机 |
1.15.2
shutdown -r now | //立刻重启 |
---|---|
reboot | //立刻重启 |
init 6 | //立刻重启 |
//系统运行等级的查看 runleve
0 | 关机 |
---|---|
1 | 单用户模式 |
2 | 多用户无网络模式 |
3 | 完全的多用户 文本界面模式 |
4 | 未定义或者自定义模式 |
5 | 图形化界面模式 |
6 | 重启 |
init 3 | 这个模式就是工作中服务器用的模式 |
2.打包,解包,压缩,解压命令
2.1: tar 将文件打包,或者解包
参数介绍:
c | 创建包文件 |
---|---|
f | 指定目标是一个文件而不是设备 |
v | 显示详细过程 |
t | 显示包中的内容,但是不释放(解包) |
x | 释放包中的内容 |
z | GNU版本添加,使得tar具有压缩和解压的功能 |
2.1.1 tar打包:
2.1.2 tar解包::
2.2 gzip 对文件进行压缩或者解压
2.2.1 gzip对文件进行压缩
- 压缩之后的包,和压缩之前相比,大小变化很大
2.2.2 gzip对压缩文件进行解压
d 解压缩
2.2.3 通过tar命令对压缩文件进行一步解压
tar zxvf mytar.tar.gz
2.2.4 通过tar命令对多个文件进行一步压缩
tar zcvf my.tar.tar.gz A.txt B.txt dir1