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表示接口设备1
c
表示串口设备
3组权限
第一组:文件所有者的权限
第二组:同用户组的权限
第三组:其他非本用户组的权限
142-144页例题练习
改变文件属性与权限
改变所属用户组:chgrp
1 | # chgrp root test.txt |
改变文件所有者:chown
1 | # chown root:root dir |
chown -R 表示递归
改变文件的权限:chmod
1 | $ chmod 777 test.txt |
r:4w:2x:1
146页例题
符号类型改变权限
1 | $ chmod u/g/o/a +/-/= r/w/x 文件或目录 |
不要随便用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,在原权限基础上减去权限
1 | $ umask #查看 |
隐藏属性:略(自学)
183页7.4.2
设置文件的隐藏属性:chattr
查看文件的隐藏属性:lsattr
权限相关习题
194页情景模拟题
Linux文件系统
磁盘与目录容量
210页8.2.1
列出文件系统的整体磁盘使用量:df
1 | $ df -h |
评估文件系统的磁盘使用量:du
1 | $ du |
连接文件:ln
hard link(硬链接或实际连接)
1 | $ ln /etc/crontab . |
- 无法做“目录”的链接
- 删掉其中一个,另一个可用
symbolic link(符号连接)
1 | $ ln -s /etc/crontab crontab2 |
- 相当于Windows的快捷方式,删除源文件会不可用
磁盘的分区、格式化、检验与挂载
略(自学)
压缩与打包
单一文件压缩命令
gzip, zcat
1 | $ gzip file |
bzip2, bzcat
1 | $ bzip2 -z file |
打包命令:tar
打包同时可以压缩,tar的参数:
-z: gzip方式压缩/解压缩-j: bzip2方式压缩/解压缩-c: 新建打包文件-x: 解打包或解压缩-v: 显示过程-f: 跟要被处理的文件名-p: 保留原本权限与属性
打包
1 | $ tar -zcvf dir.tar.gz dir |
解包
1 | $ tar -zxvf dir.tar.gz |
备份
1 | # tar -zpcvf etc.tar.gz /etc |
查看
1 | $ tar -ztvf dir.tar.gz |
vim编辑器
进入vim
1 | $ vim 文件名 |
新建文档
1 | $ vim 新文件名 |
不保存则不生成新文件
进入插入模式
1 | i, I, a, A, o, O |
i光标位置插入I行首插入o当前行后插入新行O当前行前插入新行a光标位置后插入A行末尾插入
行号
显示行号
1 | :set nu |
不显示行号
1 | :set nu |
跳转
1 | :数字 |
最后一行G
删除行、剪切
1 | dd |
复制行
1 | yy |
粘贴
1 | p |
块选择
1 | Ctrl+v |
预设行号
编辑~下的.vimrc文件,写入
1 | set nu |