Linux笔记 (Linux Notes)
Linux笔记
内容:主要讲解常用命令
2015年12月
时空
Linux概述
Linux的内核版本
38页1.2.5
Linux发行版
目前Linux主要分为两大分支:
Debian
使用dpkg方式安装软件,包括Debian, Ubuntu(Linux Mint)
全球最高份额,deb包非常方便
deb包
sudo dpkg -i 软件包
sudo dpkg -r 软件名
Red Hat
使用RPM方式安装软件,包括Red Hat(CentOS), Fedora, SuSE
只有中国份额较高。因为进入中国比较早,很多人不愿意换
rpm包
开源许可证
45页1.3.3
Linux的安装
开机流程
两种启动方式:BIOS和UEFI
以前:BIOS启动
对应MBR磁盘,MBR分区表
只有4个主分区
现代:UEFI启动
对应GPT磁盘,GUID分区表
无限主分区
Mac默认使用GPT
MBR方式开机流程
72页3.2.4
磁盘分区
初学:在硬盘尾部安装,全部使用逻辑分区
| 挂载点 | 容量 | 格式 |
|---|---|---|
| / | 剩下的空间 | ext4 |
| swap | 与内存大小相同 | swap |
正常:
| 挂载点 | 容量 | 格式 |
|---|---|---|
| /boot | 100M | ext4 |
| / | 相当于系统盘 | ext4 |
| /home | 剩下的空间 | ext4 |
| swap | 与内存大小相同 | swap |
常用命令
X Window热键
X Window与文字模式的切换:[Ctrl] + [Alt] + [F1]~[F6]
重启X Window:Ctrl+Alt+Backspace
基础命令和热键
列出文件
1 | $ ls |
显示日期与时间
1 | $ date |
日历
1 | $ cal |
计算器
1 | $ bc |
热键
Tab命令补齐、文件补齐Ctrl+C停止程序Ctrl+DEOF、离开
在线求助
1 | $ man 要查询的命令 |
超简单文本编辑器:nano
1 | $ nano test.txt |
数据同步写入磁盘
1 | $ sync |
关机
1 | # shutdown -h now |
重启
1 | # reboot |
切断电源(不建议)
1 | # halt |
切换执行等级:init
1 | # init 0 # 关机 |
设置当前用户的密码
1 | $ passwd |
Linux文件操作
Windows中的文件夹在Linux中叫目录。
特殊的目录. 代表此层目录..代表上层目录- 代表前一个工作目录~ 代表当前用户主目录~account 代表account这个用户主目录
目录相关操作
切换目录:cd
1 | $ cd [相对路径或绝对路径] |
显示当前目录:pwd
1 | $ pwd |
新建目录:mkdir
1 | $ mkdir test # 新建一个名为test的目录 |
删除空目录:rmdir
1 | $ rmdir test |
环境变量:$PATH
使用echo显示$PATH
1 | $ echo $PATH |
文件操作命令
查看文件与目录:ls
1 | $ ls |
复制:cp
1 | $ cp 源文件 目标文件 |
删除:rm
1 | $ rm 文件或目录 |
移动、重命名:mv
1 | $ mv 源文件 目标文件 |
文件内容查阅
直接查看一个文件的内容:cat
1 | $ cat test.txt |
反向查看:tac
1 | $ tac test.txt |
添加行号打印:nl
1 | $ nl test.txt |
翻页查看:more
1 | $ more test.txt |
上下翻页查看:less
1 | $ less test.txt |
只看前面几行:head
1 | $ head test.txt # 默认10行 |
只看后面几行:tail
1 | $ tail test.txt |
查看非纯文本文件:od
1 | $ od test.txt |
修改文件时间或创建新文件:touch
1 | $ touch new.txt # 创建一个名为new.txt的文件 |
查看文件类型:file
1 | $ file test.txt # ASCII text |
文件的查找
188页7.5.2
寻找执行文件
1 | $ which ifconfig |
在数据库中寻找特定文件:whereis, locate
1 | $ which test.txt |
扫描硬盘查找:find
1 | $ find [PATH] [option] [action] |
Linux目录配置标准:FHS
152页
| 可分享的(shareable) | 不可分享的(unsharealbe) | |
|---|---|---|
| 不变的(static) | /usr (软件放置处) | /etc (配置文件) |
| /opt (第三方软件) | /boot (开机与内核文件) | |
| 可变动的(variable) | /var/mail(用户邮件信箱) | /var/run (程序相关) |
| /var/spool/news(新闻组) | /var/lock (程序相关) |
Linux的文件权限
用户与用户组
139页6.1
文件所有者,用户组,其他人
root是万能的
查看文件权限
1 | $ ls -al |
文件类型与权限
可读、可写、可执行
1 | -rwxrwxrwx 4 root root 4096 Sep 8 14:06 test.txt |
文件权限 连接数 文件所有者 文件所属用户组 文件大小 修改时间 文件名
文件权限分为文件类型和3组权限
文件类型
d表示目录-表示文件l表示连接文件b表示接口设备c# chgrp root test.txt1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
表示串口设备
- 3组权限
- 第一组:文件所有者的权限
- 第二组:同用户组的权限
- 第三组:其他非本用户组的权限
> 142-144页例题练习
### 改变文件属性与权限
改变所属用户组:chgrp# chown root:root dir1
2
3
改变文件所有者:chown$ chmod 777 test.txt $ chmod 755 test.txt1
2
3
4
5
chown -R 表示递归
改变文件的权限:chmod$ chmod u/g/o/a +/-/= r/w/x 文件或目录 $ chmod u=rwx,go=rx test.txt $ chmod a-x test.txt $ chmod a+w test.txt1
2
3
4
5
6
7
8
9
- `r`:4
- `w`:2
- `x`:1
> 146页例题
符号类型改变权限$ umask #查看 $ umask -S $ umask 002 #设置 $ umask 0221
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
不要随便用chmod的递归
### 目录与文件的权限意义
权限对文件的重要性
- `r`: 可读取
- `w`: 可编辑、新增、修改,不包括删除
- `x`: 可执行
权限对目录的重要性
- `r`: 可读取(可以列出)
- `w`: 可写入
- 新建新的文件与目录
- 删除已经存在的文件与目录
- 重命名
- 转移该目录内的文件、目录位置
- `x`: 可进入
> 148-149页例题
### Linux文件种类
- 普通文件(regular file): `r`
- 目录(directory): `d`
- 连接(link): `l`
- 设备(device)
- 块(block)设备: `b`
- 字符(character)设备文件: `c`
- 套接字(sockets): `s`
- 管道(FIFO, pipe): `p`
### 文件的默认权限与隐藏权限
> 180-181页例题
默认权限:`umask`,在原权限基础上减去权限$ df -h1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
隐藏属性:略(自学)
> 183页7.4.2
> 设置文件的隐藏属性:`chattr`
> 查看文件的隐藏属性:`lsattr`
### 权限相关习题
> 194页情景模拟题
## Linux文件系统
### 磁盘与目录容量
> 210页8.2.1
列出文件系统的整体磁盘使用量:`df`$ du $ du -a # 同时列出文件容量 $ du -sm # s: 只列出总量 m: MB1
2
3
评估文件系统的磁盘使用量:`du`$ ln /etc/crontab . $ ll -i1
2
3
4
5
### 连接文件:ln
hard link(硬链接或实际连接)$ ln -s /etc/crontab crontab2 $ ll -i /etc/crontab ./crontab21
2
3
4
5
6
- 无法做“目录”的链接
- 删掉其中一个,另一个可用
symbolic link(符号连接)$ gzip file $ zcat file.gz $ gzip -d file.gz1
2
3
4
5
6
7
8
9
10
11
12
13
- 相当于Windows的快捷方式,删除源文件会不可用
### 磁盘的分区、格式化、检验与挂载
略(自学)
## 压缩与打包
### 单一文件压缩命令
gzip, zcat$ bzip2 -z file $ bzcat file.bz2 $ bzip2 -d file.bz21
2
3
bzip2, bzcat$ tar -zcvf dir.tar.gz dir $ tar -jcvf dir.tar.bz2 dir $ tar -cvf dir.tar dir1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
### 打包命令:tar
打包同时可以压缩,tar的参数:
`-z`: gzip方式压缩/解压缩
`-j`: bzip2方式压缩/解压缩
`-c`: 新建打包文件
`-x`: 解打包或解压缩
`-v`: 显示过程
`-f`: 跟要被处理的文件名
`-p`: 保留原本权限与属性
打包$ tar -zxvf dir.tar.gz $ tar -jxvf dir.tar.bz2 $ tar -zxvf dir.tar.gz -C /tmp1
2
3
解包# tar -zpcvf etc.tar.gz /etc # tar -jpcvf etc.tar.bz2 /etc1
2
3
备份$ tar -ztvf dir.tar.gz $ tar -jtvf dir.tar.bz21
2
3
查看$ vim 文件名1
2
3
4
5
## vim编辑器
### 进入vim$ vim 新文件名1
2
3
### 新建文档i, I, a, A, o, O1
2
3
4
5
不保存则不生成新文件
### 进入插入模式:set nu :set number :set nonu :set nonumber1
2
3
4
5
6
7
8
9
10
11
12
`i`光标位置插入
`I`行首插入
`o`当前行后插入新行
`O`当前行前插入新行
`a`光标位置后插入
`A`行末尾插入
### 行号
显示行号:set nu :set number :set nonu :set nonumber1
2
3
不显示行号:数字 数字G1
2
3
### 跳转dd 数字dd1
2
3
4
5
最后一行`G`
### 删除行、剪切yy 数字yy1
2
3
### 复制行p1
2
3
### 粘贴Ctrl+v1
2
3
### 块选择set nu1
2
3
4
5
### 预设行号
编辑`~`下的.vimrc文件,写入