您的位置:首页 > 运维架构 > Linux

Linux基本命令

2015-12-08 22:49 447 查看

一、系统分区相关命令:

整个系统分区流程为:硬盘分区---格式化---给分区定义设备名---挂载


分区类型:(取决于硬盘结构,所有系统都要遵守)

主分区

最多只能有4个。原因是硬盘被分为一个个扇区,一个扇区有512个字节,其中446个字节用于数据记录,其他64个字节用于分区表示,每16个字节表示1个分区,共能分4个主分区。

扩展分区

将一个主分区作为扩展分区,最多只能有一个,且一个硬盘中主分区+扩展分区最多有4个。不能写入数据,只能包含逻辑分区。

逻辑分区

理论上可以分为32个逻辑分区。

格式化:(写入文件系统)

文件系统名说明
FAT16最大支持2GB的分区,目前不再使用。
FAT32分区大小16T,但单个文件大小不能超过4GB。
NTFSwin中最新的文件系统
EXT2、3、4Linux中使用的文件系统。
格式化时的工作:

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)

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 /
cb63
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文件系统。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息