目录
2.9. chmod ,chgrp,chown :更改文件权限,文件属组,文件属主
1. 目录处理命令
1.1. ls : 列出目录
ls [-aldthi] [文件或目录]
全名:list,所在路径:/bin/ls,执行权限:所以用户
-a 显示所有文件,包括隐藏文件
-l 详细信息显示
-d 仅显示目录名,而不显示目录下的内容列表
-t 用文件和目录的更改时间排序;可以用第一个显示的文件判断最近修改的文件
1.2. cd:切换目录
cd [相对路径/绝对路径]
全名:Change Directory,shell内置命令,执行权限:所有用户
cd 返回用户主目录
cd .. 返回上一级
cd ../.. 返回上两级
cd . 当前目录
cd / 返回根目录
cd ~ 返回用户家目录
cd - 返回此目录之前所在目录
cd /home/test 切换到指定目录
1.3. pwd:显示当前目录
pwd [-P]
全名:Print Working Directory,所在路径:/bin/pwd,执行权限:所有用户
-P:显示出确实的路径,而非使用连结 (link) 路径。
1.4. mkdir:创建新目录
mkdir [-mp] 目录名
全名:make directories,所在路径:/bin/mkdir,执行权限:所以用户
-m:配置文件的权限,不受默认权限 (umask) 影响
-p:创建多级目录
1.5. rmdir:删除文件目录
rmdir [-p] 空目录名
全名:remove empty directories,所在路径:/bin/rmdir,执行权限:所有用户
-p:多级空目录一起删除
1.6. rm:移除文件或目录
rm [-rif] 文件或者目录
全名:remove,所在目录:/bin/rm,执行权限:所有用户
-f :force 的意思,忽略不存在的文件,不会出现警告信息
-i :互动模式,在删除前会询问使用者是否动作
-r :递归删除,最常用在目录的删除
1.7. cp:复制文件或目录
cp [-adfilprsu] 原文件或目录 目标目录
全名:copy,所在路径:/bin/cp,执行权限:所有用户
-a:相当于 -pdr (常用)
-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身
-f:强制(force),若目标文件已经存在且无法开启,则移除后再尝试一次
-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用)
-r:递归持续复制,用於目录的复制行为(常用)
-s:复制成为符号连结档 (symbolic link)
-u:若 destination 比 source 旧才升级 destination
1.8. mv :移动文件与目录,或修改名称
mv [-fiu] 源文件或目录 目的文件或目录
-f :force ,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 已存在时,会询问是否覆盖
-u :若目标文件已经存在,且 源文件或目录 比较新,才会升级
1.9. scp/rcp:Linux之间复制文件和目录
SCP 是 RCP的加强。 SCP是加密的,security cp, RCP是不加密的。用法相同。
scp [-1246BCpqrvcFiloPS] 源文件或者目录 目标位置
-p:保留原文件的修改时间,访问时间和访问权限
-q: 不显示传输进度条
-r: 递归复制整个目录
-P:port,注意是大写的P, port是指定数据传输用到的端口号
从远程到本地:
scp [-r] [root@]远程地址:远程文件/目录 本地文件/目录
从本地到远程:
scp [-r] 本地文件/目录 [root@] 远程地址:/远程文件/目录
指定端口号:
scp -P 4588 [root@]远程地址:远程文件/目录 本地文件/目录
2. 文件处理命令
2.1. touch:创建空文件
touch 文件名
所在路径:/bin/touch,执行权限:所有用户
2.2. cat: 由第一行开始显示文件内容
cat [-AbEnTv] 文件名
所在路径: /bin/cat, 执行权限: 所有用户
-A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号
-E :将结尾的断行字节 $ 显示出来
-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同
-T :将 [tab] 按键以 ^I 显示出来
-v :列出一些看不出来的特殊字符
2.3. tac: 从最后一行开始显示
tac 文件名
所在路径:/bin/tac, 执行权限: 所有用户
2.4. nl: 显示的时候,输出行号
nl [-bnw] 文件名
-b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n)
-b t :如果有空行,空的那一行不要列出行号(默认值)
-n :列出行号表示的方法,主要有三种:
-n ln :行号在荧幕的最左方显示
-n rn :行号在自己栏位的最右方显示,且不加 0
-n rz :行号在自己栏位的最右方显示,且加 0
-w :行号栏位的占用的位数。
2.5. more: 一页一页的显示文件内容
more 文件名
所在路径:/bin/more, 执行权限:所有用户
常用命令或按键:
空格键 (space)/f:代表向下翻一页
Enter :代表向下翻『一行』
/字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字
:f :立刻显示出档名以及目前显示的行数
q /Q :代表立刻离开 more ,不再显示该文件内容
b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用
2.6. less:与more类似,可往前翻页
less 文件名
所在路径:/usr/bin/less, 执行权限:所有用户
空白键:向下翻动一页;
[pagedown]:向下翻动一页;
[pageup]:向上翻动一页;
/字串:向下搜寻『字串』的功能;
?字串 :向上搜寻『字串』的功能;
n:重复前一个搜寻 (与 / 或 ? 有关!)
N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
q:离开 less 这个程序;
2.7. head: 只看头几行
head [-n number] 文件名
所在路径:/usr/bin/head, 执行权限:所有用户
-n 指定显示的行数
不加 -n 默认显示前 20 行数据
2.8. tail:只看尾部几行
tail [-n number][-f] 文件名
命令路径:/usr/bin/tail, 执行权限:所有用户
-n : 指定显示的行数
-f :动态显示文件末尾内容(即文件实时变化,那么显示内容也会随之变化,通过Ctrl+C结束)
tail -n 500 -f test.log和 tail -500f test.log 效果一致。
2.9. chmod ,chgrp,chown :更改文件权限,文件属组,文件属主
参考上篇博客:Linux(三):Linux目录结构与文件基本属性
2.10. ln:生成连接文件
ln [参数] [源文件或目录] [目标文件或目录]
全名:link, 所在路径:/bin/link, 执行权限:所有用户
命令功能:
当需要在不同的目录,用到相同的文件时,不需要在每一个需要的目录下都放一个必须相同的文件,只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
软链接:
1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
2.软链接可以 跨文件系统 ,硬链接不可以
3.软链接可以对一个不存在的文件名进行链接
4.软链接可以对目录进行链接
硬链接:
1.硬链接,以文件副本的形式存在。但不占用实际空间。
2.不允许给目录创建硬链接
3.硬链接只有在同一个文件系统中才能创建
必要参数:
-b 删除,覆盖以前建立的链接
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接)
-v 显示详细的处理过程
选择参数:
-S "-S<字尾备份字符串> "或 "--suffix=<字尾备份字符串>"
-V "-V<备份方式>"或"--version-control=<备份方式>"
--help 显示帮助信息
--version 显示版本信息
3. 文件搜索命令
3.1. find:文件搜索
find 搜索范围 -匹配条件
eg: find / -name "*.java" 在根目录下搜索java后缀的文件
上例中 -name:文件名称符合 name 的文件,即以.java后缀文件。
类似于-name的常用参数有:
-iname :忽略大小写
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组
-type d/c/b/f/l/s : 文件类型是 目录/ 自行装置文件/区块装置文件/一般文件/符号连结/socket
-pid n : process id 是 n 的文件
-user username:属于用于username的文件
-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
-amin n : 在过去 n 分钟内被读取过
-anewer file : 比文件 file 更晚被读取过的文件
-atime n : 在过去n天内被读取过的文件
-cmin n : 在过去 n 分钟内被修改过
-cnewer file :比文件 file 更新的文件
-ctime n : 在过去n天内被修改过的文件
-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
3.2. which:查找文件
which 文件
which指令会在环境变量$PATH设置的目录里查找符合条件的文件
-n<文件名长度> :指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名
-p<文件名长度> :与-n参数相同,但此处的<文件名长度>包括了文件的路径
-w :指定输出时栏位的宽度
-V :显示版本信息
3.3. whereis : 查找文件
whereis [-bfmsu] [-B 目录] [-M目录][-S目录] 文件
该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件
该指令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令
-b :只查找二进制文件
-B<目录> :只在设置的目录下查找二进制文件
-f :不显示文件名前的路径名称
-m :只查找说明文件
-M<目录> :只在设置的目录下查找说明文件
-s :只查找原始代码文件
-S<目录> :只在设置的目录下查找原始代码文件
-u :查找不包含指定类型的文件
3.4. locate:查找文档
locate [-d] 文件名
-d或--database= 配置locate指令使用的数据库。locate指令预设的数据库位于/var/lib/slocate目录里,文档名为slocate.db,您可使用 这个参数另行指定
Linux locate命令用于查找符合条件的文档,去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录
locate与find 不同: find 是去硬盘找,locate 只在/var/lib/slocate资料库中找
locate的速度比find快,并不是真的查找,而是查数据库,一般文件数据库在/var/lib/slocate/slocate.db中,所以locate的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为:
locate -u