Linux基础课堂笔记
前言
Linux基础的笔记
一、Linux的常规操作
1>apt管理软件包的工具
在我们ubuntu,我需要需要安装软件就需要通过两个软件包管理工具
1. dpkg:1>单机安装 --->不需要网络
2>需要事先留有软件安装包
3>不会替用户考虑依赖关系
2.apt: 1>需要通过网络安装
2>自行获取资源安装
3>会提用户考虑依赖关系主要讲apt详解:
安装逻辑:在我们ubuntu18.04当中:源在/etc/apt下
sources.list ---》源文件
1>在更换源之前,需要先备份:
sudo cp sources.list sources.list.bak
2>更换源
打开源文件:sudo vim sources.list
清空里面的内容,把在网络上复制的源,粘贴到里面 并 保存
3>使源生效
sudo apt-get update
apt命令:
install --->安装
update --->更新
remove --->卸载
2>shell命令详解/通配符/标准文件重定向/挂载:
1.shell命令:
ls cd cp touch mkdir mv vi vim..... --->shell2. shell的 ---“贝壳”
Linux中的Shell就是Linux内核的一个外层保护工具,并负责完成用户与内核之间的交互。
3. shell命令的格式:
[命令] [选项] [参数]
--->三个成员各用空格隔开
例如:
ls --->命令
ls -l --->命令 + 选项
ls -l 1.c --->命令 + 选项 + 参数
PS:命令是必须的 选项和参数是可选的
命令行第一个读取的,必定是命令,所以命令是必须的4. 命令行详解:
farsight@ubuntu:~$
farsight:用户名
@ : 分隔符--->隔开两个信息
ubuntu : 主机名
: : 分隔符--->隔开主机名和所在路径
~ :代表当前所在位置
$ : 权限符
$--->普通用户的权限
#--->超级用户的权限
su -->super user
sudo ->super user do5.通配符
什么是通配符
是一种用于匹配文件名字的符号
*.yaml
*:通配符通配符 含义
星号(*) 匹配任意长度的字符串
问号(?) 匹配一个长度的字符
方括号([…]) 匹配其中指定的一个字符
方括号([ - ]) 匹配指定的一个字符范围 a-z 1-9
方括号([^…]) 除了其中指定的字符,均可匹配标准文件和标准文件重定向
什么是标准文件:
是一种开机自启、负责ubuntu系统正常运作的三种文件
1>标准输入 --- 键盘
2>标准输出 --- 屏幕
3>标准错误输出- 屏幕
--->ubuntu开机的时候一起开启
---->流/文件描述符
标准文件重定向 ---->了解
改变输入和输出的方向
输入--->文件,命令行
输出--->屏幕
错误输出->屏幕
正常方向
重定向: 把正常方向修改
> 输出重定向,将输出的结果定向别的地方 ->清空模式
>> 输出重定向,将输出的结果定向别的地方 ->追加模式
< 输入重定向,wc -c < 1.c,将1.c的文本内容输入给wc -c统计
2> 标准错误输出重定向6>挂载操作
什么叫挂载?
就是将外来的文件系统,载入进ubuntu系统中,该操作用于抹除文件系统差异,该操作:挂载
外来文件系统叫挂载项
挂载操作:
1>挂载的地方必须事先存在
2>用于共享文件系统
3>挂载点内原本拥有的文件,将会被隐藏
ubuntu:EXT4
windows:NTFS
--->windows的目录或者文件,就需要通过挂载操作才可以
在ubuntu中使用 --->U盘把一个U盘,挂载进ubuntu中
在 ubuntu用--->cat /proc/partitions --->检查设备
major minor #blocks name
8 0 104857600 sda
8 1 104855552 sda1
sd*X:
sda:第一磁盘
sda1:第一磁盘的第一分区
sdb3:
sdb:第二磁盘
sdb3:第二磁盘的第三分区开始操作: 准备工作:U盘
挂载命令:mount
1>将U盘插入主机后,弹出页面选择连接至虚拟机
2>再次查看设备cat /proc/partitions
8 16 30720000 sdb
8 17 30719984 sdb1
---->多出来的磁盘
3>我们建立好挂载点
/mnt/myusb
4>开始操作
sudo mount /dev/sdb1 /mnt/myusb
>>>>>>
5>卸载操作
umount
sudo umount /mnt/myusb
3>ubuntu的常用命令
ls – 列出当前目录下的文件和文件夹
cd – 切换当前工作目录。
cp – 复制文件或目录。
rm — 删除操作 rm 删掉的东西完完全没办法恢复的
touch – 创建一个空文件
mkdir – 创建一个新的目录
chmod – 修改文件或目录的权限
man – 查看命令的帮助文档
mv – 移动文件或目录。
4>用户管理和进程管理
(1)>用户管理:
1.源于我们系统中多用户机制:一个系统可以容纳多个用户
2.多个用户存在的目的是什么:是为了利用权限区分对文件的操作
3.用来一机多用的同时,尽可能的保护各个用户的文件安全1>修改密码:-----------****别乱用
passwd 用户名
:密码太简单不行,密码比上一次相似不行
2>添加用户:adduser
用法:adduser 用户名
新添加用户:无法执行sudo命令 -->没有sudo权限
为什么farisight
--->farsight --->由系统创建
--->tonly --->由用户创建
PS:操作:get新用户添加sudo权限
在ubuntu中,管理用户的组件一共有三个
/etc/sudoers --->权限
/etc/passwd --->密码
/etc/shadow --->信息
操作: ----》需要格外注意,如果要玩这个操作,记得快照,不快照
1>sudo vim /etc/sudoers
2>打开文件发现第20行:
20 root ALL=(ALL:ALL) ALL //超级用户的权限位置
3>复制第20行,粘贴在第21行
用户名 ALL=(ALL:ALL) ALL
3>把tonly做掉 --->删除用户:userdel
(2)> 进程管理---->应用层:多进程线程
进程:程序执行的过程:进程
程序:你写的程序,是静态的
查看我们系统中的进程:
ps -aux :静态查看进程
top :动态查看进程
kill:发送信号给进程
-9:杀死:无法被任何事件阻塞
-2:终止:ctrl + c
5>文件系统详解和文件压缩与解压
1>文件系统详解:
ubuntu的文件系统:EXT4
特点:
1>分离式存储 --->了解
2>用缓冲区隔开各个组件的输入和输出
缓冲区: ---->IO编程第一天:标准IO
硬件和输入输出的响应速度不同
在两者之间加入缓冲区,可以让两者速度匹配
".1.c.swp":临时缓存文件
出现原因:我们写入23071但是没有保存,也就没有写入到文件
而是留在了缓冲区,遇到异常退出时,系统会自动
保留缓冲区的数据,并在你下一次访问在文件时提示你删除:sudo rm .1.c.swp
3>文件信息详解
我们要查看文件的详细:ls -l
-rw-rw-r-- 1 farsight farsight 126 Jul 27 1:31 1.c
类型与权限 硬链接数 文件拥有者 文件所属组 文件大小 文件最后修改时间 文件名
文件类型与权限:
-rw-rw-r--
10为一体:
1+3+3+3
1:文件类型
3: 文件拥有者权限
3: 文件所属组权限
3: 其他用户的权限1: 就看第一位
-:普通文件
d:目录
c:字符设备
l:软链接
s:套接字文件--->网络编程
p:管道文件 --->多进程线程
3+3+3:权限位:由系统决定
rw- rw- r--
八进制: 0 6 6 4
二进制: 110 110 100
--->标志位保存 --->32位 前16废物位 后16标志位
修改权限:chmod 八进制 文件名umask:
0002 --->掩码
0777-0002=0775
0666-0002=0664
权限掩码:权限阉割码
用来保护创建文件时使文件权限过大而被修改的保护手段
创建目录的权限:0777 - 掩码权限 =0775
创建文件的权限: 0666 - 掩码权限 =06642>文件压缩与解压
压缩:将文件压缩使其大小比原大小 要小 -->便于网络传输
文件格式变成压缩包格式 -->传输时不易损坏
下载和传输:网络波动的 -->文件传输的完整性
解压:将压缩包还原成完整文件 恢复 大小
ubuntu的压缩和解压工具有哪些?
1>压缩:gzip 解压:gunzip 后缀:.gz
2>压缩:bzip2 解压:bunzip2 后缀:.bz2
3>压缩:zip 解压:unzip 后缀:.zip
4>神中神工具:tar -->集归档、压缩、解压为一身全能
1>gzip的压缩与解压过程 -->只能操作一个对象,且操作的是本体
压缩:
farsight@ubuntu:~/test1$ gzip 1.c
farsight@ubuntu:~/test1$ ls
1.c.gz 2.c 3.c
解压:
farsight@ubuntu:~/test1$ gunzip 1.c.gz
farsight@ubuntu:~/test1$ ls
1.c 2.c 3.c
2>bzip2的压缩与解压过程
压缩:
farsight@ubuntu:~/test1$ bzip2 1.c
farsight@ubuntu:~/test1$ ls
1.c.bz2 2.c 3.c
解压:
farsight@ubuntu:~/test1$ bunzip2 1.c.bz2
farsight@ubuntu:~/test1$ ls
1.c 2.c 3.c
3>zip的压缩和解压过程 //有所不同将一个文件或多个文件压缩成单一的压缩文件。
用法:自定义压缩包名字
zip [选项] 压缩包名字 压缩文件名
压缩:
farsight@ubuntu:~/test1$ zip 123.zip 1.c 2.c 3.c
adding: 1.c (stored 0%)
adding: 2.c (stored 0%)
adding: 3.c (stored 0%)
farsight@ubuntu:~/test1$ ls
123.zip 1.c 2.c 3.c
解压:
farsight@ubuntu:~/test1$ ls
123.zip
farsight@ubuntu:~/test1$ unzip 123.zip
Archive: 123.zip
extracting: 1.c
extracting: 2.c
extracting: 3.c
farsight@ubuntu:~/test1$ ls
123.zip 1.c 2.c 3.c
4>tar
tar [ -t | -x | -u | -c | -v | -f | -j | -z ] tarfile filelist
选项 描述
-t 显示归档文件中的内容
-x 释放归档文件
-u 更新归档文件
-c 创建一个新的归档文件
-v 显示归档和释放的过程信息
-f 用户指定归档文件的文件名,否则使用默认名称
-j 由tar生成归档,然后由bzip2压缩
-z 由tar生成归档,然后由gzip压缩
具体用法:
压缩:
tar -zcvf hello.gz 1.c 2.c 3.c
tar -jcvf hello.bz2 1.c 2.c 3.c
解压:通用:
tar -xvf hello.gz
tar -xvf hello.bz2