Linux 的命令确实非常多,然而熟悉 Linux 的人从来不会因为 Linux 的命令太多而烦恼。因为我们仅仅只需要掌握常用命令,就完全可以驾驭 Linux。
接下来,让我们一起来看看都有那些常用的 Linux 命令吧!
一、文件目录操作
1. ls 命令
ls 命令不仅可以查看 linux 文件夹包含的文件而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。
命令格式
ls [选项][目录名]
常用参数
- -l :列出长数据串,包含文件的属性与权限数据等
- -a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)
- -d :仅列出目录本身,而不是列出目录的文件数据
- -h :将文件容量以较易读的方式(GB,kB等)列出来
- -R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来
使用实例
1.列出 home 目录下的所有文件和目录的详细资料。
ls -a -l /home
ls -al /home
2.列出当前目录下所有以"d"开头的文件目录详情内容。
ls -l d*
2.cd命令
最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的。用于切换当前目录至dirName。
命令格式
cd [目录名]
操作案例
1.从当前目录进入系统根目录。
cd /
2.跳转到 home/Code 目录。
cd /home/Code
3.pwd 命令
查看"当前工作目录"的完整路径。
命令格式:
pwd [选项]
常用参数:
- -P :显示实际物理路径,而非使用连接(link)路径
- -L :当目录为连接路径时,显示连接路径
操作案例
1.显示当前所在路径。
pwd
4.mkdir 命令
用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。
命令格式
mkdir [选项] 目录
常用参数
- -m, --mode=模式,设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask
- -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
- -v, --verbose 每次创建新目录都显示信息
- –help 显示此帮助信息并退出
- –version 输出版本信息并退出
使用实例
1.创建一个空目录。
mkdir test
2.递归创建多个目录。
mkdir test/test1
3.创建权限为777的目录。
mkdir -m 777 test2
4.创建目录都显示信息。
mkdir -v test4
5.rm 命令
删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。
命令格式
rm [选项] 文件
常用参数
- -f, --force 忽略不存在的文件,从不给出提示。
- -i, --interactive 进行交互式删除
- -r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
- -v, --verbose 详细显示进行的步骤
- –help 显示此帮助信息并退出
- –version 输出版本信息并退出
使用实例
1.删除文件 test.txt,系统会提示是否删除。
rm test.txt
2.强制删除 test.txt,系统不再提示。
rm -f test.txt
3.将 test 子目录及目录中所有档案删除。
rm -r test
6.rmdir 命令
该命令从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对父目录的写权限。
命令格式
rmdir [选项] 目录
常用参数
-
p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。
-
-v, --verbose 显示指令执行过程
使用实例
1.删除空目录 test1,非空目录无法删除。
rmdir test1
2.当子目录被删除后使它也成为空目录的话,则顺便一并删除
rmdir -p test2 # test 目录下仅有 test2
7. mv 命令
可以用来移动文件或者将文件改名(move (rename) files)。当第二个参数类型是文件时,mv命令完成文件重命名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
命令格式
mv [选项] 源文件或目录 目标文件或目录
常用参数
- -b :若需覆盖文件,则覆盖前先行备份
- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
- -u :若目标文件已经存在,且 source 比较新,才会更新(update)
- -t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后
使用实例
1.将 test1.txt 重命名为 test2.txt。
mv test1.txt test2.txt
2.移动文件 test1.txt 到目录 test2
mv test1.txt test2
3.将文件 test1.txt、test2.txt、test3.txt 移动到目录 test3。
mv test1.txt test2.txt test3.txt test3
8.cp 命令
将源文件复制至目标文件,或将多个源文件复制至目标目录。
命令格式
cp [选项] 源文件 目录 或 cp [选项] -t 目录 源文件
常用参数
- -t --target-directory 指定目标目录
- -i --interactive 覆盖前询问(使前面的 -n 选项失效)
- -n --no-clobber 不要覆盖已存在的文件(使前面的 -i 选项失效)
- -f --force 强行复制文件或目录,不论目的文件或目录是否已经存在
- -u --update 使用这项参数之后,只会在源文件的修改时间较目的文件更新时,或是对应的目的文件并不存在,才复制文件
使用实例
1.复制文件 test1.txt 到 test1 目录
cp test1.txt test1 # 若文件存在,会提示是否覆盖。若不存在直接完成复制
- 复制 test1 整个目录到 test2
cp -a test1 test2
9. touch 命令
touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间。
命令格式
touch [选项] 文件
常用参数
- -a 或–time=atime或–time=access或–time=use 只更改存取时间
- -c 或–no-create 不建立任何文档
- -d 使用指定的日期时间,而非现在的时间
- -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题
- -m 或–time=mtime或–time=modify 只更改变动时间
- -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同 -t 使用指定的日期时间,而非现在的时间
使用实例
1.创建不存在的文件test.txt
touch test.txt
2.更新 test.txt 的实践和 test1.txt 时间戳相同
touch -r test.txt test1.txt
10.cat 命令
用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
命令格式
cat [选项] [文件]
常用参数
- -A, --show-all 等价于 -vET
- -b, --number-nonblank 对非空输出行编号
- -e 等价于 -vE
- -E, --show-ends 在每行结束处显示 $
- -n, --number 对输出的所有行编号,由1开始对所有输出的行数编号
- -s, --squeeze-blank 有连续两行以上的空白行,就代换为一行的空白行
- -t 与 -vT 等价
- -T, --show-tabs 将跳格字符显示为 ^I
- -u (被忽略)
- -v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
使用实例
1.把 test.log 的文件内容加上行号后输入 test1.log 这个文件里。
cat -n test.log test1.log
- 将 test.log 的文件内容反向显示。
tac test.log
11. nl 命令
输出的文件内容自动的加上行号!其默认的结果与 ca