Linux命令基础
1. 环境介绍
任何操作系统,都是咋内核和系统调用这两层,Linux和Windows都是。
简单理解就是:最底层是硬件,内核是直接和底层硬件交换数据,我们看到的桌面是系统应用,桌面上的软件都是经过系统调用,然后转换成一些内核能够识别的指令,通过内核和硬件沟通,交换数据,才能使软件正常运行。
2. ls——list files 列出文件
- ls,不带参数,显示文件
- ls -a,显示全部文件
- ls -l,长格式显示文件信息
- ls -al,长格式显示所有文件
- ls /,显示根目录(设备的最顶层目录)
- ls ~,显示家目录(用户登录系统后所在的目录)
- ls ..,显示父目录
- ls ../..,显示父目录的父目录
- ls xxx/*.xxx,显示筛选出指定目录下的指定后缀的文件
- ls -lS > out.txt,S(Size),长格式显示文件并按文件大小排序,并且输出到一个名为 out.txt 的文件里
- ls -R,显示所有目录及其子目录
man ls,man(manual)使Linux下的命令查询手册
3. cd——change dictionary 切换目录
- cd /,切换到根目录
- cd ~,切换到家目录
- cd ..,切换到父目录
- cd <目录名>,切换到当前目录下的指定目录
- cd <绝对路径>,例如
- cd ‘my books’ 或者 ‘‘my books’’ 或者 my\ books,切换到目录名带空格的目录
4. cat——concatenate files and print on the standard output 输出/创建/复制文件
- cat > a.txt,从屏幕终端读取内容并写入到a.txt文件,ctrl + d 结束编辑
- cat a.txt,把a.txt文件内容输出到屏幕
- cat a.txt 1.txt,把两个文件的内容都输出到屏幕
- cat >> a.txt,不覆盖a.txt文件中原来的内容,在后面增加内容
- cat -b a.txt,不计算空行的情况下显示行号
- cat -n a.txt,空行也算,显示行号
- cat -E 1.txt,显示到每行结束并在后面加$符号
- cat a.txt > b.txt,将a.txt内容复制到b.txt
- cat a.txt b.txt > c.txt,将多个文件内容一起复制到一个文件
- cat 1.txt >> c.txt,在不覆盖目标文件内容的情况下,复制文件内容
5. mkdir——make dictionary 创建目录
- mkdir image,创建名为image的目录
- mkdir pics,切换到image目录下,并创建pics目录
- mkdir -p names/mark,父目录和子目录一起创建
- mkdir -p names/{lucy,tom,anthony},父目录下一次性创建多个子目录
6. rmdir——remove dictionary 删除空目录
先查看当前桌面的所有目录:
可以看到,我们创建了 names 和 image 两个目录,并且 image 下有 pics 目录(再往下没有目录或文件,所以 pics 是个空目录),names 下有 jenny,lucky,mark,tom 四个目录(同理,这四个都是空目录)。
- rmdir pics,删除空目录
- rmdir -p names/tom,也可以使用路径来删除空目录,但父目录 names 不会被删除,因为还有 jenny,lucky,mark 三个字目录,而非空目录。
- rmdir -p names/{jenny,lucky,mark},删除 names 目录下所有子目录,之后父目录 names 也成为空目录,因而也被删除。
- rmdir -pv a/b/c/d/{1,2,3,4},删除父目录及其子目录。-v(verbose) 可以看到删除的历史记录,是一个一个删除。
7. rm——remove 删除文件
- rm 1.txt,删除文件
- rm {a.txt,b.txt,c.txt},删除多个文件
- rmdir 只能删除空目录,而无法删除 “有文件的目录”(如下,先在 jenny 目录下创建一个 age.txt 文件,然后用 rmdir 来删除整个 names 目录,删除失败)。
- rm 命令可以解决“由于无法删除有文件的非空目录 jenny ,所以无法删除 names 目录”这个问题。
- rm -r names,强制删除目录及其所有子目录和文件。(也可以使用 re -r names/jenny 来删除 jenny 目录及其所含文件,而不删除 names 目录。)
8. cp——copy 拷贝文件
- cp file1.txt file2.txt,将文件1拷贝到文件2
- cp file1.txt dir1,将一个文件拷贝到一个目录下
- cp file1.txt file2.txt dir2,将多个文件拷贝到一个目录下
- cp -i file1.txt file2.txt dir1,如果目标目录下已经有要复制的文件,使用 -i 进入交互式命令,选择是否覆盖该重复文件
- cp -R dir1 dir3,cp默认是拷贝文件,加 -R 参数可以拷贝目录
- cp -Rv dir1 dir4,而且加 -v 可以看详细拷贝过程
- cp -r dir1 dir5,加 -r 可以拷贝目录中的文件到另一个目录中,注意和 -R 不同
9. mv——move 剪切
- mv file1.txt file2.txt,将文件1剪切到文件2,相当于重命名
- mv file2.txt dir1,将文件2剪切到目录1下
- mv file2.txt dir1,新建一个文件2(和目录1中的文件重名),并将其剪切到目录1下,可以看到原来的文件2内容将被覆盖
- mv -i file2.txt dir1,使用 -i 交互,输入 n 就不会覆盖,且桌面上的文件2保留,选择 y 就会覆盖,且桌面上的文件2消失
- mv dir1 dir2,将目录1剪切为目录2,相当于重命名
- mv -v file3.txt dir2,查看剪切过程发生了什么变化