Linux常用命令用法总结

Linux常用命令用法总结.md

前言

  • 作者Linux兵工厂

  • 关注公众号Linux兵工厂,长期分享Linux、网络、驱动、C/C++、后台服务器、Qt、Python等知识,记录工作中遇到的问题及解决方法。关注我,让我们一起学习,共同进步!

  • 扫描下方二维码货微信搜一搜,获取大量Linux干货资料和代码

1. su

  • 普通用户切换root用户
ubuntu@ubuntu20:~$ su
Password: 
root@ubuntu20:/home/ubuntu# exit
exit
ubuntu@ubuntu20:~$ 

2. clear

  • 清除当前终端显示的输出
  • 快捷键ctrl+L键

3. cd

  • 改变目录
ubuntu@ubuntu20:~/workspace$ cd ..
ubuntu@ubuntu20:~$ cd /
ubuntu@ubuntu20:/$ cd ~
ubuntu@ubuntu20:~$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Software  Templates  Videos  workspace
ubuntu@ubuntu20:~$ pwd
/home/ubuntu
ubuntu@ubuntu20:~$ 

4. pwd

  • 显示当前工作目录
  • 执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称
ubuntu@ubuntu20:~$ pwd
/home/ubuntu
ubuntu@ubuntu20:~$ 

5. ls

  • 列出目前工作目录所含之文件及子目录

[语法]

ls [-alrtAFR] [name...]

[参数]

  • -a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
  • -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
  • -r 将文件以相反次序显示(原定依英文字母次序)
  • -t 将文件依建立时间之先后次序列出
  • -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
  • -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
  • -R 若目录下有文件,则以下之文件亦皆依序列出
ubuntu@ubuntu20:~$ ls -a
.   .bash_history  .bashrc  .config  Documents  .gnupg  .mozilla  Pictures  Public    .sudo_as_admin_successful  Videos      workspace
..  .bash_logout   .cache   Desktop  Downloads  .local  Music     .profile  Software  Templates                  .wget-hsts
ubuntu@ubuntu20:~$ ls -l
total 40
drwxr-xr-x 2 ubuntu ubuntu 4096 10月 12  2021 Desktop
drwxr-xr-x 2 ubuntu ubuntu 4096 10月 12  2021 Documents
drwxr-xr-x 2 ubuntu ubuntu 4096 10月 12  2021 Downloads
drwxr-xr-x 2 ubuntu ubuntu 4096 10月 12  2021 Music
drwxr-xr-x 2 ubuntu ubuntu 4096 10月 12  2021 Pictures
drwxr-xr-x 2 ubuntu ubuntu 4096 10月 12  2021 Public
drwxrwxr-x 4 ubuntu ubuntu 4096 11月  4 10:33 Software
drwxr-xr-x 2 ubuntu ubuntu 4096 10月 12  2021 Templates
drwxr-xr-x 2 ubuntu ubuntu 4096 10月 12  2021 Videos
drwxrwxr-x 5 ubuntu ubuntu 4096 10月 27  2021 workspace
ubuntu@ubuntu20:~$ ls -r
workspace  Videos  Templates  Software  Public  Pictures  Music  Downloads  Documents  Desktop
ubuntu@ubuntu20:~$ ls -t
Software  workspace  Documents  Music  Pictures  Public  Templates  Videos  Desktop  Downloads
ubuntu@ubuntu20:~$ ls -F
Desktop/  Documents/  Downloads/  Music/  Pictures/  Public/  Software/  Templates/  Videos/  workspace/
ubuntu@ubuntu20:~$ 

6. touch

  • 修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件

[语法]

touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期>][--help][--version][文件或目录…]

[参数]

  • a 改变档案的读取时间记录。
  • m 改变档案的修改时间记录。
  • c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
  • f 不使用,是为了与其他 unix 系统的相容性而保留。
  • r 使用参考档的时间记录,与 --file 的效果一样。
  • d 设定时间与日期,可以使用各种不同的格式。
  • t 设定档案的时间记录,格式与 date 指令相同。
  • --no-create 不会建立新档案。
  • --help 列出指令格式。
  • --version 列出版本讯息。
ubuntu@ubuntu20:~/Test$ ls
ubuntu@ubuntu20:~/Test$ touch test  // 创建一个文件
ubuntu@ubuntu20:~/Test$ ls
test
ubuntu@ubuntu20:~/Test$ ls -l
total 0
-rw-rw-r-- 1 ubuntu ubuntu 0 12月  4 15:49 test
ubuntu@ubuntu20:~/Test$ touch test // 修改时间属性
ubuntu@ubuntu20:~/Test$ ls -l
total 0
-rw-rw-r-- 1 ubuntu ubuntu 0 12月  4 15:49 test
ubuntu@ubuntu20:~/Test$ 

7. mkdir

  • 创建目录

mkdir [-p] dirName

  • -p创建多级目录
ubuntu@ubuntu20:~/Test$ mkdir a/b
mkdir: cannot create directory ‘a/b’: No such file or directory
ubuntu@ubuntu20:~/Test$ mkdir -p a/b
ubuntu@ubuntu20:~/Test$ ls
a  test
ubuntu@ubuntu20:~/Test$ ls a/b/
ubuntu@ubuntu20:~/Test$ 

8. cp

  • 拷贝命令

cp [options] source dest

[参数]

  • -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
  • -d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
  • -f:覆盖已经存在的目标文件而不给出提示。
  • -i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
  • -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
  • -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
  • -l:不复制文件,只是生成链接文件。
ubuntu@ubuntu20:~/Test$ ls
a  test
ubuntu@ubuntu20:~/Test$ cp test test1
ubuntu@ubuntu20:~/Test$ cp a cp-a
cp: -r not specified; omitting directory 'a'
ubuntu@ubuntu20:~/Test$ cp a cp-a -r
ubuntu@ubuntu20:~/Test$ ls
a  cp-a  test  test1
ubuntu@ubuntu20:~/Test$ 

9. mv

  • 为文件或目录改名、或将文件或目录移入其它位置

mv [options] source dest

[参数]

  • -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
  • -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
  • -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
  • -n: 不要覆盖任何已存在的文件或目录。
  • -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作
ubuntu@ubuntu20:~/Test$ ls
a  cp-a  test  test1
ubuntu@ubuntu20:~/Test$ mv a d
ubuntu@ubuntu20:~/Test$ ls
cp-a  d  test  test1
ubuntu@ubuntu20:~/Test$ mv cp-a/ d/
ubuntu@ubuntu20:~/Test$ ls
d  test  test1
ubuntu@ubuntu20:~/Test$ ls d/
b  cp-a
ubuntu@ubuntu20:~/Test$ mv test test2
ubuntu@ubuntu20:~/Test$ ls
d  test1  test2
ubuntu@ubuntu20:~/Test$ 

10. rm

  • 用于删除一个文件或者目录

rm [option] name

[参数]

  • -i 删除前逐一询问确认。
  • -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
  • -r 将目录及以下之档案亦逐一删除
ubuntu@ubuntu20:~/Test$ ls
d  test1  test2
ubuntu@ubuntu20:~/Test$ rm -i test1
rm: remove regular empty file 'test1'? y
ubuntu@ubuntu20:~/Test$ ls
d  test2
ubuntu@ubuntu20:~/Test$ rm test2 
ubuntu@ubuntu20:~/Test$ rm d
rm: cannot remove 'd': Is a directory
ubuntu@ubuntu20:~/Test$ rm d/ -r
ubuntu@ubuntu20:~/Test$ ls
ubuntu@ubuntu20:~/Test$

11. tar

  • tar打包命令

[参数]

  • -A或--catenate 新增文件到已存在的备份文件。
  • -b<区块数目>或--blocking-factor=<区块数目> 设置每笔记录的区块数- 目,每个区块大小为12Bytes。
  • -B或--read-full-records 读取数据时重设区块大小。
  • -c或--create 建立新的备份文件。
  • -C<目的目录>或--directory=<目的目录> 切换到指定的目录。
  • -d或--diff或--compare 对比备份文件内和文件系统上的文件的差异。
  • -f<备份文件>或--file=<备份文件> 指定备份文件。
  • -F<Script文件>或--info-script=<Script文件> 每次更换磁带时,就- 执行指定的Script文件。
  • -g或--listed-incremental 处理GNU格式的大量备份。
  • -G或--incremental 处理旧的GNU格式的大量备份。
  • -h或--dereference 不建立符号连接,直接复制该连接所指向的原始文- 件。
  • -i或--ignore-zeros 忽略备份文件中的0 Byte区块,也就是EOF。
  • -k或--keep-old-files 解开备份文件时,不覆盖已有的文件。
  • -K<文件>或--starting-file=<文件> 从指定的文件开始还原。
  • -l或--one-file-system 复制的文件或目录存放的文件系统,必须与tar指令执行时所处的文件系统相同,否则不予复制。
  • -L<媒体容量>或-tape-length=<媒体容量> 设置存放每体的容量,单位以1024 Bytes计算。
  • -m或--modification-time 还原文件时,不变更文件的更改时间。
  • -M或--multi-volume 在建立,还原备份文件或列出其中的内容时,采用多卷册模式。
  • -N<日期格式>或--newer=<日期时间> 只将较指定日期更新的文件保存到备份文件里。
  • -o或--old-archive或--portability 将资料写入备份文件时使用V7格式。
  • -O或--stdout 把从备份文件里还原的文件输出到标准输出设备。
  • -p或--same-permissions 用原来的文件权限还原文件。
  • -P或--absolute-names 文件名使用绝对名称,不移除文件名称前的"/"号。
  • -r或--append 新增文件到已存在的备份文件的结尾部分。
  • -R或--block-number 列出每个信息在备份文件中的区块编号。
  • -s或--same-order 还原文件的顺序和备份文件内的存放顺序相同。
  • -S或--sparse 倘若一个文件内含大量的连续0字节,则将此文件存成稀疏文件。
  • -t或--list 列出备份文件的内容。
  • -T<范本文件>或--files-from=<范本文件> 指定范本文件,其内含有一个或多个范本样式,让tar解开或建立符合设置条件的文件。
  • -u或--update 仅置换较备份文件内的文件更新的文件。
  • -U或--unlink-first 解开压缩文件还原文件之前,先解除文件的连接。
  • -v或--verbose 显示指令执行过程。
  • -V<卷册名称>或--label=<卷册名称> 建立使用指定的卷册名称的备份文件。
  • -w或--interactive 遭遇问题时先询问用户。
  • -W或--verify 写入备份文件后,确认文件正确无误。
  • -x或--extract或--get 从备份文件中还原文件。
  • -X<范本文件>或--exclude-from=<范本文件> 指定范本文件,其内含有一个或多个范本样式,让ar排除符合设置条件的文件。
  • -z或--gzip或--ungzip 通过gzip指令处理备份文件。
  • -Z或--compress或--uncompress 通过compress指令处理备份文件。
  • -<设备编号><存储密度> 设置备份用的外围设备编号及存放数据的密度。
  • --after-date=<日期时间> 此参数的效果和指定"-N"参数相同。
  • --atime-preserve 不变更文件的存取时间。
  • --backup=<备份方式>或--backup 移除文件前先进行备份。
  • --checkpoint 读取备份文件时列出目录名称。
  • --concatenate 此参数的效果和指定"-A"参数相同。
  • --confirmation 此参数的效果和指定"-w"参数相同。
  • --delete 从备份文件中删除指定的文件。
  • --exclude=<范本样式> 排除符合范本样式的文件。
  • --group=<群组名称> 把加入设备文件中的文件的所属群组设成指定的群组。
  • --help 在线帮助。
  • --ignore-failed-read 忽略数据读取错误,不中断程序的执行。
  • --new-volume-script=<Script文件> 此参数的效果和指定"-F"参数相同。
  • --newer-mtime 只保存更改过的文件。
  • --no-recursion 不做递归处理,也就是指定目录下的所有文件及子目录不予处理。
  • --null 从null设备读取文件名称。
  • --numeric-owner 以用户识别码及群组识别码取代用户名称和群组名称。
  • --owner=<用户名称> 把加入备份文件中的文件的拥有者设成指定的用户。
  • --posix 将数据写入备份文件时使用POSIX格式。
  • --preserve 此参数的效果和指定"-ps"参数相同。
  • --preserve-order 此参数的效果和指定"-A"参数相同。
  • --preserve-permissions 此参数的效果和指定"-p"参数相同。
  • --record-size=<区块数目> 此参数的效果和指定"-b"参数相同。
  • --recursive-unlink 解开压缩文件还原目录之前,先解除整个目录下所有文件的连接。
  • --remove-files 文件加入备份文件后,就将其删除。
  • --rsh-command=<执行指令> 设置要在远端主机上执行的指令,以取代rsh指令。
  • --same-owner 尝试以相同的文件拥有者还原文件。
  • --suffix=<备份字尾字符串> 移除文件前先行备份。
  • --totals 备份文件建立后,列出文件大小。
  • --use-compress-program=<执行指令> 通过指定的指令处理备份文件。
  • --version 显示版本信息。
  • --volno-file=<编号文件> 使用指定文件内的编号取代预设的卷册编号。
ubuntu@ubuntu20:~/Test$ tar czvf test.tar.gz ./
./
./c
./a
./b
tar: .: file changed as we read it
ubuntu@ubuntu20:~/Test$ 

12. ln

  • 命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间

[参数]

  • -b 类似 --backup ,但不接受参数
  • -d 允许超级用户制作目录的硬链接
  • -f 强制执行
  • -i 交互模式,文件存在则提示用户是否覆盖
  • -n 把符号链接视为一般目录
  • -s 软链接(符号链接)
  • -v 显示详细的处理过程
ubuntu@ubuntu20:~/Test$ ls
a  b  c  test.tar.gz
ubuntu@ubuntu20:~/Test$ ln -s test.tar.gz test1
ubuntu@ubuntu20:~/Test$ ls
a  b  c  test1  test.tar.gz
ubuntu@ubuntu20:~/Test$ ls -l test
ls: cannot access 'test': No such file or directory
ubuntu@ubuntu20:~/Test$ ls -l
total 4
-rw-rw-r-- 1 ubuntu ubuntu   0 12月  4 16:29 a
-rw-rw-r-- 1 ubuntu ubuntu   0 12月  4 16:29 b
-rw-rw-r-- 1 ubuntu ubuntu   0 12月  4 16:29 c
lrwxrwxrwx 1 ubuntu ubuntu  11 12月  4 16:42 test1 -> test.tar.gz
-rw-rw-r-- 1 ubuntu ubuntu 151 12月  4 16:29 test.tar.gz
ubuntu@ubuntu20:~/Test$ 

13. cat

  • 用于连接文件并打印到标准输出设备上,文件重定向

cat [-AbeEnstTuv] [--help] [--version] fileName

[参数]

  • -n 或 --number:由 1 开始对所有输出的行数编号。
  • -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
  • -s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为- 一行的空白行。
  • -v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 - TAB 之外。
  • -E 或 --show-ends : 在每行结束处显示 $。
  • -T 或 --show-tabs: 将 TAB 字符显示为 ^I。
  • -A, --show-all:等价于 -vET。
  • -e:等价于"-vE"选项;
  • -t:等价于"-vT"选项;
ubuntu@ubuntu20:~/Test$ touch file1
ubuntu@ubuntu20:~/Test$ cat -n file1 > file2
ubuntu@ubuntu20:~/Test$ ls
file1  file2

ubuntu@ubuntu20:~/Test$ echo 111 > file1
ubuntu@ubuntu20:~/Test$ cat file1
111
ubuntu@ubuntu20:~/Test$ cat file1 > file2
ubuntu@ubuntu20:~/Test$ cat file2
111
ubuntu@ubuntu20:~/Test$ cat file1 >> file2
ubuntu@ubuntu20:~/Test$ cat file2
111
111
ubuntu@ubuntu20:~/Test$ 

posted on 2023-03-10 23:09  Linux兵工厂  阅读(127)  评论(0)    收藏  举报