Linux学习笔记(1)
一、安装
Linux中一切皆文件。
1.磁盘分区
- 一个硬盘最多有4个主分区(1-4),其中可以将其中的一个主分区变为扩展分区(最多一个),扩展分区可在分为多个逻辑分区(编号一定从5开始,1-4必须被主分区和逻辑分区使用)。
2.挂载
必须分区
- /(根分区)
- swap分区(交换分区,内存2倍,不超过2GB)
推荐分区
- / boot(启动分区,200MB)
- /boot /home均属于/(根目录)的子目录,但在硬盘上有各自独立的存储空间。
- Linux中用目录作为盘符,称为挂载点。
二、Linux常用命令
目录
- 家目录(~):超级用户(/root) 普通用户(/home/user)
命令格式
-
命令 [选项] [参数]
注意:个别命令使用不遵循此格式。 当有多个选项时,可以写在一起简化选项 -a等于–all -
ls [选项] 【文件或目录】
选项:-a 显示所有文件,包括隐藏文件
-l 显示详细信息
-d 查看目录属性
-h 人性化显示文本大小
-i 显示inode文件类型(-文件 d目录 l软链接文件)
目录处理命令和文件处理命令
1.建立目录
- mkdir -p [目录名]
-p递归创建
2.切换目录
- cd [目录]
- 简化操作
cd ~ (cd) 进入当前用户的家目录
cd - 进入上次所在目录
cd … 进入上一级目录
cd . 进入当前目录
3.显示当前工作目录
- pwd
4.删除空目录
- rmdir [目录名]
- rm -rf [文件或目录名]
强制删除目录
5.复制命令
- cp [选项] [原文件或目录] [目标目录]
选项:
-r 复制目录
-p 连带文件属性复制
-d 若源文件是链接文件,则复制链接属性
-a 相当于 -pdr
6.剪切或改名命令
- mv [原文件或目录] [目标目录]
7.常用目录的作用
- / 根目录
- bin 命令保存目录(普通用户就可以读取的命令)
根目录下的bin和sbin,us目录下的bin和sbin,这四个目录都是用来保存系统命令的。
区别在于bin普通用户就可执行,sbin超级用户执行的命令。 - /boot 启动目录,启动相关文件
- /dev 设备文件保存目录
- /etc 配置文件保存目录
- /home 普通用户的家目录
- /lib 系统库保存目录
- /mnt 系统挂载目录
空目录,用来挂载磁盘。
- /media 挂载目录
- /root 超级用户的家目录
- tmp 临时目录
- /sbin 命令保存目录(超级用户才能使用的目录)
- /proc 直接写入内存的
proc和sys目录不能直接操作,这两个目录保存的是内存的过载点。
- /sys
- /usr 系统软件资源目录
/usr/bin/ 系统命令(普通用户)
/usr/sbin/ 系统命令(超级用户)
/var 系统相关文档内容
链接命令
- ln -s [原文件] [目标文件]
- 功能描述:生成链接文件
选项: -s 创建软链接
- 硬链接特征:
1、拥有相同的i节点和存储block块,可以看做是同一个文件
2、可通过i节点识别(i节点完全相同)
3、不能跨分区创建
4、不能针对目录使用
5、删除原文件硬链接仍可使用 - 软链接特征:
1、类似Windows快捷方式
2、软链接拥有自己的i节点和Block块,但是数据块中只保存源文件的文件名和i节点号,并没有实际的文件数据
3、lrwxrwxrwx l软链接
软链接文件权限都为rwxrwxrwx
4、修改任意文件,另一个都改变
5、删除原文件,软连接不能使用
6、原文件一定要写绝对路径
- 硬链接特征:
文件搜索命令
- locate 文件名
在后台数据库中按文件名搜索,搜索速度更快- /var/lib/mlocate
#locate命令所搜索的后台数据库(默认一天一更新) - updatedb
更新数据库
- /var/lib/mlocate
- whereis 命令名
#搜索命令所在路径及帮助文档所在位置- 选项:
-b:只查找可执行文件
-m:只查找帮助文件
- 选项:
- which 命令名
#搜索命令所在路径及别名 - PATH环境变量
定义的是系统搜索命令的路径 - find 【搜索范围】 【搜索条件】
#搜索文件- find / -name install.log
#避免大范围搜索,会非常耗费系统资源
find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配Linux中的通配符:
* 匹配任意内容
?匹配任意一个字符
[] 匹配任意一个中括号的字符 - find /root -iname install.log
#不区分大小写 - find /root -user root
#按照所有者搜索 - find /root -nouser
#查找没有所有者的文件 - find /var/log/ -mtime +10
#查找10天前修改的文件-10 10天内修改的文件
10 10天前当天修改的文件
+10 10天前修改的文件
atime 文件访问时间
ctime 改变文件属性时间
mtime 修改文件内容时间 - find . size 25k
#查找当前路径下文件大小是25KB的文件-25k 小于25KB的文件
25k 等于25KB的文件
+25k 大于25KB的文件 - find . -inum 262422
#查找当前路径下i节点是262422的文件 - find /etc -size +20k -a -size -50k
#查找/etc/目录下,大于20KB并且小于50KB的文件-a and(逻辑与)
-o or(逻辑或) - find /etc -size +20k -a -size -50k -exec ls -lh {} ;
#查找/etc/目录下,大于20KB并且小于50KB的文件,并显示详细信息-exec/-ok 命令 {} ; 对搜索结果执行操作
- find / -name install.log
- grep [选项] 字符串 文件名
#在文件当中匹配符合条件的字符串选项:
-i 忽略大小写
-v 排除指定字符串
帮助命令
1.帮助命令man
- man 命令
-
man ls
#查看ls的帮助 -
man的级别
1.查看命令的帮助
2.查看可被内核调用的函数的帮助
3.查看函数和函数库的帮助
4.查看特殊文件的帮助(主要是/dev目录下的文件)
5.查看配置文件的帮助
6.查看游戏的帮助
7.查看其它杂项的帮助
8.查看系统管理员可用命令的帮助
9.查看和内核相关文件的帮助查看命令拥有哪个级别的帮助
man -f 命令
相当于
whatis 命令
例如:man -5 passwd查看和命令相关的所有帮助
man -k 命令
相当于
apropos 命令
-
2.选项帮助
- 命令 --help
#获取命令选项的帮助
例如 ls --help
2.shell内部命令帮助
- help shell内部命令
#获取shell内部命令的帮助
例如-
whereis cd #确定是否是shell内部命令,找不到执行文件就是内部命令
-
help cd #获取内部命令帮助
-
3.详细命令帮助info
- info 命令
-
-回车:进入子帮助页面(带有*号标记)
-
-u:进入上层页面
-
-n:进入下一个帮助小节
-
-p:进入上一个帮助小节
-
-q:退出
-
压缩与解压缩命令
1.常见压缩格式
.zip .gz .bz2 .tar.gz .tar.bz2
2. .zip格式
- zip 压缩文件名 源文件
#压缩文件 - zip -r 压缩文件名 源目录
#压缩目录 - unzip 压缩文件
#解压缩.zip文件
3. .gz格式
- gzip 源文件
#压缩为.gz格式的压缩文件,源文件会消失 - gzip -c 源文件 > 压缩文件
#压缩为.gz格式的压缩文件,源文件保留
例如: gzip -c abc > abc.gz - gzip -r 目录
#压缩目录下所有子文件,但不能压缩目录 - gzip -d 压缩文件
#解压缩文件 - gunzip 压缩文件
#解压缩文件
4. .bz2格式
- bzip2 源文件
#压缩为.bz2格式的压缩文件,源文件会消失 - bzip2 -k 源文件
#压缩为.bz2格式的压缩文件,源文件保留
注意:bzip2命令不能压缩目录
- bzip2 -d 压缩文件
#解压缩为,-k保留压缩文件 - bunzip2 压缩文件
#解压缩为,-k保留压缩文件
4. .tar.gz格式
- tar -cvf 打包文件名 源文件
-
选项: -c: 打包 -v: 显示过程 -f: 指定打包后的文件名
tar -cvf abc.tar abc -
- tar -xvf 打包文件名
-
选项: -x: 解打包
tar -xvf abc.tar -
- tar -zcvf 压缩包名.tar.gz 源文件
-
选项: -z: 压缩为.tar.gz格式
-
- tar -zxvf 压缩包名.tar.gz
-
选项: -x: 解压缩.tar.gz格式
-
5. .bz2格式
- tar -jcvf 压缩包名.tar.bz2 源文件
-
选项: -z: 压缩为.tar.bz2格式
-
- tar -jxvf 压缩包名.tar.bz2
-
选项: -x: 解压缩.tar.bz2格式
-
关机和重启命令
1.shutdown命令
- shutdown [选项] 时间
-
选项: -c:取消前一个关机命令 -h:关机 -r:重启
-
2.其他关机命令
- half
- poweroff
- init 0
3.其他重启命令
-
reboot
-
init 6
系统运行级别
0 关机
1 单用户
2 不完全多用户,不含NFS服务
3 完全多用户
4 未分配
5 图形界面
6 重启cat /etc/inittab #修改系统默认运行级别 id:3:initdefault runlevel #查询系统运行级别
5.退出登录命令
- logout
挂载命令(分配盘符)
1.查询与自动挂载
- mount
#查询系统中已经挂载的设备 - mount -a
#依据配置文件/etc/fstab的内容,自动挂载
2.挂载命令格式
- mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
-
选项: -t文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660等文件系统 -o特殊选项:可以指定挂载的额外选项
-
3.挂载光盘
- mkdir /mnt/cdrom/
#建立挂载点(只要是空目录都可以) - mount -t iso9660 /dev/cdrom /mnt/cdrom/
或mount /dev/sr0 /mnt/cdrom/
#挂载光盘
4.卸载光盘(必须执行,不可省略)
- umount 设备文件名或挂载点
umount /mnt/cdrom
3.挂载U盘
- fdisk -l
#查看U盘设备文件名 - mount -t vfat /dev/sdb1 /mnt/usb/
#挂载U盘
注意:Linux默认是不支持NTFS文件系统的
用户登录查看
- w 用户名
#查看用户登录信息
- who 用户名
#查看用户登录信息
- last
- lastlog
三、Shell基础
Shell概述
1.什么是Shell
2.Shell的分类
脚本执行方式
1.echo输出命令
- echo [选项] [输出内容]
-
选项: -e:支持反斜线控制的字符转换
-
2.第一个脚本
vi hello.sh
#!/bin/bash
#The first program
echo -e "\e[1;34m Hello World! \e[0m"
3.脚本执行
- 赋予执行权限,直接运行
chmod 755 hello.sh
./hello.sh
- 通过Bash调用执行脚本
bash hello.sh
Bash的基本功能
1.命令别名与快捷键
查看与设定别名
- alias
#查看系统中所有的命令别名 - alias 别名 = ‘原命令’
#设定命令别名
别名永久生效与删除别名
- vi ~/.bashrc
#写入环境变量配置文件(对每个用户单独生效) - unalias 别名
#删除别名 - 命令生效顺序
常用快捷键
2.历史命令
- history [选项] [历史命令保存文件]
-
选项: -c:清空历史命令 -w:把缓存的历史命令写入历史命令保存文件~/.bash_history
-
2.输出重定向
- 标准输入输出
- 输出重定向(把本身应该显示在屏幕上的内容写到了文件里)
3.输入重定向(不从键盘输入,而把文件作为输入)
- wc [选项] [文件名]
-
选项: -c:统计字节数 -w:统计单词数 -l:统计行数
-
3.管道符
多命令顺序执行
管道符
- 命令1 | 命令2
#命令1的正确输出作为命令2的操作对象
通配符
Bash中其他特殊符号
注:此笔记为学习慕课网Tony老师《Linux达人养成计划Ⅰ》所记。