10. Linux的文件目录类指令

1. pwd指令

显示当前工作目录的绝对路径

2. ls指令

列出当前目录或指定目录下的文件,

    -a:列出所有文件,包含隐藏文件

    -l:按列显示所有文件及各个文件详细信息

3. cd指令

    cd ~或者cd 回到自己的家目录,比如你是用户hao,运行cd ~后回到/home/hao;如果你是root用户,运行cd ~后回到/root

    cd .. 回到当前目录的上一级目录,比如当前目录是/home/hao,运行cd .. 就会到/home目录,再运行cd ..就会回到/目录即根目录

    例子:比如当前目录为/home/hao,运行cd ../../root就可以到/root目录下,这就是使用相对路径进入/root目录

4. mkdir指令

创建目录,mkdir [选项] 目录名

选项

    -p 创建多级目录

示例

    mkdir /home/dog 在/home目录下创建一级目录,目录名为/dog

    mkdir -p /home/animal/tiger 在/home目录下创建2级目录,/animal/tiger

5. rmdir

默认删除一个空目录,默认下不能删除有内容的目录。如rmdir /home/dog,删除成功因为/dog是一个空目录。rmdir /home/animal,删除失败因为/animal下有子目录/tiger,这种情况下应该用rm -rf命令删除。

6. rm 

移除文件或者目录,rm [选项] 要删除的文件或者目录

-r 递归删除整个文件夹

-f 强制删除不提示

-rf 这个选项很危险,强制删除非空目录,rf意思为递归强制删除,删除前不会询问用户。如rm -rf /home/animal就会删除/animal目录及其下面所有内容。

7. touch

创建一个空文件,如touch hello.txt,再比如touch /home/hao/hi.txt就会在指定目录下创建空文件hi.txt。

8. cp

复制命令,命令格式 cp [选项] source destination

例如: cp hi.txt bbb 就是把当前目录下的hi.txt复制到当前目录的子目录bbb下。

-r 就是递归复制,就是把指定目录下的所有文件复制到指定目录下。

当source和dest的文件同名时,系统会询问是否覆盖,如果文件太多,一个一个询问很麻烦,可以用 \cp命令强制覆盖不询问。

9. mv

移动文件和目录,或者重命名

mv oldNameFile newNameFile 重命名

mv /temp/movefile /targetfolder 移动文件

当然也可以移动且重命名,那就是 mv /temp/movefile /targerfolder/newName,注意在移动的目标文件夹后面写了新的文件名,这样就可以移动且同时重命名。

移动目录及该目录下的所有文件时,直接用mv就行,没有也不需要选项。

10. cat

查看文件,cat [选项] 要查看的文件

cat指令只可以查看,不能修改,所以比vim更加安全。

-n 显示行号

例如 cat -n /etc/profile

cat -n /etc/profile | more 就可以进行交互,也就是显示文件开始的部分内容,然后按一下enter键就多显示一行,按一下空格键就翻下一页显示。这里 | 涉及到管道,后面再说。

11. more

more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。

例如more /etc/profile

交互快捷键:

    空格键:向下翻一页

    enter键:向下翻一行

    q:立刻离开more,不再显示该文件内容

    ctrl+f:向下滚动一屏

    ctrl+b:返回上一屏

    =:输出当前行号

    :f :输出文件名和当前行号

12. less

与more类似,分屏查看文件内容。less命令是根据显示需要而加载部分内容,例如一个100M的txt文件,用vim或者more查看就需要全部加载到内存,而less只加载一部分内容进内存,因此less命令显示大文件效率更高。简而言之“边下边播”。

    空格键:向下翻一页

    pagedown:向下翻一页

    pageup:向上翻一页

    /xx:向下搜索xx,n继续向下查找,N向上查找

    ?xx:向上搜索xx,n继续向上查找,N向下查找

    q:离开less

13. echo

输出内容到控制台 echo [选项] [输出内容]

例如 echo $PATH

例如 echo $HOSTNAME

echo "Hello world" 这个命令就会把Hello world显示在控制台

14. head

用于显示文件的开头部分内容,默认显示前10行。

例如 head /etc/profile 显示这个文件前10行内容

head -n 5 /etc/profile 显示文件前5行

15. tail

与head命令类似,tail显示文件末尾的内容。默认10行。

tail -n 5 /etc/profile 显示这个文件最后5行

tail有一个很常用的用法,就是 -f 跟踪查询某个文件的更新,这个-f是follow的意思。例如 tail -f /home/xxx.txt 命令执行后,就会进入跟踪状态,每当xxx.txt有修改,就会把修改的内容输出到控制台。

ctrl+c可以退出tail -f 

16. > 和 >>

重定向,

例如echo "hello" > xxx.txt,这个就会把本来要输出到控制台的hello重定向输出到xxx.txt里了。

>是覆盖写,>>是在xxx.txt后面追加新内容。

例如,

    ls -l > xxx.txt 列表的内容写入xxx.txt中

    ls -al >> xxx.txt 列表的内容追加写入xxx.txt中

    cat abc.txt > xxx.txt 将abc.txt的内容覆盖到xxx.txt中

    echo "hello" >> xxx.txt 将hello追加写入xxx.txt中

17. ln

软链接,也称符号连接,类似Windows的快捷方式,只要存放了链接其他文件的路径。

ln -s [原文件或目录] [软链接名称] 给原文件创建一个软链接。

例如,

ln -s /root /home/myroot

就在/home下创建了一个名为myroot的软链接,软链接到/root目录,用cd myroot然后ll就会显示/root目录下的所有内容,相当于进入了/root目录。本质上是一种共享。注意cd myroot后再pwd,显示的仍然是myroot所在的路径,而不是myroot链接到的路径。

rm /home/myroot 就可以删除这个软链接。

18. history

查看已经执行过的历史指令,也可以执行历史指令。

例如:

    history:显示执行过的所有历史指令

    history 10:显示最近执行过的10条指令

    !3:重新执行历史编号为3的指令

你可能感兴趣的:(10. Linux的文件目录类指令)