权限介绍
Linux中的权限一般由十个字符表示,如drwxr-xr--
;其中第一个字符表示文件类型,-文件 d目录 I软链接文件
;后边的9个字符3个为一组,三组分别表示user/group/other,每组包含rwx-
之一,r读 w写 x执行
;
文件及目录管理
-
ls
选项:
-a 显示所有文件,包含隐藏文件;
-d 仅显示目录名
-h 人性化显示文件大小,以kb或Mb显示大小而不是字节;
-i 显示文件索引节点(inode),一个索引节点代表一个文件
-l 显示长格式列表;(包含文件权限、引用计数、用户名、组名、大小、最后修改时间等)
-t 用文件和目录的更改时间排序 -
cd
命令 含义 cd 进入用户主目录 cd ~ 进入用户主目录 cd - 进入用户上次打开的目录 cd / 进入根目录 cd … 进入上级目录 -
pwd
以绝对路径方式显示当前目录的全路径名称 -
mkdir
创建目录,选项
-p/–parents 上层目录未创建则会一并创建上层目录 -
rmdir
移除目录,选项
-p/–parents 删除指定目录后若上层目录也变为空目录,则将其一并删除; -
rm
删除一个或多个文件或目录;使用该命令需要注意,文件一旦被被删除则无法被恢复;
选项:命令 含义 -r 递归处理目录及子目录 -f 强制删除文件及目录 -i 删除已有文件或目录前先询问用户 -
touch
用于创建新的空文件或者更新已存在文件的时间标签到系统当前时间
-
cp
文件或目录的复制;
选项:命令 含义 -r 递归,将该目录下的文件及子目录一并处理 -p 将文件或目录的属性一并复制 -d 若源文件是链接文件,则复制链接属性 -a 等同于-dpr demo:
# 仅复制文件 copy test1/file test2/ # 复制文件并修改文件名 copy test1/file test2/file2 # 复制目录 copy -r test1/ test2/
-
mv
文件或目录的移动/改名
选项:
-b 文件存在时,复制前先备份
-f 目标文件或目录存在时直接进行覆盖
-i 存在同名文件或目录时先询问是否覆盖,y表示覆盖,n表示取消移动
demo:# 重命名 mv test1 dir # 移动文件 mv -i file dir/file
-
硬链接特点
- 共享相同的inode和block存储块,可以视为同一文件(inode是文件唯一标识);
- 仅针对文件
- 不能跨分区(单个文件系统中的inode是唯一的,不同分区可能存在相同的inode)
- 删除其中一个硬链接文件不影响其他具有相同inode的文件;
-
软链接
相比于硬链接,软链接索引区拥有自己的inode及block存储块,但是其block中存储的数据为源文件的路径名指向;链接文件甚至可以不存在(断链);
特点:- 拥有自己的inode及block,但数据块并未保存实际的文件数据;
- 类似windows快捷方式,任意文件的修改,另一个都会改变;
- 可以是目录或者文件;
- 删除源文件则软链接不可使用;
- 软链接文件权限均为
lrwxrwxrwx
;
测试发现需要使用绝对路径,新创建的软链接文件才生效
下图体现了软链接与硬链接的区别;
软链接创建实例:
文件搜索
-
locate
locate的搜索速度比find快很多;find是将根目录下的所有文件遍历寻找,而locate是通过查找Ubuntu中数据库/var/lib/mlocate/mlocate.db
;该数据库由Linux自动创建并自动更新和维护(并非实时更新,一般一天一次),包含了本地的所有文件信息;由于该数据库的更新频率并不是很高,因此如果查找不到结果,可以使用命令updatedb
更新数据库后再次进行查找。当然,
locate
功能有限,仅可以通过文件名进行搜索;locate搜索配置文件位置是
/etc/updatedb.conf
,里边规定了里边是否开启搜索限制、不包含某些后缀的文件、不在某些路径内进行搜索、不搜索某些文件系统等;
locate -i 忽略大小写查找
-
find
完全匹配的查找命令
命令:find [搜索范围] [搜索条件]
选项命令 含义 示例 -name 文件名符合name的文件或目录 find /home/neil/ -name “*.soft” -iname 同上,但是区分大小写 -atime 文件最近一次访问时间,如通过cat等命令访问文件时 -mtime 文件内容最近一次修改时间 find /home/neil/ -mtime 3(3天前的当天)
find /home/neil/ -mtime -3(3天内的修改)
find /home/neil/ -mtime +10(3天之前的修改)-ctime 文件元数据最近一次修改时间,如权限、所有者等信息变动时,不会影响mtime
如下图2可以发现修改文件权限后ctime改变,而atime和mtime未受影响-empty 查询空的文件或目录 find /home/neil/test/ -empty -type 根据文件类型进行查找
类型参数f-普通文件、l符号链接、d目录、c字符设备、b块设备、s套接字find /home/neil/ -type l -nouser 找出不属于主机用户的文件或目录 find /home/ -nouser -size 找出满足条件大小的文件 find /home/neil 20k(找出大小为20k的文件)
find /home/neil +2M(找出大小大于2M的文件)
find /home/neil -2M(找出大小小于2M的文件)-inum 根据inode值查找文件名 -a 逻辑与
具体见下图3-o 逻辑或 find /home/neil/ -name “.soft" -o -name ".hard” -exec 将前边命令的执行结果交给第二个命令进行处理 find /home/neil/ -size +10k -exec rm -rf {} ;
具体见下图3
-
grep
以正则匹配的方式查找符合条件的文件中的字符串,是包含匹配
grep [选项] [目标字符串] [目标文件]
选项命令 含义 示例 -a 不忽略二进制类型数据 -c 计算符合条件的行数 grep -c “hello” newfile -v 反转查找,即查找不包含某字符串的内容行 -i 忽略大小写 -n 在打印满足条件的记录前给出该记录的行号 -
whereis && which
指令查找命令
whereis
返回指令的二进制程序、源代码文件及手动分页文件的位置;which同locate一样是通过指定数据库进行查找的,因此查找速度比find快;
which
返回指令的位置;可以判断某个系统指令是否存在;which指令会在环境变量$PATH设置的目录里查找符合条件的文件
whereis选项:
-b
:仅查找二进制程序;
-m
:仅查找说明文件;
-s
:仅查找源代码文件;
压缩与解压缩
-
常见压缩格式:
.zip
、.gz
、.bz2
、.tar.gz
、tar.bz2
等; -
zip
命令格式:zip 压缩文件名 源文件或目录(绝对路径)
选项命令 含义 示例 - 文件压缩 zip file.zip file1 -d 从压缩文件删除指定文件 zip -d dir.zip /home/neil/test1/file2 -r 递归操作,压缩指定子文件夹及文件 zip -r dir.zip /home/neil/test1/ -
unzip
命令格式:zip 压缩文件名 源文件或目录(绝对路径)
选项命令 含义 示例 -c 以字符形式将解压缩结果输出到屏幕并做一定的字符转换 unzip -c dir.zip -l 查看压缩文件内包含的文件或目录 unzip -l dir.zip -v 查看压缩文件的目录信息但不解压缩 unzip -v dir.zip -
gzip
命令:gzip [源文件]
特点:默认会将源文件直接压缩,即源文件不保留
选项命令 含义 示例 -c 保留原文件,并将压缩结果输出到标准输出设备 gzip -c file.zip -d 将压缩文件解压,不保留压缩文件 unzip -d file.zip newfile.zip -r 递归压缩该目录下及子目录下的文件为单独的压缩文件,不压缩目录 unzip -r dir.zip -v 查看压缩文件的目录信息但不解压缩 unzip -v dir.zip -
bzip2
命令:bzip2 [选项] [源文件]
同gzip类似,bzip2压缩后不保留源文件,不能压缩目录
选项命令 含义 示例 -d 将压缩文件解压 -k 保留源文件 -t 检测压缩文件完整性 -v 压缩或解压缩时显示详细信息 -
bunzip2
命令:bunzip2 [选项] [源文件]
不保留源文件
选项命令 含义 示例 -k 保留源文件 bunzip2 -k file.bz2 -v 解压缩时显示详细信息 bunzip2 -v file.bz2 -
tar
tar命令用于备份文件;该命令可以将多个文件和目录打包为一个大的文件;上边提到的gzip
、bzip2
命令由于对目录打包的支持程度非常有限,因此linux中可以通过tar
命令将多个文件和目录打包为一个大的文件,然后再使用压缩命令进行压缩;
选项命令 含义 示例 -c 建立新的备份文件(打包) tar -cvf file.tar file -C 指定解压缩文件的目标目录 tar -jcvf file.tar.bz2 -C /home/neil/test2 -f 指定备份文件(指定打包后文件名) -j 通过bzip2处理备份文件 tar -jcvf file.tar.bz2 file #将file打包和压缩为file.tar.bz2
tar -jxvf file.tar.bz2#将file.tar.bz2解压缩和解打包为file-k 保留原有文件不被覆盖 -t、–list 列出备份文件的内容 -r 添加文件到已压缩的文件 -v 显示操作过程 -x 从备份文件还原文件(解打包) tar -xvf file.tar -z 通过gzip处理备份文件 tar -zcvf file.tar.gz file #将file文件直接打包和压缩为file.tar.gz
关机与重启
- shutdown
命令:shutdown [-t seconds] [-rkncfF] time [message]
选项命令 含义 示例 -t seconds 设置多少秒后关机 -r 重启,其他重启命令 reboot
、init 6
,init表示系统运行级别,可以通过runlevel查看当前运行级别shutdown -r now
init6
reboot-h 关机后停机 shutdown -h now -k 不关机,仅将警告信息传递给所有使用者 -n 强制杀掉所有进程后自动关机 -c 取消当前已进行的关机动作 -f 重启时不执行fsck(fsck命令用于检查并尝试修复文件系统中的错误) -F 重启时执行fsck message 给所有使用者的警告讯息 shutdown +5 “System will shutdown after 5 minutes” time 关机时间 shutdown +5 #5分钟后关机
shutdown now
磁盘管理
- mkdir
创建目录 - 加粗样式
rmdir dirName 删除空目录
rmdir -p dirName 删除子目录后父级目录也变成空目录后将其一并删除 - pwd
显示当前工作目录(print working directory) - stat
显示文件的状态信息,包括size、inode、访问时间、修改时间等信息
- tree
以树状结构列出目录下的所有文件及子目录的文件
- mount
加载文件系统到指定的挂载点
命令:mount [-fnrsvw] [-t vfstype] [-o options] device dir
选项命令 含义 示例 - 查询系统中已经挂载的设备 mount -a 将文件/etc/fstab中定义的所有文件系统挂载到系统上 -exec/noexec 是否允许在文件系统内执行可执行文件,默认是exec文件 mount -o remount,noexec /home -o ro 以只读方式挂载 -o rw 以可读写方式挂载 -o remount 将已挂载的文件系统重新挂载,可用于修改特殊权限 -v 显示辅助信息 -t 指定文件系统类型 -v 显示辅助信息 - 光盘挂载 mount -t iso9660 /dev/sr0 /mnt/cdrom/ - 光盘卸载 umount /mnt/cdrom/ - 光盘卸载 umount /mnt/cdrom/
系统管理
-
w
显示当前登入系统的用户信息
选项命令 含义 示例 -f 开启或关闭显示用户登录来源 w -f -h 不显示每列的标头 w -h -l 默认值,显示详细信息 w -l -s 简洁格式列表 w -s -
who
显示登录用户的简单信息
-
last
显示所有用户的最近登录信息
选项命令 含义 示例 -R 省略hostname last -R -n 展示最近的n条登录信息 last -5 username 仅展示该用户的登录信息 last neil -
lastlog
显示系统中所有用户的最近一次登录时间 -
uname
显示系统信息
选项命令 含义 示例 -a 显示全部信息 uname -a -m 显示电脑类型 uname -m -n 显示网络主机名称 uname -n
6.sleep
命令:sleep number [smhd]
示例:date; sleep 5s; date
#输出时间信息5s后再次输出时间;
快捷键
按键 | 含义 |
---|---|
ctrl + l | 清屏 |
ctrl + a | 光标移至命令行首 |
ctrl + e | 光标移至命令行尾 |
ctrl + u | 从光标位置删除至行首 |
ctrl + k | 从光标位置删除至行尾 |
ctrl + r | 从历史命令中搜索命令 |
ctrl + Left / Right | 光标以单词为单位左右跳转 |
历史命令调用
命令 | 含义 |
---|---|
上下箭头切换 | 切换至上/下一个命令 |
!! | 执行上一条命令 |
!n | 执行第n条命令 |
!str | 执行最近一条以str字符串开头的命令 |
实用命令收集
命令 | 含义 |
---|---|
nautilus . | 打开终端所在的文件夹 |
!! | 执行上一条命令 |
!n | 执行第n条命令 |
!str | 执行最近一条以str字符串开头的命令 |
参考文献
- http://man.linuxde.net/
- https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/index.html