一.命令基础
1.关于[tesla@localhost ~]$
和[root@localhost ~]#
的说明
格式为:[用户名@主机名 当前目录名] #或$
其中:①#表示当前为root用户,$表示当前为普通用户;②~表示家目录,root用户的家目录为/root,普通用户的家目录为/home/用户名;[root@localhost ~]# pwd/root[tesla@localhost ~]$ pwd/home/tesla
2.命令的基本格式
命令 [选项] [参数]
--all
与-a
; 3.命令分类
(1)帮助命令
(2)文件处理和搜索命令(3)打包压缩命令(4)关机重启命令(5)其他常用命令4.常用目录的基本作用
(1)/
根目录
/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个主分区)②单个分区容量"几乎"没有限制