Linux命令基础(1)

1. 环境介绍

Linux命令基础(1)
任何操作系统,都是咋内核和系统调用这两层,Linux和Windows都是。
简单理解就是:最底层是硬件内核是直接和底层硬件交换数据,我们看到的桌面是系统应用,桌面上的软件都是经过系统调用,然后转换成一些内核能够识别的指令,通过内核硬件沟通,交换数据,才能使软件正常运行。

2. ls——list files 列出文件

  1. ls,不带参数,显示文件
  2. ls -a,显示全部文件
  3. ls -l,长格式显示文件信息
    Linux命令基础(1)
  4. ls -al,长格式显示所有文件
  5. ls /,显示根目录(设备的最顶层目录)
    Linux命令基础(1)
  6. ls ~,显示家目录(用户登录系统后所在的目录)
    Linux命令基础(1)
  7. ls ..,显示父目录
  8. ls ../..,显示父目录的父目录
  9. ls xxx/*.xxx,显示筛选出指定目录下的指定后缀的文件
    Linux命令基础(1)
  10. ls -lS > out.txt,S(Size),长格式显示文件并按文件大小排序,并且输出到一个名为 out.txt 的文件里
    Linux命令基础(1)
    Linux命令基础(1)
  11. ls -R,显示所有目录及其子目录 Linux命令基础(1)
    man ls,man(manual)使Linux下的命令查询手册

3. cd——change dictionary 切换目录

  1. cd /,切换到根目录
  2. cd ~,切换到家目录
  3. cd ..,切换到父目录
  4. cd <目录名>,切换到当前目录下的指定目录
  5. cd <绝对路径>,例如
    Linux命令基础(1)
  6. cd ‘my books’ 或者 ‘‘my books’’ 或者 my\ books,切换到目录名带空格的目录

4. cat——concatenate files and print on the standard output 输出/创建/复制文件

  1. cat > a.txt,从屏幕终端读取内容并写入到a.txt文件,ctrl + d 结束编辑
  2. cat a.txt,把a.txt文件内容输出到屏幕
  3. cat a.txt 1.txt,把两个文件的内容都输出到屏幕
    Linux命令基础(1)
  4. cat >> a.txt,不覆盖a.txt文件中原来的内容,在后面增加内容
  5. cat -b a.txt,不计算空行的情况下显示行号
  6. cat -n a.txt,空行也算,显示行号
    Linux命令基础(1)
  7. cat -E 1.txt,显示到每行结束并在后面加$符号
    Linux命令基础(1)
  8. cat a.txt > b.txt,将a.txt内容复制到b.txt
  9. cat a.txt b.txt > c.txt,将多个文件内容一起复制到一个文件
    Linux命令基础(1)
  10. cat 1.txt >> c.txt,在不覆盖目标文件内容的情况下,复制文件内容
    Linux命令基础(1)

5. mkdir——make dictionary 创建目录

  1. mkdir image,创建名为image的目录
  2. mkdir pics,切换到image目录下,并创建pics目录
    Linux命令基础(1)
  3. mkdir -p names/mark,父目录和子目录一起创建
  4. mkdir -p names/{lucy,tom,anthony},父目录下一次性创建多个子目录
    Linux命令基础(1)

6. rmdir——remove dictionary 删除空目录

先查看当前桌面的所有目录:
Linux命令基础(1)
可以看到,我们创建了 namesimage 两个目录,并且 image 下有 pics 目录(再往下没有目录或文件,所以 pics 是个空目录),names 下有 jenny,lucky,mark,tom 四个目录(同理,这四个都是空目录)。

  1. rmdir pics,删除空目录
    Linux命令基础(1)
  2. rmdir -p names/tom,也可以使用路径来删除空目录,但父目录 names 不会被删除,因为还有 jenny,lucky,mark 三个字目录,而非空目录。
  3. rmdir -p names/{jenny,lucky,mark},删除 names 目录下所有子目录,之后父目录 names 也成为空目录,因而也被删除。
    Linux命令基础(1)
  4. rmdir -pv a/b/c/d/{1,2,3,4},删除父目录及其子目录。-v(verbose) 可以看到删除的历史记录,是一个一个删除。
    Linux命令基础(1)

7. rm——remove 删除文件

  1. rm 1.txt,删除文件
  2. rm {a.txt,b.txt,c.txt},删除多个文件
    Linux命令基础(1)
  3. rmdir 只能删除空目录,而无法删除 “有文件的目录”(如下,先在 jenny 目录下创建一个 age.txt 文件,然后用 rmdir 来删除整个 names 目录,删除失败)。
    Linux命令基础(1)
  4. rm 命令可以解决“由于无法删除有文件的非空目录 jenny ,所以无法删除 names 目录”这个问题。
  5. rm -r names,强制删除目录及其所有子目录和文件。(也可以使用 re -r names/jenny 来删除 jenny 目录及其所含文件,而不删除 names 目录。)
    Linux命令基础(1)

8. cp——copy 拷贝文件

  1. cp file1.txt file2.txt,将文件1拷贝到文件2
    Linux命令基础(1)
  2. cp file1.txt dir1,将一个文件拷贝到一个目录
    Linux命令基础(1)
  3. cp file1.txt file2.txt dir2,将多个文件拷贝到一个目录
    Linux命令基础(1)
  4. cp -i file1.txt file2.txt dir1,如果目标目录下已经有要复制的文件,使用 -i 进入交互式命令,选择是否覆盖该重复文件
    Linux命令基础(1)
  5. cp -R dir1 dir3,cp默认是拷贝文件,加 -R 参数可以拷贝目录
    Linux命令基础(1)
  6. cp -Rv dir1 dir4,而且加 -v 可以看详细拷贝过程
    Linux命令基础(1)
  7. cp -r dir1 dir5,加 -r 可以拷贝目录中的文件到另一个目录中,注意和 -R 不同
    Linux命令基础(1)

9. mv——move 剪切

  1. mv file1.txt file2.txt,将文件1剪切到文件2,相当于重命名
    Linux命令基础(1)
  2. mv file2.txt dir1,将文件2剪切到目录1
    Linux命令基础(1)
  3. mv file2.txt dir1,新建一个文件2(和目录1中的文件重名),并将其剪切到目录1下,可以看到原来的文件2内容将被覆盖
    Linux命令基础(1)
  4. mv -i file2.txt dir1,使用 -i 交互,输入 n 就不会覆盖,且桌面上的文件2保留,选择 y 就会覆盖,且桌面上的文件2消失
    Linux命令基础(1)
  5. mv dir1 dir2,将目录1剪切为目录2,相当于重命名
    Linux命令基础(1)
  6. mv -v file3.txt dir2,查看剪切过程发生了什么变化
    Linux命令基础(1)