一.命令基础
1.关于[tesla@localhost ~]$
和[root@localhost ~]#
的说明
格式为:[用户名@主机名 当前目录名] #或$
其中:
①#表示当前为root用户,$表示当前为普通用户;
②~表示家目录,root用户的家目录为/root,普通用户的家目录为/home/用户名;
[root@localhost ~]# pwd
/root
[tesla@localhost ~]$ pwd
/home/tesla
2.命令的基本格式
命令 [选项] [参数]
注意:
个别命令不遵守此格式;
有多个选项时,可以写在一起;
选项分完整选项(– 完整选项名)和简化选项(-简化选项名),eg: --all
与-a
;
3.命令分类
(1)帮助命令
(2)文件处理和搜索命令
(3)打包压缩命令
(4)关机重启命令
(5)其他常用命令
4.常用目录的基本作用
(1)/
根目录
(2)/bin
命令保存目录(所有用户就可以执行的命令)
(3)/sbin
命令保存目录(超级用户才能执行的命令)
(4)/boot
启动目录,含有启动相关的文件
(5)/dev
设备文件保存目录
(6)/etc
配置文件保存目录
(7)/home
普通用户家目录的上级目录
(8)/root
超级用户的家目录
(9)/lib
系统函数库保存目录
(10)/mnt
空目录,用来挂载u盘等,linux常用空目录来挂载设备
(11)/media
空目录,用来挂载光盘
(12)/misc
空目录,用来挂载杂项设备
(13)/proc
内存的挂载目录
(14)/sys
内存的挂载目录
(15)/usr
系统软件资源目录/usr/bin
系统命令(普通用户)/usr/sbin
系统命令(超级用户)
(16)/tmp
临时目录
(17)/var
系统相关文档内容
说明:
①/
和 /usr
目录下的bin
和sbin
目录,都是用来保存系统命令的;
②/proc
和/sys
保存的是内存的挂载点,不能直接操作;
③可以在家目录(/root
和/home/xxx
)和/tmp
任意存放内容;
二.具体命令
1.帮助命令
(1)man [选项] 命令
:获取指定命令的帮助man -k 字符串
:查看所有包含字符串的命令的所有级别的帮助,相当于”apropos 命令
“;man -f 命令
:查看命令拥有哪些级别的帮助,相当于”whatis 命令
“;
然后用类似man 8 ifconfig
的格式进一步查看特定级别的帮助。
(2)命令 --help
:获取命令的帮助选项
eg:ls --help
(3)help shell内部命令
:获取shell内部命令的帮助
eg:help cd
(4)info 命令
:可以利用该命令获取帮助
·回车 进入子帮助页面(带有*标记)
·u 进入上层页面
·n 进入下一个帮助小节
·p 进入上一个帮助小节
·q 退出
2.文件处理和搜索命令
·文件处理
(1)ls [选项] [文件或目录]
:查询目录内容
选项:
-a 显示所有文件,包括隐藏文件
-d 查看目录属性
-h 人性化显示文件大小
-i 显示inode
-l 查看详细信息
(2)cd [目录]
:change directory,切换目录
简化操作:cd/cd -
进入上一次的目录cd .
进入当前目录cd ..
进入上一级目录cd ~
进入当前用户的家目录
(3)mkdir [选项] [目录]
:make directories,创建目录
·选项:
-p 递归创建
(4)pwd
:print working directory,显示当前所在目录
(5)rmdir [目录名]
:remove empty directories,删除空目录
(6)rm [选项] [目录或文件名]
:remove
· [选项]
-r 删除目录
-f 强制
(7)cp [选项] [源文件或目录] [目标目录]
:copy,复制文件或目录
·[选项]
-p 连带文件属性复制
-d 若源文件是链接文件,则复制链接属性
-r 复制目录
-a 相当于-pdr
(8)mv [选项] [源文件或目录] [目标目录名或文件名]
:move,移动文件或目录,若在同一个目录,可用来改名
(9)ln [选项] [源文件] [目标文件]
:link,生成链接文件,默认(不加-s)创建硬连接,文件的引用计数加一
·[选项]
-s 创建软链接
·说明:
-软链接特征
①类似windows快捷方式;
②软链接拥有自己的inode和block,但数据块中只保存原文件的文件名和inode,并没有实际的文件数据;
③lrwxrwxrwx,l表示软链接,其文件权限都为rwxrwxrwx;
④修改任一文件,另一个都会改变;
⑤删除原文件,软链接不能使用;
-硬链接特征
①拥有相同的inode和存储block,可以看作是同一个文件;(类似一个教室的前后门)
②可以通过inode识别;
③不能跨分区(同一教室的前后门无法存在于两个教学楼上);
④不能针对目录使用。
·文件搜索
(1)locate 文件名
:用于查找文件,它比find命令的搜索速度快,它需要一个数据库,这个数据库由每天的例行工作(crontab)程序来建立。
(2)whereis [选项] 命令名
:搜索命令或帮助文档的路径
·[选项]
-b 只查找可执行文件
-m 只查找可帮助文件
·相关命令
whoami
whatis
(3)which 命令名
:搜索命令的路径和别名
·$PATH
:定义系统搜索命令的路径,可用echo $PATH输出
(4)find [搜索范围] [搜索条件]
:搜索文件
①find /root -name install.log
在/root下搜索符合文件名的文件;
如果文件名不区分大小写用-iname
如果要进行匹配搜索,可以用通配符;
linux的常用通配符:
*匹配任意内容,?匹配任意一个字符,[]匹配其中任意一个字符
②find /root -user root
按所有者搜索
③find /root -nouser
查找没有所有者的文件
④find /var/log -mtime +10
查找10天前修改的文件,-10(10天内),10(10天当天);
atime文件访问时间,ctime改变文件属性,mtime修改文件内容
⑤find . -size 25k
查找文件大小是25KB的文件
-25k 小于25KB
+25k 大于25KB
⑥find . -inum 262422
查找i节点是262422的文件
⑦find /etc -size +20k a -mtime +10 -exec ls -lh {}\;
查找/etc目录下大于20KB且在10天之前最后修改的文件,并显示详细信息;
find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了。-exec 参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。{}代表前面find查找出来的文件名。
(5)grep [选项] 字符串 文件名
:在文件当中匹配符合条件的字符串
·[选项]
-i 忽略大小写
-v 排除指定字符串
·find与grep的区别
find是在系统当中搜索复合条件的文件名,需要匹配时使用通配符进行完全匹配;grep在文件中搜索复合条件的字符串,需要匹配时使用正则表达式进行包含匹配。
3.打包压缩命令
常见压缩格式1:.tar.gz,.tar.bz2
常见压缩格式2:gz,.bz2,.zip
(1)
·zip 压缩后文件名 原文件名
:压缩文件
·zip -r 压缩后文件名 原目录名
:压缩目录
·unzip 压缩文件
:解压缩文件
(2)
·gzip 源文件
:压缩为.gz格式的文件,源文件会消失
·gzip -c 源文件 > 压缩文件
:压缩为.gz格式的文件,保留源文件
·gzip -r 目录
:压缩目录下的所有文件,但不能压缩目录(用tar先打包)
·gzip -d .gz格式压缩文件
:解压缩.gz格式的文件
·gunzip .gz格式压缩文件
:解压缩.gz格式的文件
(3)
·bzip2 源文件
:压缩为.bz2格式的文件,源文件会消失,加-k保留源文件,不能压缩目录
·bzip2 -d .bz2格式压缩文件
:解压缩.bz2格式的文件,加-k保留源文件
·bunzip2 .bz2格式压缩文件
:解压缩.bz2格式的文件,加-k保留源文件
(4)
·tar -cvf 打包后文件名.tar 源文件
:打包文件
-c打包
-t测试,显示打包后文件名,并不真正打包
-v显示过程
-f指定打包后的文件名
eg:tar -cvf mytar.tar mytar
·tar -xvf 打包文件名.tar [-C 解压缩位置]
:解打包文件
-x解打包
·tar -zcvf 打包后文件名.tar.gz 源文件
:打包压缩文件为.tar.gz格式
·tar -zxvf 打包文件名.tar.gz
:解打包解压缩.tar.gz格式文件
·tar -jcvf 打包后文件名.tar.bz2 源文件
:打包压缩文件为.tar.bz2格式
·tar -jxvf 打包文件名.tar.bz2
:解打包解压缩.tar.bz2格式文件
4.关机重启命令
(1)shutdown [选项] 时间
·[选项]:
-c取消前一个关机命令
-h关机
-r重启
eg:shutdown -r now
shutdown -h 05:30 &
(2)其他关机命令:halt
power off
init 0
(3)其他重启命令:reboot
init 6
(4)系统运行级别
·0关机
·1单用户
·2不完全多用户,不含NFS服务
·3完全多用户
·4未分配
·5图形界面
·6重启
·runlevel 显示上一个运行级别和当前运行级别
(5)logout
:退出登录
5.其他常用命令
(1)挂载命令
①mount
:查看系统中已经挂载好的设备
②mount -a
:依据配置文件/etc/fstab的内容,自动挂载
③mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
·选项:
-t 文件系统:指定挂载的文件系统(ext3/ext4/iso9660等)
-o 特殊选项:指定挂载的额外选项(如exex/noexec,是否允许该处执行可执行文件,默认可以)
④挂载光盘
·mkdir mnt/cdrom/
建立挂载点
·mount [-t iso9660] /dev/sr0 /mnt/cdrom/
挂载光盘
/dev/cdrom是/dev/sr0的软链接,依赖系统,推荐使用/dev/sr0;
系统能自动识别光盘的文件系统,所以-t iso9660可以省略。
⑤挂载U盘(忽略)
(2)卸载命令umount 设备文件名或挂载点
eg:umount /dev/sr0
或umount /mnt/cdrom
(3)用户登录查看命令
①w
:查看当前用户登录的信息(详细)
命令输出:
·USER:登录的用户名
·TTY:登录终端
·FROM:登录IP
·LOGIN@:登录时间
·IDLE:用户闲置时间
·WHAT:当前正在运行的命令
②who
:查看当前用户登录的信息(简单)
命令输出:
·用户名
·登录终端
·登录时间(登录IP)
③last
:查看当前和过去用户登录的信息
默认读取的是/var/log/wtmp文件数据
命令输出:
·用户名
·登录终端
·登录IP
·登录时间
·退出时间(在线时间)
④lastlog
:查看所有用户的最后一次登录时间
默认读取的是/var/log/lastlog文件数据
命令输出:
·用户名
·登录终端
·登录IP
·最后一次登录时间
(4)命令别名
①alias
:查看系统中的所有命令别名
②alias 别名 = '原命令'
:设定命令别名(注销或重启则失效)
③unalias 别名
:删除别名(注销或重启则失效)
要让别名永久生效或失效可以写入环境变量配置文件,如~/.bashrc
·命令生效顺序
①用相对或绝对路径执行的命令
②别名
③Bash的内部命令
④按照$PATH环境变量定义的目录的顺序查找到的第一个命令
·bash常用快捷键
①ctrl+c
强制终止当前命令
②ctrl+l
清屏
③ctrl+a
移动光标到命令行首
④ctrl+e
移动光标到命令行尾
⑤ctrl+u
从光标所在位置一直删除到行首
⑥ctrl+z
将命令放入后台
⑦ctrl+r
在历史命令中搜索
(5)历史命令history [选项]
·[选项]
-c 清空历史命令
-w 把缓存中的历史命令写入~/.bash_history中
·历史命令默认保存1000条,可在/etc/profile中的HISTSIZE进行修改
·历史命令的调用:
①上下箭头
②”!!”重复执行上一条命令,
“!n”重复执行第n条命令,
“!字符串”重复执行最近一条以该字符串开头的命令
(6)输出重定向
①标准输入输出
设备 | 设备文件名 | 文件描述符 | 类型 |
---|---|---|---|
键盘 | /dev/stdin | 0 | 标准输入 |
显示器 | /dev/stdout | 1 | 标准输出 |
显示器 | /dev/stderr | 2 | 标准错误输出 |
②输出重定向:改变输出方向,从显示器转移到别的地方。
类型 | 符号 | 作用 | 备注 |
标准输出重定向 | 命令 > 文件 | 覆盖 | |
命令 >> 文件 | 追加 | ||
标准错误输出重定向 | 错误命令 2>文件 | 覆盖 | 没有空格 |
错误命令 2>>文件 | 追加 | ||
正确输出错误输出同时保存 | 命令 > 文件 2>&1 | 覆盖 | |
命令 >> 文件 2>&1 | 追加(重要) | ||
命令 &>文件 | 覆盖 | ls &>null将执行命令结果丢到黑洞中 | |
命令 &>>文件 | 追加(重要) | ||
命令 >>文件Right 2>>文件Error | 追加(重要) | 正确命令的结果写入文件1,错误的写入文件2 |
(7)输入重定向(了解,很少用)wc [选项] [文件名]
直接输入wc,然后随便输入内容,ctrl+d统计行数+单词数+字符数
·[选项]-l
统计行数-w
统计单词数-c
统计字符数
①wc < access.log
,其实可以直接用wc access.log
;
②wc <<deli
………….
deli
统计两个分隔符deli之间的内容的行数+单词数+字符数
(8)多命令顺序执行
①命令1;命令2
命令之间无逻辑关系
②命令1||命令2
逻辑或
③命令1&&命令2
逻辑与
(9)管道符命令1|命令2
命令2把命令1的正确输出当作操作对象,只有命令1正确,命令2才会执行;
(10)特殊符号
·通配符
①?
:任意一个字符
②*
:任意内容
③[] [-] [^]
:范围
·Bash中其他特殊符号
①''
单引号,其中所有的特殊符号都没有特殊含义,如 $和`(反引号);
②""
双引号,除$ ` \外,其中所有的特殊符号都没有特殊含义,这三个符号的作用依次分别是”调用变量的值”、”引用命令”、”转义符”;
③$()
和反引号
用来引用系统命令,在bash中会先执行,推荐使用$(),反引号容易看错
④#
在shell中代表注释
⑤$
用于调用变量的值,如$var
⑥\
转义符,之后的特殊符号将失去特殊意义
6.vi常用指令
(1)底行模式常用指令
①:w
②:q
③:!
④:ls
⑤:n
⑥:15
⑦/xxx
⑧?xxx
(2)命令模式常用指令
①h
光标向左移
②j
光标向下移
③k
光标向上移
④l
光标向右移
⑤ctrl + f
向下翻页(front)
⑥ctrl + b
向上翻页(back)
⑦ctrl + d
向下翻半页(down)
⑧ctrl + u
向上翻半页(up)
⑨o
在光标所在行的下方插入一行,并切换到输入模式
⑩p
在光标所在行的下方粘贴,P在光标所在行的上方粘贴
①dd
删除光标所在行
②yy
复制光标所在行
7.磁盘管理
(1)df
:查看磁盘分区使用情况
[选项]
-l 仅显示本地磁盘(默认)
-a 显示所有文件系统的磁盘使用情况,包含/proc/等
-h 以1024为进制,按最合适单位显示磁盘容量(-H 1000)
-t 显示指定文件系统的磁盘分区(-x 不显示)
-T 显示磁盘分区类型
(2)du
:统计磁盘上文件的大小
[选项]
-b 以byte为单位统计文件大小(-k Kb,-m Mb)
-h 以1024为进制,按最合适单位统计大小(-H 1000)
-s 指定统计目标
8.分区模式
(1)MBR
①主分区不超过4个
②单个分区容量不超过2TB
(2)GPT
①主分区个数”几乎”没有限制(GPT的分区表最多可以支持128个主分区)
②单个分区容量”几乎”没有限制