目录操作命令
1》ls
查看文件或目录的工具,列出目录
用法:ls [选项]... [文件]…
【选项】
-l | 出文件名之外,列出文件的类型、权限、所有者、所属组、文件大小、修改时间等详细信息 |
-a | 不隐藏任何以. 开始的项目 |
-A | 列出除. 及.. 以外的任何项目(不列出“.”当前目录及“..”父目录) |
-R | 递归列出目录内容,若目录下有项目(文件或目录),则以下之文件皆依序列出 |
-n | 类似 -l,但列出UID 及GID 号 |
-F | 在列出的文件名称后加一个符号,去区分文件类型;例如*代表可执行文件;/代表是目录;@代表链接文件;普通文件之后不加符号 |
注意:ls -l命令可以缩写为ll
2》cd
更改目录,切换目录
用法:cd 目标目录
注意:cd 命令之后不可以跟文件
. | 当前目录 |
.. | 父目录 |
cd .. | 切换到父目录,切换到上一级目录 |
cd | 类似cd ~ 命令,切换到当前用户家目录 |
cd ~ | 切换到当前用户的家目录 |
cd - | 返回上一次所处的目录 |
Cd \ | 类似于cd " test"命令中的双引号(也可以是单引号);切换到名称带有空格的目录 |
3》pwd 显示当前所处的目录,目前所在的目录
pwd -P | 显示实际的工作目录,而非使用链接路径 |
4》mkdir 创建目录
mkdir | 只能在已存在的目录下创建目录 |
mkdir -p | 帮助你直接将所需的目录递归创建起来。(在一个不存在的上级目录里面创建目录) |
5》rmdir 删除空目录
rmdir | 只能删除空目录 |
rmdir -p | 递归删除空目录 |
6》rm 删除文件或目录
rm | 只能删除文件 |
rm -r | 删除目录及目录下的项目(文件和目录) |
rm -f | 不提示强制删除 |
rm -rf *
强制删除所有文件,但是不包含隐藏文件。谨慎使用!!!!!
同时删除多个文件或目录
每个项目以空格隔开
7》mv 移动文件或目录
mv 原文件路径 目标文件路径 | 移动 |
1.如果原文件名称在移动过程中没有改名称,移动之后,目标路径下的文件与原文件名称相同
在目标目录下不要添加文件名称,只写路径
2.移动文件的同时修改文件名称
在目标路径后面跟上要修改的文件的名称,文件名称自定义
选项:
-f | 不提示并覆盖文件 |
-n | 不覆盖已存在文件 |
-b | 覆盖之前把原文件做备份,备份的文件在文件名之后有个~符号 |
-u | 只有原文件比覆盖的文件新的时候才可以覆盖文件;旧文件不能覆盖新文件 |
8》du 显示目录的磁盘使用情况
注意:du查看目录大小,这条命令并没有什么用,(看情况,shell脚本有时候会用到)。它虽然可以显示文件或目录占用的磁盘空间,但是当你要查找某一个文件或目录的时候,还是需要一页一页去查看信息
9》df 查看所有已挂载磁盘使用情况
第一列:文件系统对应的磁盘分区
第二列:分区的总空间大小,含的数据块的数据
第三\四列:已用和未用的空间大小
第五列:用户空间使用的百分比
第六列:文件系统的挂载点
注意:df中的已用和未用的空间大小相加与du看到的用磁盘的空间大小不等于磁盘总空间大小,这是因为分区留了少量的空间提空给系统管理员使用
文件命令
1》Linux系统中使用以下命令来查看文件的内容
cat | 由第一行开始显示文件内容 |
tac | 由最后一行开始显示文件内容 |
more | 一页一页查看文件内容(不可以向上翻一行,可以前后翻页(Ctrl+b、空格)、向下翻一行{回车键、Ctrl+m} ) |
less | 与more相似,可以往前翻一行(可以前后翻页(空格、pgup键和pgdn键)、向上翻一行、向下翻一行(上下箭头键,回车)) |
tail | 默认查看文件的后十行 |
head | 默认查看文件的前十行 |
nl | 查看文件内容,同时顺便的显示行号 |
1>cat
-b | 列出非空行的行号 |
-n | 连同空行一起列出行号 |
2>more
向上翻一页:Ctrl+b
向下翻一页:空格
向下翻一行:回车、Ctrl+m
3>less
向上翻一页:pgUp键
向下翻一页:pgDn键、空格
向上翻一行:上箭头
向下翻一行:回车、方向键(向下箭头)
【搜索关键字】
1:向下搜索内容
按 / -----> 输入关键字---------> 回车键
2:如果要搜索的关键字在所处位置的上面,就不可以使用斜杠 ( / ),使用问号 ?
4>head/tail
1.指定行数显示文件内容
如:head test -n2
head -n2 test 显示前两行内容
tail -n3 test 显示后3行内容
2》find 在指定路径查找文件
用法:find [选项] 参数
实例: 查找根目录下的passwd文件
#find / -name passwd
用法:find 路径 选项( 指定查找的文件) 具体查找的文件
基本上只要是忽略大小写的,参数一般都是-i
反选,否定匹配的参数 --使用叹号
find命令总结:
1:find命令通常单独使用
2:find只能搜索目录或文件,不能搜索文件内的具体内容
3》grep 搜索
注意:find命令通常单独使用;grep命令通常个其他命令配合使用,通常和管道符一起 【 | 】
grep搜索的关键字不一定要写全,find后面的关键字必须写全,如果不写全称则搜索失败,或者不记得全称可以使用通配符。
【实例1】grep的简单用法
ls /etc/ | grep pa
【实例2】搜索具体文件内的内容
cat passwd |grep root
【实例3】输出除匹配关键字之外的内容
df | grep -v boot
【实例4】单独使用grep
用法: grep 关键字 搜索的文件
grep root passwd
【实例5】忽略大小写
cat passwd | grep -i ROOT
【实例6】递归搜索
ls -R / | grep freeit
【实例7】在多级目录中对文本进行递归搜索----(搜索的是文本的具体内容)
grep 11 . -r -n
【实例8】cat passwd | grep -v ^$ | grep -v ^# |grep bash$> test
-v | 反选 |
^xx | 匹配以xx开头的行 |
xx$ | 匹配以xx结尾的行 |
^$ | 匹配空行 |
4》stat
显示文件的所有信息,甚至包括存储该文件的设备的设备号
最近访问access:只要查看过文件,这个时间就会随之变化
最近改动change:修改文件的名称等信息,这个时间就会随之变化
修改文件的内容,同时三个时间都会随之变化
最近更改时间modify:
ls -l file : 查看文件修改时间
ls -lc file: 查看文件改动时间
ls -lu file: 查看文件访问时间
5》touch
【解释】
用于修改文件或目录的时间属性,包括存储时间、更改时间。如果文件不存在,则系统或建立一个新文件。
创建空文件(衍生出来的)
【问题】生产环境中为什么使用touch?
touch命令描述的是改变时间戳,那么我们为什么要改变时间戳?
如果你参加一个全球范围的开源项目,那么时间戳会变得很重要。编译源代码文件可能需要同一地区的时间戳。如果未统一,程序可能会编译失败。(有强迫症的同学也会用,看不得乱七八糟的时间)
【实例1】更改文件的时间戳为当前的时间。(三个时间同时修改)
touch qq
如果文件不存在,则系统或建立一个新文件
【实例2】设置文件的时间戳(修改的是访问时间和更改时间)
touch -t 222202222222 qq
注意:-t选项后面的时间格式:
[[CC]YY]MMDDHHmm[.SS]
CC | 年份的前两位 |
YY | 年份的后两位 |
MM | 月份[01-12] |
DD | 日起[01-31] |
hh | 时[00-23] |
mm | 分[00-59] |
SS | 秒[00-59] |
【实例3】变更文档时间戳,文件名记错了,或者写错了,又不想创建新文件,使用选项c
touch -c ststemctl
【实例4】单独修改时间(访问时间)
修改访问时间:
touch -at 200808080808.08 systemctl
注意:为什么改动时间会变化,是因为本身touch -at 200808080808.08 systemctl 这条命令在修改文件的属性,所以改动时间会随之记录用户的操作痕迹,但是touch -at 200808080808.08 systemctl 这条命令只作用在访问时间!!!!
【实例5】自定义时间戳(同实例2)
touch -d "01-December-2017" systemctl
【实例6】修改时区
GMT:格林尼治时间
touch -d GMT7 GMT8
6》echo 回显,打印输出到屏幕
7》输入输出重定向
在Linux中,每一进程都有三个特殊的文件描述指针
标准输入(standard input 文件描述指针为0)
标准输出(standard output 文件描述指针为1 )
标准错误输出(standard error 文件描述指针为2)
这三个特殊文件描述指针使进程在一般情况下接收标准输入终端的输入,同时由标准终端来显示输出,Linux同时也向使用者提供可以使用普通文件或管道来取代这些标准输入输出设备。在shell中,使用者可以利用“>”和“<”来进行输入输出重定向
输出重定向:
Command >filename | 将命令的输出结果重定向到一个文件中 |
Command &>filename | 将命令的标准错误输出一起重定向到一个文件中 |
Command >>filename | 将标准输出的结果追加到文件中 |
Command &>>filename | 将标准输出和标准错误输出的结果都追加到文件中 |
输入重定向:
ls < qq
ls命令执行的目标是qq的结果,系统在执行ls <qq这条命令时,先执行qq再把qq的结果输入给ls命令使用
内置输入重定向
应用场景:菜单中会使用
cat << END
权限命令
一:权限释义
d | 文件类型 |
rwxrwxrwt | 权限 |
2 | 链接数 |
root root | 第一个是拥有者;第二个是所属组 |
19 | 文件大小 |
4月 1 10:32 | 修改时间(不是创建时间) |
/tmp | 文件名 |
【权限】释义
读、写、执行
拥有者
所属组
附加组
Linux里ll查看到的权限每三位三位划分,依次代表:拥有者(rwx)、所属组(rwx)、其他来宾(rwt)
r | 读 | 4 |
w | 写 | 2 |
x | 执行 | 1 |
t | 特殊权限 sticky | |
s | 特殊权限 SUID/SGID | |
- | 没权限 |
二:修改权限的命令 chmod
【参数设置】:
chmod 对象{-+=}权限{rwxst} 文件
对象:拥有者、所属组、其他人
a | 所有用户 |
u | 拥有者,创建者 |
g | 所属组,同组的用户 |
o | 除了拥有者和同组用户之外的用户 |
- | 清除权限 |
+ | 增加权限 |
= | 设置唯一的权限 |
常用设置:
g+w 增加组用户的写权限
o-rwx 清除其他用户的全部访问权限
u+x 允许文件属主执行文件
a+rw 允许所有用户读和写文件
ug+r 允许文件属主和属组用户读文件
g=rx 设置属组用户只能读和执行文件(不可写)
通过增加- R 参数,可以改变整个目录树的权限
注意:不可以使用u+7等方法给权限
三:创建文件系统给的默认权限
文件默认的权限是644,这是系统认为最安全的权限
目录默认的权限是755
四:递归修改目录下的所有文件和目录的权限
注意:通过-R选项,可以修改整个目录树的权限
ACL权限:
注意:如果chmod修改的权限与ACL权限冲突,ACL---> 权限
getfacl | 查看ACL权限 | ||
Setfacl | 设置ACL权限 | ||
【格式】setfacl 选项 权限设置 filename
本文出自 “linux” 博客,请务必保留此出处http://gaojingjing.blog.51cto.com/12066507/1856344
原文地址:http://gaojingjing.blog.51cto.com/12066507/1856344