一、命令基本格式
1.1 起始符/命令提示符
[root@localhost ~]#
root
当前登录用户localhost
主机名~
当前所在目录(家目录)#
超级用户的提示符$
普通用户提示符
1.2 命令格式
命令 [选项] [参数]
注意:
- 个别命令使用不遵循此格式。
- 当有多个选项时,可以写在一起。
- 简化选项与完整选项。如:
-a
等于-all
1.3 ls
ls -a
显示所有文件,包括隐藏文件ls -l
显示详细信息ls -d
查看目录属性ls -h
人性化显示文件大小,K/Mls -i
显示inode
1.4 文件权限(10位
)
第一位为文件类型,后面每3位一组
-rw-r--r--
- -文件类型(-文件 d目录
l
软链接
(硬链接不会显示l)) rw-
u所有者r--
g所属组r--
o其他人r
读w
写x
执行
-rw-r--r--. 1 root root 1207
.代表ACL权限 1应用计数
在linux中“.”开头的文件是隐藏文件。
二、文件处理命令
linux中一切皆文件
。目录为目录文件。普通文件用来保存数据,目录文件用来保存文件。
2.1 常用目录介绍及作用
linux 是个严谨的操作系统,一级目录都严格规定.
做练习推荐在家目录中(root或home),以及tmp。
1、 /
根目录
2、 /sbin
和 /bin
命令保存目录
根目录下的bin和sbin,usr目录下的bin和sbin,这四个目录都是用来保存系统命令。
其中,bin
目录下的命令任何用户都可以执行,sbin
目录下只有root
才可以执行。linux使用此方式来区分用户权限。
3、/boot
启动目录,启动相关文件
4、/dev
设备文件保存目录
5、/etc
配置文件保存目录
6、/home
普通用户的家目录
7、/lib
系统库保存目录
操作系统中并没有把所有功能都写入linux中,而将常用的功能写成一个个程序库,此些库保存在lib中,当需要时调用即可。避免全部写入linux内核中,使其无比庞大且运行缓慢。
8、/mnt
系统挂载U盘、移动硬盘目录
9、/media
挂载光盘目录
10、/misc
外接磁带机挂载目录
11、/root
超级用户的家目录
12、/tmp
临时目录
可存放临时数据
13、/proc 直接写入内存的
该目录同sys目录不能直接操作,这两个目录保存的是内存的挂载点。其中的数据直接写在内存中。避免数据丢失或由于内存溢出导致系统崩溃。
14、/sys
15、/usr
系统软件资源目录
- /usr/bin/ 系统命令(普通用户)
- /usr/sbin/ 系统命令(超级用户)
16、/var
系统相关文档内容
2.2 目录处理命令
清屏:Ctrl+L
cd空格
..
1、路径
2-1)相对路径:参照当前所在目录,进行查找
2-2)绝对路径:从根目录开始制定,一级一级递归,进行查找
2、pwd
:查询所在目录位置(print working directory
)
2.3 文件处理命令
注:只能删除空目录
2、删除文件
或目录
2-1)rm -rf
[文件
或目录
] (remove r:directoreis f:force
强制)
2-1-1)选项 -r :删除目录
2-1-2)选项 -f :强制
2-1-3)rm [文件名] :提示是否删除
2-1-4)rm -r [目录] :删除目录需加 -r ,目录中含有子文件,将持续询问是否删除
2-1-5)rm -rf [目录] :删除目录, 不会询问是否删除而直接进行
2-1-6)纯字符界面没有回收站。
注意自杀指令:
rm -rf /
2-2)rm -rf /tmp/*
:删除tmp目录下的内容
2-3)rm -rf /tmp/ :删除tmp目录
建议:
删除文件或目录习惯使用命令 rm -rf
[文件或目录]
3、复制命令
3-1)cp [选项] [原文件或目录] [目标目录] (copy)
3-1-1)选项 -r :复制目录
3-1-2)选项 -p :连带文件属性复制
3-1-3)选项 -d :若原文件是链接文件,则复制链接属性
3-1-4)选项 -a :相当于 -pdr 全选
3-2)例子
3-2-1)cp abc /tmp/ 若目标目录不加文件名,则为原名复制
3-2-2)cp abc /tmp/ana 若目标目录后加入文件名,则为改名复制
3-2-3)cp -r japan/ /tmp/ 复制目录
3-2-4)cp -a japan/ /tmp/ 完全复制,包括所有属性
3-3)被复制文件的时间为执行复制命令的时间,若要使被复制的文件与原文件属性完全一致,需加 -a
4、剪切或改名命令
mv
[原文件或目录] [目标目录] (move
)
- mv japan/ /tmp/
剪切目录时不需加 -r
- mv abc longls
当原文件与目标目录,在同一目录下,则为改名命令
5、当前系统时间命令:date
6、ls -l
命令别名 :ll
2.4 链接命令
2.4.1 格式化硬盘
分两步:
- 将分区划分为等大小的
block
数据块,该数据块通常为4KB
。 - 建立分区表,并为每个文件建立一个相关数据。
当用户搜索某个文件时,会先到分区表中查找文件所对应的block
存储位置,接着到相应位置取出,并返回给用户。
生成链接文件命令:ln
-s
[原文件] [目标文件] (l
in
k)
选项 -s
创建软链接
2.4.2 硬链接特征
拥有相同的i节点和存储block块,可以看做是同一个文件
。硬链接与原文件拥有相同的i节点。因此,与原文件非常相似。当删除原文件或硬链接文件的任何一文件,不影响文件索引操作。可看做,同一个文件的不通进入点。它是同样的存储空间。
1)可通过i节点识别
2)不能跨分区建立
3)不能针对目录使用,只有文件才可以创建
4)ln ./source/abc ./target/bcd.hard 创建后,引用计数+1
5)ls -i ./source/abc ./target/bcd.hard 可使用ls -i 来查看文件i节点号
不建议创建硬链接文件
- 文件太过隐蔽,除了有i节点这样一个标识之外,很难区分它是不是硬链接
- 硬链接限制较多,不能跨分区,不能针对目录,使用当中容易出现错误使用方法
2.4.3 软链接特征
1)类似于Windows快捷方式
2)软链接拥有自己的i节点和block块,但是数据块中只保存原文件的文件名和i节点号,并没有实际的文件数据
。(拥有自己的分区表中索引数据,通过索引找到分区表中文件的目标索引数据,再通过目标索引数据,查找数据)
3)lrwxrwxrwx l软链接, 软链接文件权限都为rwxrwxrwx, 虽然权限显示为777,但实际权限需要看原文件权限。
4)修改任意文件,另一个都改变
5)删除原文件,软链接不能使用
6)创建软链接,原文件一定要写绝对路径
(硬链接没有这个要求)。否则,软链接会到它所在的同一目录去找原文件。
2.4.4 硬链接与软链接关系图
三、文件搜索命令
3.1 locate
命令:locate
文件名
搜索速度快但只能按照文件名
搜索
locate
命令搜索的后台数据库为/var/lib/mlocate
(不同版本数据库名字可能不同;默认一天更新一次)
updatedb
更新数据库
/etc/updatedb.conf
配置文件
PRUNE_BIND_MOUNTS="yes"
\#
开启搜索限制PRUNEFS=
\#
搜索时,不搜索的文件系统PRUNENAMES=
\#
搜索时,不搜索的文件类型PRUNEPATHS=
搜索时,不搜索的路径
总结:locate:
只能按文件名搜索
,而不能更复杂的搜索
3.2 whereis 、 which 、whoami 和 whatis
3.2.1 whereis
特点:
用于搜索命令所在的路径以及帮助文档所在的位置,不能搜索自己凭空创建的普通文件
选项:
-b:只查找可执行文件
-m:只查找帮助文件
3.2.2 which
特点:能看到命令的路径,如果有别名,还能看到别名的说明。
注意:whereis和which不能看到shell
命令如cd
(shell
自带的),只能看到外部安装的命令如pwd
。
3.2.3 $PATH说明
类似于Windows
中的环境变量,执行命令的时候都要在path
定义的目录中去寻找。
所以像ls
这样的命令就可以不用加路径(/bin/ls
)执行了。
3.2.4 whoami
显示当前用户名称
3.2.5 whatis
查询一个命令执行什么功能,并将查询结果打印到终端上。
[root@localhost ~]# whatis ls
ls (1) - list directory contents
ls (1p) - list directory contents
3.3 find命令
3.3.1 完全匹配(默认)
格式:find
[搜索范围] [搜索条件]
例:find /home -name 文件名;
注意:
find
搜索默认是完全匹配。- 避免大范围的搜索,会非常浪费系统资源,建议不在直接在“
/
”目录下搜索
find /root -iname test
不区分要搜索的test大小写格式。find /root -user root
搜索root目录下的所有属于root用户的文件。find /root -nouser
没有所属者的文件,liunx中,每个文件都有所属者,如果没有,那么一般都是垃圾文件,但还是有特例的,比如内核产生的文件,就没有所属者,一般在proc和sys目录下;还有外来文件,也就是U盘拷入的文件也会忽略所有者。
3.3.2 模糊查询
需要添加通配符
,通配符有以下3
种
- "
*
"匹配任意字符,例:find /home -name "*test*"
,显示所有名字带test
的文件;或例:find /home -name "*"
,home
目录下的所有文件,包括隐藏文件。 - "
?
"匹配任意一个
字符。 - "
[]
"匹配任意一个中括号内的字符,例:find /home -name "test[12]"
,显示test1和test2文件;或find /home -name "[12]*"
,显示以1或2开头的文件。
组合使用:例:find /home -name "*[12]"
,显示所有1或2结尾的文件
3.3.3 find 按文件时间来搜索
find /home -mtime +10
在home目录下,查找10天前
修改的文件find /home -mtime 10
在home目录下,查找10天前当天
修改的文件find /home -mtime -10
在home目录下,查找10天内
修改的文件
atime
文件访问时间ctime
改变文件属性mtime
修改文件内容
3.3.4 find 目录 -size 文件大小
注意:文件大小,小写k和大写M
。
固定格式:-exec {} \\
,表示直接对前面的搜索结果进行后面的命令处理。
3.4 grep命令
grep
[选项] 字符串
文件名 (字符串使用 ""
包围,结果为行记录)
-i
忽略大小写-v
排除指定字符串
find
命令与 grep
命令的区别:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。