Linux文件目录命令
pwd,查看当前工作目录的完整路径
- pwd:/root
ls,用来打印当前目录的清单,可以指定其他目录
-a:列出目录下所有的文件,包括以"."开头的隐藏文件
-l:除了文件名外,还列出文件权限、所有者、大小等详细信息
-r:反向次序排列
-t:以文件修改时间排序
-g:类似-l,但是不列出所有者
-h:以容易理解的文件格式列出(如1K、234M、2G)
例如:
ls -l t*:列出所有文件名以"t"开头的文件信息
cd,切换文件目录至dirName
例如:
cd /:进入系统根目录
cd aa/bb/cc:跳转到指定目录,注意这里"aa"前没有"/",指从当前目录跳转到指定目录
cd ~:进入系统主目录
cd ..:跳转到上一级
mkdir
用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录
-m:创建目录的时候设定权限
-p:若创建目录的路径中有些路径不存在,可一次性地建立多个目录
例如:
mkdir test1:创建一个空目录test1
mkdir -p test1/test2:递归创建多个目录
mkdir -m 777 test:在创建目录test3的时候给此目录赋予777的权限
rm
删除一个目录中的一个或多个文件或目录,它可以将某个目录及其下所有文件及子目录删除。对于链接文件,只是删除了链接,原有文件均保持不变
-f:强制删除且不给出提示
-r:将参数中列出的目录路和子目录均递归删除
-v:显示详细进行的步骤
例如:
rm -rf *.log:删除任何.log文件并且不询问用户
touch,创建一个新文件
- touch a.txt:创建了一个 a.txt 文件
mv
可以用来移动文件或者将文件改名,常用来备份文件或目录
例如:
mv log1.txt log.txt test3:将log1.txt、log2.txt移动到test3文件夹中
mv dir1 dir2:如果dir2不存在,则将dir1改名为dir2;如果dir2存在,则将dir1移入dir2中
mv * ../:移动当前文件夹下所有文件至上一级目录
mv test3/*.txt test5:将test目录下所有的.txt文件全部移动到test5文件夹下
cp,复制文件或目录
例如:
cp log.log test6:将log.log复制进入test6目录下
cat,主要有三个功能:
1、一次性显示整个文件
2、从键盘创建一个文件
3、将几个文件合并为一个文件
顺便提一句,tac这个命令和cat一样,无非是将文件内容从最后一行到第一行显示而已。
-E:在每行结束显示"$"
-n:对输出的所有行进行从1开始的编号
-s:对连续两行的空白行代替为一行
-T:将跳格字符(tab)显示为"^I"
例如:
cat -n log1.log log2.log:将log1.log加上行号后输入到log2.log文件中,log2.log在目录中必须存在
cat -n log1.log > log.log:将log1.log加上行号后输入到log.log文件中,log.log在目录中不存在
more
类似cat,不过more不是将整个文件内容从上到下显示在屏幕上的,而是以一页一页的显示方便使用者逐页阅读。more最基本的指令就是space即往下翻一页,b即往回翻一页显示,而且还有搜索字符串的功能
+n:从第n行开始显示
-n:定义屏幕大小为n行
+/pattern:在每个档案显示前搜索该字符串patern,然后从该字符串前两行之后显示
-p:通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s:把连续的多个空行显示为一行
-u:把文件内容中的下划线去掉
常用操作命令:
Enter:向下n行,需要定义,默认为1行
空格键:向下滚动一屏
b:向上滚动一屏
=:输出当前行号
V:调用vi编辑器
q:退出more
例如:
more +3 log1.log:从第3行起显示log1.log里面的内容
more +/day3 log1.log:从文件中查找第一个出现'day3'的字符串的行,并从该行前两行开始显示输出
more -5 log1.log:设定每屏显示行数
ls -l | more -5:more常与别的命令连用,一般是因为某些命令输出的内容太多,所以使用more来分页显示
diff
比较单个文件或目录内容,如果指定比较的是文件,则只有当输入为文本文件时才有效。以逐行的方式,比较文本文件的异同处。如果指定的是目录,diff命令会比较两个目录下名字相同的文本文件,列出不同的二进制文件、公共子目录和只在一个目录下出现的文件。
-b:不检查空格字符的不同
-B:不检查空白行
-i:不检查大小写的不同
-q:只显示有无差别,不现实详细信息
-y:以并排方式显式文件的异同处
-w:在使用参数-y时,指定栏宽
例如:
diff log1.log log2.log:比较两个文件,输出结果比如"3c3"和"8c8"表示两个文件在第三行和第8行有所不同,"11,12d10"表示第一个文件比第二个文件多了第11行、第12行。diff命令的normal格式模式显示三种提示,即a-add、c-change、d-delete
diff test3 test4:比较test3和test4两个文件夹的不同
diff log1.log log2.log -y -w 50:并排输出,并制定栏宽为50
追加和重定向
> 输出重定向、>> 追加
- ls -l > a.txt :列表的内容写入文件(覆盖写)
- ls -al >> a.txt:列表的内容写入文件(追加写)
echo,输出内容到控制台
- echo 123
echo $PATH
- echo abcd > 1.txt
echo 1234 >> 1.txt
head,显示文件开头内容
-n:显示多少行
--version:显示head的版本信息
- head 文件名:查看文件前10行内容
- head -n 5 文件名 :查看文件对的前 5 行
tail,用于显示指定文件末尾内容,不指定文件时,作为信息输入进行处理。常用查看日志文件
-f:不断读取,循环刷新,这样可以看到最新的文件内容
-q:不显示处理信息
-v:显示详细的处理信息
-c:显示的字节数
-n:显示的行数
例如:
tail -n 5 log1.log:显示log1.log最后5行的内容
tail -f log1.log:循环查看log1.log的内容
ln,创建一个软连接:快捷方式
ln -s 【原文件或目录】【软连接名】
rm -rf 软连接名:删除软连接
history,查看历史指令
- 查看所有历史指令:history
- 查看最近执行的10个指令:history 10
- 执行历史指令为5号的指令: !5
which
在PATH变量指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果。即,which命令可以看到某个系统命令是否存在以及执行的到底是哪一个位置的命令