Linux 常用Shell命令整理

213 阅读4分钟

「这是我参与11月更文挑战的第6天,活动详情查看:2021最后一次更文挑战

一、文件、目录操作命令

1、ls命令

功能:显示文件和目录的信息

ls 以默认方式显示当前目录文件列表

ls -a 显示所有文件包括隐藏文件 例如: .file 文件名称前面带小数点为隐藏文件。

ls -l 显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行

ls -lh 显示文件的大小,以容易理解的格式印出文件大小 (例如 1K 234M2G)

ls -lt 显示文件,按照修改时间排序

2、cd命令

功能:改名目录

cd dir 切换到当前目录下的dir目录

cd / 切换到根目录

cd .. 切换到到上一级目录

cd ../.. 切换到上二级目录

cd ~ 切换到用户目录,比如是root用户,则切换到/root下

根目录与家目录的区别:

根目录是系统的一级文件结构,家目录只是非root用户控制目录。相当于windows我的文档,非root用户只能完会控制家目录的文件,不能控制根目录下其它的文件。

根目录是设备的最顶层目录,用 / 表示 家目录是每个用户登录系统后所在的目录,通常在 /home 下,以用户名作为目录,可以用 ~ 表示。 cd / 进入根目录 cd ~/ 进入家目录 当然,也可以用 /home/someone 进入someone的家目录

3、cp命令

功能:copy文件

cp source target 将文件source复制为target

cp /root /source . 将/root下的文件source复制到当前目录

eg:cp /home/open_038_dev/external_files/test/test.sh .

cp –av soure_dir target_dir 将整个目录复制,两目录完全一样

4、rm命令

功能:删除文件或目录

rm file 删除某一个文件

rm -f file 删除时候不进行提示。可以于r参数配合使用

rm -rf dir 删除当前目录下叫dir的整个目录

5、mv命令

功能:将文件移动走,或者改名,在uinx下面没有改名的命令,如果想改名,可以使用该命令

mv source target 将文件source更名为target

命令参数:

-b :若需覆盖文件,则覆盖前先行备份。

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;

-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

-u :若目标文件已经存在,且 source 比较新,才会更新(update)

-t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。

实例一:文件改名

命令:

mv test.log test1.txt

实例二:移动文件

命令:

mv test1.txt test3

6、diff

功能:比较文件内容

diff dir1 dir2 比较目录1与目录2的文件列表是否相同,但不比较文件的实际内容,不同则列出

diff file1 file2 比较文件1与文件2的内容是否相同,如果是文本格式的文件,则将不相同的内容显示,如果是二进制代码则只表示两个文件是不同的

comm file1 file2 比较文件,显示两个文件不相同的内容

comm -12 file1 file2 就只显示在两个文件中都存在的行 comm -23 file1 file2 只显示在第一个文件中出现而未在第二个文件中出现的行 comm -13 file1 file2 只显示在第一个文件中未出现而出现在第二个文件中的行

其中参数意义: -1 不显示只在第1个文件里出现过的列。(suppress lines unique to FILE1) -2 不显示只在第2个文件里出现过的列。(suppress lines unique to FILE2) -3 不显示在第1和第2个文件里都出现过的列。(suppress lines that appear in both files)

7、ln命令

功能:建立链接。windows的快捷方式就是根据链接的原理来做的

ln source_path target_path 硬连接

ln -s source_path target_path 软连接

ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln –s 源文件 目标文件。   当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln –s /bin/less /usr/local/bin/less