文章目录
目录处理命令
命令基本格式
ls [选项] [文件/目录]
选项:
-a:显示所有文件,包括隐藏文件;
-l:显示详细信息;
-d:查看目录属性;
-h:人性化显示文件大小;
-i:显示inode;
-lh:人性化显示详细信息;
-ld:查看目录属性详细信息。- 附:权限默认10位(eg:
-rw-r--r--
)
第一位:表示文件类型,-:表示文件;d:表示目录;l:表示软连接文件。特殊文件还有四种:块设备文件、字符设备文件、套接字文件、管道文件。
后面九位按照每三位为一组:前三位
是所有者权限;中间三位
是所有组权限;后三位
是其他人权限。其中用r:表示读;w:表示写;x:表示执行。
目录处理命令
mkdir [-p] [目录名]
创建目录,-p:表示递归创建。cd [目录]
切换所在目录。cd ~和cd:表示进入当前用户的家目录;cd -:表示进入上次目录;cd …:表示进入上一级目录;cd .:表示进入当前目录。pwd
查看当前所在目录位置。rmdir [目录名]
删除空目录。rm -rf [文件/目录]
删除目录或文件。-r:表示删除目录;-f:表示强制执行。慎用rm -rf /
,在Linux中万物皆文件,什么都可以删除,包括系统核心文件。cp [选项] [原文件或目录] [目标目录]
复制文件
选项:
-r:复制目录;
-p:连带文件属性复制;
-d:若是链接文件,则复制链接属性;
-a:相当于-rpdmv [原文件或目录] [目标目录]
剪切和重命名。
常见目录的作用
用跟目录下的bin
和sbin
和usr目录下的bin
和sbin
来保存系统命令。
boot
:启动目录;dev
:特殊文件目录(设备文件);
etc
:配置文件目录;home
:普通用户家目录;
root
:特殊用户家目录;lib
:Linux下的函数库;
media、mnt、misc
:默认是空目录,分别用来外接光盘、U盘、磁盘。tmp
:临时目录;
proc、sys
:两个目录不能直接操作,保存的是内存过载点,直接写入内存的;
usr
:系统软件资源目录;var
:系统相关可见文档目录。
在root、home、tmp
目录下可以随便放内容,其他目录尽可能不需改动。
链接命令
ln -s [原文件] [目标文件]
生成链接文件。原文件需要写绝对路径,-s:表示创建软连接。- 硬链接特征:
- 拥有相同的
i
节点和存储block块,可看作是同一个文件; - 可通过i节点识别;
- 不能跨分区;
- 不能针对目录使用;
- 删除原文件,不影响硬链接的使用;
- 不推荐使用。
- 拥有相同的
- 软链接特征:
- 类似于Windows里面的快捷方式;
- 软链接拥有自己的i节点和block块,但数据块中只保存原文件的文件名和i节点名,并没有实际的文件数据;
- 软链接的权限都是
lrwxrwxrwx
; - 修改任意一文件,另一个文件随之变化;
- 删除原文件,软链接也不能使用。
搜索命令
- 文件搜索命令locate;
- 命令搜索命令whereis和which;
- 文件搜索命令find;
- 字符串搜索命令grep;
其中locate的搜索速度比find。
文件搜索命令locate
locate 文件名
在后台数据库(目录为:/var/lib/mlocate)中按文件名搜索,速度快。updatedb
更新数据库。
更新后依然有可能搜索不到,比如在tmp目录下创建的文件,搜索不到是因为遵循了/etc/updatedb.conf
配置文件的规则:PRUNE_BIND_MOUNTS="yes“开启搜索限制;PRUNENAMES=不搜索的文件类型;PRUNEFS=不搜索的文件系统;PRUNEPATHS=不搜索的路径。
命令搜索命令whereis和which
whereis [选项] 命令名
搜索命令所在路径及帮助文档所在位置。-b表示只查找可执行文件;-m表示只查找帮助文件。which 命令名
搜索命令所在路径及别名。echo $PATH
查看环境变量。
文件搜索命令find
find [搜索范围] [搜索条件]
搜索文件。find / -name install.log
在跟目录下搜索名为install.log的文件。(绝对查询)- 避免大范围搜索,非常的耗费系统资源;
- find是在系统中搜索符合条件的文件名。如需要匹配,得通过通配符来完成,通配符是完全匹配。
- 通配符:
*:表示匹配任意内容;
?:表示匹配任意一个字符;
[]表示匹配任意一个[ ]内的字符。
find /root -iname install.log
不区分大小写在/root下搜索install.log文件。find /root -user root
按照所有者搜索。find /root -nouser
查找没有所有者的文件。- 没有所有者的文件为垃圾文件,可手动删除。
- 但有两种情况除外:
- 内核文件。在proc和sys目录下有可能存在没有所有者文件;
- 外来文件。光盘、U盘等。
find /var/log/ -mtime +10
查找十天前修改的文件。- +10表示10天内;10表示第10天;-10表示10天后;
- -atime文件访问时间;-ctime改变文件属性时间;-mtime修修改文件内容时间。
find . -size 25k
查找当前目录文件大小为25k的文件。- .表示当前目录;
- +25k表示大于25k;
- 25k表示等于25k;
- -25k表示小于25k。
find . -inum 262422
查找当前目录i节点是262422
的文件。find /etc -size +20k -a -size -50k
查找/etc目录下,大于20k小于50k的文件。- -a:表示逻辑与(and);
- -o:表示逻辑或(or)。
find /etc -size +20k -a -size -50k -exec ls -lh {} \
查找/etc目录下,大于20k小于50k的文件,并显示详细信息。-exec/-ok 命令 {} \
对搜索结果执行操作。命令A -exec 命令B {} \
将命令A的结果交给命令B进行处理。
字符串搜索命令grep
grep [选项] 字符串 文件名
在文件中查找符合条件的字符串。- -i:表示忽略大小写;
- -v:表示取反,排除指定字符串。
帮助命令
帮助命令man
man 命令
获取指定命令的帮助;
例如man ls
查看ls命令的帮助。- man的级别(
man man
)- 查看命令的帮助;
- 查看和被内核调用的函数的帮助;
- 查看函数和函数库的帮助;
- 查看特殊文件的帮助(主要是/dev目录下的文件);
- 查看配置文件的帮助;
- 查看游戏帮助;
- 查看其他杂项的帮助;
- 查看系统管理员可用命令的帮助;
- 查看和内核相关文件的帮助。
man -f 命令
查看命令拥有哪个级别的帮助。- 相当于
whatis 命令
。
- 相当于
man -k 命令
查看和命令相关的所有帮助(相当于模糊查找命令)- 相当于
apropos 命令
- 例如:
apropos passwd = man -k passwd
.
- 相当于
其他帮助命令
命令 --help
获取命令选项的帮助;help shell内部命令
只能获取shell内部命令的帮助;- 判断是否是shell内部命令
whereis 命令
:
若存在该命令目录,则不是shell内部命令;
若不存在该命令目录,则是shell内部命令。
- 判断是否是shell内部命令
info 命令
详细命令帮助。- 回车:进入子帮助页面(带有*号标记);
- u:进入上层页面;
- n:进入下一个帮助小节;
- p:进入上一个帮助小节;
- q:退出。
压缩命令
常用的压缩格式有:.zip、.gz、.bz2、.tar.gz、.tar.bz2 …
.zip格式压缩
zip 压缩文件名 源文件
压缩文件;zip -r 压缩文件名 源文件
压缩目录;unzip 压缩文件名
解压缩.zip文件;
.gz格式压缩
gzip 源文件
压缩为.gz格式的压缩文件,原文件会消失;gzip -c 源文件 > 压缩文件
压缩为.gz格式,原文件保留;gzip -d 压缩文件名
和gunzip 压缩文件名
解压缩,不保留原文件;gzip -r 目录
压缩目录下所有的子文件,但是不能压缩目录;gunzip -r 压缩文件名
解压缩目录。
.bz2格式压缩
bzip2 源文件
压缩为.bz2 格式的压缩文件,原文件会消失;bzip2 -k 源文件
压缩为.bz2格式,原文件保留;bzip2 -d 压缩文件名
和bunzip2 压缩文件名
解压缩,-k保留原文件;
文件打包及压缩成.tar.gz和.tar.bz2格式
由于gzip和bzip不能直接压缩目录,则可以先打包,然后压缩。
tar -cvf 打包文件名 源文件
文件打包
选项:
-c:打包;
-v:显示过程;
-f:指定打包后的文件名;
-t:查看压缩包但不解压。tar -xvf 打包文件名
解打包。-x:表示解打包。tar -zcvf 压缩包名.tar.gz 源文件
压缩为.tar.gz格式。-z:表示压缩成.tar.gz格式。tar -zxvf 压缩包名.tar.gz
解压缩.tar.gz格式。tar -jcvf 压缩包名.tar.bz2 源文件
压缩为.tar.bz2格式。-j:表示压缩成.tar.bz2格式。tar -jxvf 压缩包名.tar.bz2
解压缩.tar.bz2格式。tar -jxvf 压缩包名.tar.bz2 -C 路径A
解压到路径A;(.tar.gz格式同理)tar -jcvf 路径B/压缩包名.tar.bz2 源文件
压缩到路径B;(.tar.gz格式同理)tar -jtvf 压缩包名.tar.bz2
查看压缩文件。(.tar.gz格式同理)
关机/重启命令
shutdown [选项] 时间
选项:
-c:取消前一个关机命令;
-h:关机;
-r:重启。- 其他关机命令还有:halt、poweroff、init 0但是不推荐使用。
- 其他重启命令还有:reboot、init 6不推荐使用。
- 系统运行级别(init X):
编号 X | 说明 |
---|---|
0 | 关机 |
1 | 单用户(进行系统修复) |
2 | 不完全多用户,不含NFS服务 |
3 | 完全多用户 |
4 | 未分配 |
5 | 图形界面 |
6 | 重启 |
cat /etc/inittab
该文件可以修改系统默认运行级别;runlevel
查询系统运行级别;logout
退出当前用户登录。
挂载命令
挂载
mount
查询系统中已经挂在的设备;mount -a
依据配置文件/etc/fstab
的内容自动挂载;mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
挂载命令格式;-t 文件系统
加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660等文件系统-o 特殊选项
可以指定挂载的额外选项:
尽量不用做修改,若修改了,记得改回来。- 手动挂载不具有永久性,重启后会失效,可以配置
/etc/fstab
文件自动挂载。但是光盘、U盘等外接设备不推荐自动挂载。
umount 设备文件名或挂载点
卸载挂载点
挂载光盘
mkdir /mnt/cdrom/
建立挂载点mount -t iso9660 /dev/sr0 /mnt/cdrom
挂载光盘。其中-t iso9660 可以省略,因为默认就是-t iso9660。umount /mnt/sr0
卸载光盘
挂载U盘(不常见)
fdisk -l
查看U盘设备文件名mount -t vfat /dev/sdb1 /mnt/usb/
挂载U盘。其中/dev/sdb1
视情况而定。- Linux默认是不支持NTFS文件系统的。
用户登录查看命令
w
查看登录用户信息
who
查看登录用户信息- 命令输出显示:用户名、登录终端、登录时间(登录来源ip地址)
last
查询当前登录和过去登录的用户信息- last命令默认是读取
/var/log/wtmp
文件数据 - 命令输出:用户名、登录终端、登录IP、登录时间、退出时间(在线时间)
- last命令默认是读取
lastlog
查看所有用户的最后一次登录时间- lastlog命令默认是读取
/var/log/lastlog
文件内容 - 命令输出:用户名、登录终端、登录IP、最后一次登录时间
- lastlog命令默认是读取
脚本执行命令
脚本执行方式
echo [选项] [输出的内容]
输出指定内容- 选项:-e:反斜杠控制转换。
- 例如:
echo -e "\e[1;31m 输出的内容 \e[0m"
其中\e[1;31m表示开启颜色显示;\e[0m表示取消颜色。\e[1;31m和\e[0m必须成对出现。- 30m:黑色;31m:红色;32m:绿色;33m:黄色;
- 34m:蓝色;35m:洋红;36m:青色;37m:白色。
- 选项:-e:反斜杠控制转换。
写一个简单的脚本
vim xiong.sh
# 创建并进入xiong.sh文件#!/bin/bash
# 这一行不能删除
echo -e "\e[1;31m 输出的内容 \e[0m"
# 脚本代码:wq
# 写入并退出chmod 755 xiong.sh
# 赋予执行权限./xiong.sh
# 执行,还可以通过bash xiong.sh
直接调用脚本
别名与快捷键
-
alias
查看系统中所有的命名别名 -
alias 别名=‘原命令’
设定命令别名,在该用户下临时生效 -
在
~/.bashrc
环境变量配置文件中写入alias 别名=‘原命令’
方可永久生效。注意:需要调用一遍source .bashrc
,否则需要重新登录才会生效。 -
unalias 别名
删除别名(临时生效的别名) -
命令生效的顺序:
- 执行用绝对路径或相对路径执行的命令;
- 执行别名;
- 执行bash的内部命令;
- 执行按照
$PATH
环境变量定义的目录查找顺序找到的第一个命令。
-
常用快捷键:
- ctrl+C:强制终止当前命令;
- ctrl+L:清屏;
- ctrl+A:光标移动到命令行首;
- ctrl+E:光标移动到命令行尾;
- ctrl+U:从光标所在位置删除到行首;
- ctrl+Z: 把命令放入后台;
- ctrl+R:在历史命令中搜索。
历史命令
history [选项] [历史命令保存文件]
查看历史命令
选项:
-c:清空历史命令
-w:把缓存中的历史命令写入- 历史命令保存在
~/.bash_history
文件中。默认会保存1000条,可以在环境变量配置文件/etc/profile
中进行修改HISTSIZE=1000
的值。 - 历史命令的调用:
上下键:调用以前的历史命令;
!n:重读执行第n条历史命令
!!:重复执行上一条历史命令
!字符串:重复执行最后一条以该字串开头的命令。
输出重定向
![](http://pzkcmqawt.bkt.clouddn.com/img_4.png)
注意标准输出重定向中>和>>后面有空格,标准错误输出重定向中2>和2>>后面没有空格。
![](http://pzkcmqawt.bkt.clouddn.com/img_7.png)
同样注意是否存在空格。
- 输入重定向:
wc [选项] [文件名]
输出行数,单词数,字节数
-c:统计字节数;
-w:统计单词数;
-l:统计行数。
管道符
-
多命令顺序执行:
例如:ls && echo yes || echo no
判断输入ls是否正确。 -
管道符:
命令1 | 命令2
命令1的正确输出作为命令2的操作对象,输出最终命令2结果。
注意与;区分开,;会输出每条命令。
通配符
![](http://pzkcmqawt.bkt.clouddn.com/img_6.png)
![](http://pzkcmqawt.bkt.clouddn.com/img_8.png)