一、系统分区相关命令:
整个系统分区流程为:硬盘分区---格式化---给分区定义设备名---挂载
分区类型:(取决于硬盘结构,所有系统都要遵守)
主分区:
最多只能有4个。原因是硬盘被分为一个个扇区,一个扇区有512个字节,其中446个字节用于数据记录,其他64个字节用于分区表示,每16个字节表示1个分区,共能分4个主分区。
扩展分区:
将一个主分区作为扩展分区,最多只能有一个,且一个硬盘中主分区+扩展分区最多有4个。不能写入数据,只能包含逻辑分区。
逻辑分区:
理论上可以分为32个逻辑分区。格式化:(写入文件系统)
文件系统名 说明 FAT16 最大支持2GB的分区,目前不再使用。 FAT32 分区大小16T,但单个文件大小不能超过4GB。 NTFS win中最新的文件系统 EXT2、3、4 Linux中使用的文件系统。 格式化时的工作:
a.将分区分为等大小的数据块(block,每个默认4KB)
b.给每个数据块分配文件ID号(I node),设置修改时间,权限,文件保存的数据块的位置、顺序分区设备文件名:给所有分区定义设备文件名(linux专有)
物理设备 设备文件名 IDE硬盘 /dev/hd[a-d] SCSI/SATA/USB硬盘 /dev/sd[a-p] 光驱 /dev/cdrom或/dev/hdc 软盘 /dev/fd[0-1] 打印机(25针) /dev/lp[0-2] 打印机(USB) /dev/usb/lp[0-15] 鼠标 /dev/mouse 1,2,3,4 只能给主分区或扩展分区使用,逻辑分区一定是从5开始的。
举例:
/dev/hda1 第一块硬盘第一分区 IDE接口
/dev/sda1 第一块硬盘第一分区 SCSI、SATA接口(串口)
SATA(串口硬盘)挂载:(分配盘符)
挂载点(目录) === 盘符
/boot /home / 从数据安全性方面考虑,最好给它们分配三个分区,启动、用户数据、系统数据最好分开,不然会出现系统存储数据太多,导致没有足够的空间启动系统来删除,或用户数据太多导致系统崩溃等情况。
系统必须分配的分区:
/ 根分区
swap分区 (交换分区,4G之内为内存的2倍,4G之上等于内存)
(也就是虚拟内存,当内存不够时使用此空间作为内存使用,但因为是临时用硬盘来做内存数据的临时存放,大量的读写会导致系统运行速度下降)
推荐分配的分区:
/boot (启动分区,200MB,保证一直有空余空间,使系统可以启动)
/home 非root用户的家目录
在CLI中涉及到的分区命令fdisk:
命令 说明 fdisk -l 查看硬盘信息 fdisk /dev/sdb 写入硬盘分区表 fdisk只能做MBR分区
磁盘分区与格式化:
- 分区模式之MBR:
主分区不超过4个,单个分区最大2TB - 分区模式之GPT:(不适合X86系统,32位系统)
主分区最多128个,单个分区容量18EB。
(1EB =1024PB,1PB = 1024TB,1TB = 1024GB)
- 分区模式之MBR:
parted 分区工具,既可以分MBR,也可以分GPT,使用过程:
- 切换到目标磁盘: select /dev/sdc
- 指定分区表类型:
mklabel msdos MBR分区表
mklabel gpt GPT分区表 - print查看类型信息
print all - mkpart 新建分区
- mkfs 格式化
mkfs.ext3 /dev/sdb1
mkfs -t ext4 /dev/sdb2 - 挂载:
mkdir -p /mnt/xxx
mount /dev/sdb1 /mnt/xxx //临时挂载,重启失效
umount /mnt/xxx //逆操作
/etc/fstab //增加配置,启动就挂载 增加swap分区:
- 建立一个普通的Linux分区(83)
- 修改分区类型的16进制编码(82)
- 格式化分区
mkswap /dev/sdb6 - 启用交换分区
swapon /dev/sdb6 - 查看:
free - 停止:
swapoff /dev/sdb6
二、Linux命令格式
命令格式与常用命令介绍
命令的基本格式:
#超级用户 $ 普通用户
-简化选项 –完整选项
ls -l后的信息解释:
-rw-r–r–. 1 root root 1207 最后一次修改时间 文件名
第一位表示文件类型:
常用3种: -文件 d目录 |软链接文件
不常用4种(系统的特殊文件):块设备文件、字符设备文件、套接字文件、管道文件(c、b。。。)
之后每3位一组:
u所有者、g所属组、o其他人
r读、w写、x执行
.有ACL权限时变为+
1 引用计数
root 所有者
root 所属组
1207 文件大小,单位字节(-lh K、M)
文件名以“.”开头的文件是隐藏文件
ls -l(longinfo) -d(directory) -h(human) -a(all) -i(inode)
ll:ls -l
目录处理命令
mkdir -p(递归创建) (make directories)
cd (change directory)
cd ~/cd 回到家目录
cd - 返回上一次目录
cd ../.
pwd (print working directory)
Linux常见目录规范:
/bin /sbin /usr/bin /usr/sbin
保存命令文件,bin下所有用户都可以使用,sbin下只有超级用户可以使用。
/boot 启动目录
/dev 硬件文件目录
/etc 系统配置文件目录
/home 普通用户家目录
/root 超级用户家目录
/lib Linux函数库保存目录
/media /mnt /misc 空目录,外接存储设备挂载目录。
/sys /proc 内存的挂载点
/tmp 临时目录
/usr 系统软件资源目录
/var 系统的可变文档目录
文件处理命令
rmdir 删除目录
rm -rf 文件或目录
rm -rf / 这条语句可以执行,但会清空系统中的所有数据,所以使用时需要小心被删除的文件
cp 复制
链接命令
ln:link
硬链接:相同的inode,相同的内存地址,可以看做同一个文件,删除其中一个,另一个还可以使用。
限制:不能跨分区、不能针对目录。
软连接:有自身的inode,自身的内存地址,只是保存的是原文件的i节点信息。删除原文件,链接不可用。完全同window中的快捷方式。
限制:创建软连接时,原文件必须与链接在同一个目录,或者使用绝对路径表示原文件。
三、文件搜索命令
1. 文件搜索命令 —— locate
特点:
1.搜索速度比find快。在/var/lib/mlocate下的数据库中搜索文件,该数据库保存所有文件信息,但一天更新一次,所以找不到最新新建的文件。
2.按配置文件/etc/updatedb.conf中的配置项来进行搜索
配置项 | 功能说明 |
---|---|
PRUNE_BIND_MOUNTS=”yes” | 开启搜索限制 |
PRUNEFS=”“ | 搜索时,不搜索的文件系统 |
PRUNENAMES=”“ | 搜索时,不搜索的文件类型 |
PRUNEPATHS=”“ | 搜索时,不搜索的路径。 |
实例:
locate 文件名 //搜索指定文件名的文件
updatedb //强制更新数据库,即可搜索更新之前新建的文件
locate locate
缺点:只能按文件名来搜索。
2.搜索命令的命令 —— whereis
whereis 命令名 //命令所在位置和“帮助文档”。
(whoamI 用户名,whatis 命令:该命令干什么的)
whereis ls ls命令和帮助文档所在位置,不能查文件
which 命令名 //可以查看命令所在位置和“别名”。
echo $path //查看环境变量
3.强大的文件查找命令 —— find
遍历所有文件,耗费大量资源
注意:
- 避免大范围的搜索,会非常耗费系统资源。
- find命令搜索的目标文件名必须与制定的完全一致,即要求完全匹配,若需要模糊匹配,请使用通配符
格式:
find 搜索范围 [选项] 搜索条件
find / -name sys.log
通配符的使用:
find /root -name "*"
* 匹配任意多个字符
? 匹配任意一个字符
[] 匹配[]中的任意一个字符
find /root -iname XXX //不区分大写匹配
find /root -user root //按照所有者搜索
find /root -nouser //搜索没有所有者的文件(清理垃圾文件)
1.内核产生的文件可能没有所有者,proc、sys文件
2.外来文件(U盘等)
除以上两种,没有所有者的文件就是垃圾文件。
find /var/log/ -mtime +10 //查找10天前修改的文件
mtime 修改文件内容 modify
ctime 改变文件属性 change
atime 文件访问时间 access
-10 10天内修改
10 10天当天修改的文件
+10 10天前修改的文件
find . -size 25k //查找当前目录大小刚好为25K的文件
-25k 小于25k
+25k 大于25k
M 文件大小单位,注意k为小写,M大写。
不加单位,默认为数据块(扇区),且不同于分区时的数据块(4KB),而是扇区(每个扇区为512字节)的数据块。
find . -inum 66666 //按inode搜索。
find /etc -size +20k -a -size -50k -exec ls -lh {} \;
-a 逻辑与
-o 逻辑或
-exec/-ok 命令 {} \; 对搜索结果执行操作。固定格式。
4.文件内容搜索命令 —— grep
grep为包含匹配(正则表达式),搜索某个文件的内容,而非查找某个文件的位置。
grep 字符串 文件名 //在文件中查找包含有指定字符串的行
grep -v 字符串 文件名 //取反,在文件中找不包含的行。
-i 忽略大小写
以下为工作中经常需要使用的一条命令:
find . -type f -exec grep -n hello '{}' ';' -print
//作用:在当前目录下搜索所有含hello字符串的文件,打印找到的行和文件名
find . -type f | grep -n hello
//这条命令的作用为:找到所有文件,打印出文件名或路径含hello的项,效果不同
5.字符统计命令 —— wc 命令
wc 文件名:
统计文件包含多少行(-l),多少个字符,多少个单词
四、查看命令的帮助文档:
man 命令 //进入命令帮助页
/-d 查找-d说明 按n键查看下一个说明。 shift+n查看上一个说明。 man -f 命令 命令所有等级 man 等级 命令 指定等级的命令。 whatis 命令 whereis 命令 man -k 命令 相当于: apropos 命令 帮助文档中,所有与命令相关(含该关键字的)的文件,含配置文件等
help 命令 //获取内部命令
区别: man 获取外部命令 whereis 结果没有执行文件目录,即为内部命令,否则为外部命令 命令 --help
info 命令
进入一个大的帮助文档,操作如下 回车 //在带有*号标记的位置,进入子帮助页面 -u //进入上层页面 -n //进入下一个帮助小结 -p //进入上一个帮助小结 -q //退出
五、压缩与解压缩
常用压缩格式:
.zip .gz .bz2
.tar.gz tar.bz2
1. zip压缩
压缩:
zip 压缩文件名 原文件
zip -r 压缩文件目录
解压缩:
unzip 压缩文件 解压缩
zip文件特点:
可以在windows中解压缩,也可以取windows中的zip文件在linux中解压缩。
2. gz压缩
压缩:
gzip 原文件
压缩为.gz格式的压缩文件,原文件会消失。生成文件名.gz的压缩文件。
.gz为Linux专用格式,但windows中可以解压缩.gz文件。
gzip -c 原文件 将原文件压缩后输出在显示屏上,原文件不消失。
gzip -c 原文件 > xxx.zip 将信息保存到xxx.zip文件
gzip -r 原文件目录 压缩目录下的子文件,但是不压缩目
解压缩:
gzip -d 压缩文件
gunzip 压缩文件
gunzip -r 压缩目录
3. bz2压缩
压缩:
bzip2 原文件 压缩为bz2格式,删除原文件
bzip2 -k 保留原文件
不能压缩目录。
解压缩:
bzip2 -d 压缩文件
bunzip2 压缩文件 -k保留压缩文件
4. tar打包
为解决压缩目录的问题,可以将目录打包为文件后,即可使用gzip、bzip2来压缩文件
tar -cvf 打包文件名 源文件 //打包
选项说明
-c : 打包
-v :显示过程
-f :指定打包后的文件名
tar -xvf 打包后的文件名 //将打包后的文件解开。
-x :解打包
打包并压缩:
tar -zcvf 压缩包名.tar.gz 源文件
-z :压缩为.tar.gz格式
解压缩:
tar -zxvf 压缩报名.tar.gz
-x :解压缩.tar.gz格式
只是查看,不解压缩:
tar -ztvf 压缩包名.tar.gz
对应的.tar.bz2文件的操作:
tar -jcvf 压缩包名.tar.bz2(可以指定绝对路径) 源文件(多个原文件用空格隔开)
-j :压缩为.tar.bz2格式
tar -jxvf 压缩包名.tar.bz2 -C 目录 解压缩到指定目录。
-x :解压缩.tar.bz2格式
六、其他常用命令:
1.关机与重启
安全的命令:
shutdown -r now //立即重启计算机
-c 取消前一个关机命令
-h 关机
-r 重启
shutdown -r 05:30 & //05:30时重启计算机 &表示后台执行
其他命令:
关机:halt \ poweroff \ init 0 不太安全
重启:reboot \init 6
系统运行级别:
0 关机
1 单用户 //安全模式,启动最小程序,系统修复
2 不完全多用户,不含NFS服务 //字符界面,NFS为文件共享服务
3 完全多用户 //字符界面
4 未分配
5 图形界面
6 重启
runlevel //查询当前运行级别
N 3:
N 空 //上一个级别
3 字符界面 //当前级别
配置系统启动后的默认运行级别:/etc/iittab
logout 退出登录
2. 用户登录:
w //查看登录用户信息
who //w的部分信息
last //查询当前登录和过去登录的用户信息
last 默认是读取/var/log/wtmp文件数据
lastlog //查看所有用户的最后一次登录时间
lastlog默认是读取/var/log/lastlog文件的内容
3. 设备挂载:
命令说明:
mount 查看系统中已挂载的设备
mount -a 依据配置文件/etc/fatab的内容,自动挂载,但是不建议将光驱、U盘自动挂载,原因:如果找不到配置文件中的内容,系统将无法启动。
mount [-t 文件系统] [-o 特殊设备] 设备文件名 挂载点
-t 文件系统: ext4 、 光驱的iso9660等文件系统
-o 特殊选项: 可以指定挂载的额外选项
rw/ro
exec/noexec
remount 重新挂载
mount -o remount,noexec /home/
改过后即使有执行权限,即使是root也不能执行。
mount -o remount,exec /home/
举个栗子:
光驱挂载:
0.建立挂载点:
任意空目录都可以作为挂载点
1.mkdir /mnt/cdrom
2.mount -t iso9660 /dev/sr0 /mnt/cdrom/ 挂载光驱
将设备文件/dev/sr0(光驱) 挂载到/mnt/cdrom下。
3.umount /mnt/cdrom/
或使用umount /dev/sr0
使用完后必须要卸载才可以取出光盘。
另一个栗子:
U盘挂载:
1.fdisk -l 分区命令,查看系统中已经识别的硬盘
找到U盘对应的设备文件名,如sdb1。
2.mount -t vfat /dev/sdb1 /mnt/usb/
vfat 即fat32文件系统
Linux默认是不支持NTFS文件系统的。
ntfs-3g 使Linux支持NTFS文件系统。