常用linux命令小结(一)文件目录操作

经常用到一些linux命令是会突然忘记他们的用法,为了以后熟练的使用它们,这里总结一下自己经常用的命令以及这写命令的常用参数。

ls

很常用的命令,显示目标目录下的文件,日常用到主要有以下几种:

  • 1.显示/home文件夹下所有文件(包含隐藏文件);
$ ls -A /home
$ ls -a /home
# -A与-a的区别是前者是不显示当前目录`(.)`与父级目录`(..)`。
  • 2.显示/home文件夹下的所有文件和目录的详细资料;
 $ ls -lR /home
  • 3.只显示/home子目录
 $ ls -F /home | grep /
  • 4.列出”a”开头的所有目录的详细内容
 $ ls -l a*
 # 这里*就是代表任意字母 (a结尾-*a, a中间-*a*)
  • 5.计算当前目录下的文件数和目录数
$ ls -l * | grep "^_" | wc -l
$ ls -l * | grep "^d" | wc -l

cd

这个太常见了,用来切换到指定目录,那么你知道还可以返回到你上次的目录么?那就是cd -命令。

pwd

平常都用这个命令看自己现在在哪个目录,其实它的-P,-L参数可以显示出实际路径与连接路径。

mkdir

在指定位置创建目录。-v可以显示创建信息哦。

  • 1.创建目录;

  • 2.递归创建多个目录;

$ mkdir -p test/test1/test2
 
$ tree test
test
└── test1
    └── test2

  • 3.创建一个目录结构;
$ mkdir -p s/{s2/{s3,s4},s5,s6/{s7,s8/s9}}

$ tree s
s
├── s2
│   ├── s3
│   └── s4
├── s5
└── s6
    ├── s7
    └── s8
        └── s9

  • 4.创建时设置权限。
$ mkdir -m 666 test2

rm

删除文件目录就靠它了。

  • 1.删除指定文件;

  • 2.强制删除,不提示;

$ rm -f a.txt
  • 3.删除目录及目录下文件
$ rm -r a/

当然以上两个一起rm -rf就有很有故事了

mv

  • 1.文件改名;
$ mv a.txt b.txt
  • 2.文件(目录)移动;
$ mv a.txt dir_a/
$ mv dir_a dir_b  # dir_b不存在时,将dir_a改名为dir_b
  • 3.同时移动多个文件;
$ mv a.txt b.txt c.txt dir_a/
  • 4.强制移动(改名),如果有同名覆盖;
$ mv -f a.txt b.txt

cp

复制文件目录。

  • 1.复制文件到目录;
$ cp a.txt dir_a
  • 2.复制目录;
$ cp -r dir_a dir_b

注意:如果dir_b存在,则将dir_a整个目录复制到dir_b下面,否则只是将dir_a下的文件全部复制到dir_b下面。

  • 3.建立快捷方式,也就是连接。
$ cp -s a.txt a_l.txt

touch

创建文件。

cat

平常要查看一个文件的内容常用这个命令,当然他还有其他几个实用的用途。

  • 1.将几个文件合并到一个文件;
$ cat a.txt b.txt > c.txt
  • 2.将文件加上行号输入到另外一个文件;
$ cat -n a.txt > d.txt
$ cat -n a.txt b.txt > e.txt

$ cat a.txt
shdasdahdasdadhZZ
$ cat b.txt
sss
s
s
s
s
s
s
s

dada
$ cat e.txt
     1  shdasdahdasdadhZZ
     1  ss
     2  sss
     3  s
     4  s
     5  s
     6  s
     7  s
     8  s
     9  s
    10
    11  dada
  • 3.如果上面合并时空白行不编号,你可以这样。
$ cat -b a.txt b.txt > f.txt

$ cat f.txt
     1  shdasdahdasdadhZZ
     1  ss
     2  sss
     3  s
     4  s
     5  s
     6  s
     7  s
     8  s
     9  s

    10  dada

nl

通常用来计算文件中的行号。

虽然cat -n 也可以输出行号,但其默认的结果与cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。

  • 1.让行号前面自动补上0,统一输出格式。
$ nl -b a -n rz b.txt
000001  ss
000002  sss
000003  s
000004  s
000005  s
000006  s
000007  s
000008  s
000009  s
000010
000011  dada

more

more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。

  • 1.设定每屏显示的行数;
$ more -10 c.txt 
  • 2.从第n行开始显示内容;
$ more +3 c.txt
  • 3.查找文件中第一个出现”txt”的文本,从该行显示后面的内容;
$ more +/txt c.txt

more命令的内容很多,很多vi内的命令在这都可以用上,与more类似功能的还要less命令。

tail

tail 命令从指定点开始将文件写到标准输出,平常我们多用他来追踪日志。

  • 1.显示文件最近的n行内容;
$ tail -n 5 d.log
  • 2.循环查看文件内容;
$ tail -f d.log
  • 3. 从第n行显示文件内容。
$ tail -n +5 d.log

head

从字面意思就很好理解,显示文件开头的内容。

  • 1.显示文件的开头5行;
$ head -n 5 d.log
  • 2.显示文件的开头5个字节;
$ head -c 5 d.log

参考文档

本文链接:参与评论 »

--EOF--

提醒:本文最后更新于 363 天前,文中所描述的信息可能已发生改变,请谨慎使用。

专题「Shell那些事」的其它文章 »

Comments