1.文件目录

  1. cd~ 、cd $HOME: 进入家目录,注意大写。小写 /home 下是各个用户。

  2. pwd :显示当前路径。

  3. ls : 列出目录内容。

    1. -l :按行输出文件。
    2. -a:显示当前文件夹下所有文件,包括隐藏文件。
    3. -f:不排序,按磁盘存储的顺序列出。
  4. mkdir:创建一个目录

    1. -m:对新建的文件设置权限。在这里插入图片描述

    2. -p:此参数可是实现多级目录的新建。

  5. cat:连接显示指定的一个或多个文件的有关信息。(只适合较短的文件阅读)

    1. -n:显示行数。
    2. -b:类比于-n不显示空白行的行号。
      在这里插入图片描述
  6. cp:复制文件。cp [选项] 源文件目录 目标文件目录。

    1. -a:保留链接、文件属性、并复制其子目录,等同于dpr的组合。
    2. -d:复制时保留链接。
    3. -f:不交互。
    4. -i:交互。(有用户提醒)
    5. -p:不仅复制内容还复制修改时间和访问权限。
    6. -r:复制目录文件。
  7. mv:移动文件。mv [选项] 源文件目录 目标文件目录。当两者都为源目录时可实现重命名。

    1. -i:交互。
    2. -f:不交互。
  8. rm:删除文件。

    1. -i:交互。
    2. -f:不交互。
    3. -r:删除目录文件。
  9. chown:修改用户和组别。sudo chown [用户名]:[属组名] 文件名。(不写用户可以只修改属组,不写属组和冒号只修改用户)

  10. chgrp:只能修改数组。sudo chgrp 属组名 文件名。

  11. chmod: 修改权限。

    1. 修改方式一:“+”表示增加权限,“-”表示取消权限,“=”表示设置权限。(三种权限rwx:读、写、执行。三种用户ugo:u表示用户权限,g表示属组权限,o表示其他成员的权限,a表示所有成员)
    2. 修改方式二:以八进制形式 按ugo的顺序以此赋值添加权限。在这里插入图片描述
  12. grep:在指定文件搜索特定内容。

    1. -c:只输出匹配行的计数。
    2. -n:显示匹配内容的所在行数。在这里插入图片描述
  13. alias:命令别名。alias ll=“ls -l” (这里双引号单引号都可以“=”两边不能有空格)该命令将ls -l重命名成了ll。但是该命令只能在当前终端使用,当关闭终端或再开新终端将失效。若想永久使用可将alias ll=“ls -l” 写在家目录下的.bashrc文件中并重启。

  14. more:more 文件名。(适合较长内容的文件阅读)// 空格下翻一页,回车下翻一行,q退出

  15. less:less 文件名。(加强版的more适合较长内容的文件阅读)// 上下键实现上翻下翻

  16. wc:wc 文件名。统计。

    1. -c :统计有多少个字节。
    2. -l :统计有多少行。

2.磁盘相关命令(需要管理员权限)

  1. free:查看当前系统的内存使用情况。
  2. df:查看文件系统的磁盘空间占用情况。
  3. du:统计目录(或文件)所占磁盘空间的大小。
  4. fdisk:查看硬盘的分区情况。fdisk -l。
  5. mount:磁盘挂载命令。mount [选项][设备文件类型]设备文件名 挂载点目录。
    1. -a:按照/etc/fstab中的内容装载所有相关的硬盘。
    2. -l:列出当前已挂载的设备、文件系统名、挂载点。
    3. -t 类型:将后面的设备以指定类型的文件格式装载到挂载点上。(常见类型有VFAT、ext3、ext2、ISO9660、NFS等)
    4. -f:模拟挂载,通常用于排除错误。

3.系统管理命令

  1. 关机:sudo shutdown -h [时间]。(分钟)now为立即执行。
  2. 重启:sudo reboot。
  3. ps:显示当前系统中正在运行的进程列表。
    1. -ef:查看所有进程及其详细信息。
    2. -aux:除-ef的内容外还可显示CPU及内存占用率、进程状态。
    3. -w:加宽显示更多信息。
  4. kill:通常使用kill -9 pid 杀死相应进程。
    1. -s:根据指定信号发送给进程。
    2. -p:打印进程号但不发送。
    3. -l:列出所有可用信号名称。
  5. top:动态显示系统中运行的程序(一般每隔5S刷新一次)。
  6. uptime:显示系统已经运行了多长时间。
  7. clear:快捷键ctrl+L,清屏操作。
  8. su - 用户名:切换用户。

4.文件类型

在这里插入图片描述

  1. -:表示普通文件。
  2. d:表示目录文件。
  3. l:表示链接文件。
  4. s:表示socket文件。(套接字)
  5. p:表示管道文件。
  6. c:表示字符文件。
  7. b:表示块设备文件。

命令、shell、shell脚本的区别

1.命令:用户向系统内核发出的控制请求。说白了就是一条指令
2.shell:是一个命令行解释器,实现用户与内核之间的交互。也就是指令的解释器
3.shell脚本:多个命令的集合。也就是多个指令实现的一个demo进行封装

特殊字符

  1. | :管道,单独使用时无意义。作用是将前一个命令的输出作为后一个命令的输入。在这里插入图片描述
    如上所示,在day1目录文件中查找是否有test.c文件,它将ls的结果作为grep的输入

    1. > :输出重定向。若文件不存在则新建,若存在清空并覆盖。(一般用来将错误信息输出到文件中)
  2. >>:追加重定向。若文件不存在则新建,若存在则追加到该文件的末尾。在这里插入图片描述

  3. <:输入重定向。(不常用)在这里插入图片描述
    将test.c作为wc的输入文件,统计test.c的行数,再将结果输出到1.txt中

  4. *:匹配任意长度的字符串,*.c表示 所有.c文件。

  5. ?:匹配单个长度的字符。

  6. […]:[内容]匹配内容中任意一个字符。在这里插入图片描述

  7. [ - ]:匹配指定字符范围的单个字符。在这里插入图片描述

  8. [^…]:匹配指定外的所有单个字符。(指定内容可以是范围)在这里插入图片描述

ln(创建链接命令)

用于在文件之间建立连接,Linux中有两种链接,硬链接和软连接

硬链接
为每个文件分配物理编号,硬链接不能跨越文件在这里插入图片描述
软连接
利用文件的路径名建立链接(相当于windows下的快捷方式)在这里插入图片描述
共同点
软硬链接的操作都会影响源文件的改变。

区别
1.软链接:会在用户选定的路径下生成一个文件镜像,不占用空间。(使用最广泛)
2.硬链接:会在用户指定的路径下生成一个和源文件大小相同的文件。
3.若删除源文件,软链接失效而硬链接不会失效。

压缩打包命令

压缩工具:bzip2,gzip(只能压缩单个文件,不能压缩目录)

压缩文件:
在这里插入图片描述
在这里插入图片描述

解压文件
在这里插入图片描述
在这里插入图片描述
tar(对文件或目录打包解包后缀为.tar)
注意:压缩时用的gzip解压时就用gzip,压缩用bzip2解压也得用bzip2

  1. -c:打包。
  2. -x:解包。
  3. -v:处理过程中输出相关信息。显示过程。
  4. -f:指定包文件名。(必须放在最后)
  5. -z:调用gzip压缩打包解压文件。
  6. -j:调用bzip2压缩打包解压文件。
    文件压缩先打包再压缩
    在这里插入图片描述
    在这里插入图片描述
    文件解压,先解压再拆包
    在这里插入图片描述
    在这里插入图片描述
    打包压缩一步实现
    在这里插入图片描述
    解压拆包一步实现
    在这里插入图片描述

常见压缩文件的压缩解压操作
在这里插入图片描述

文件比较命令diff

比较不同文件或不同目录下两个相同文件名的文件,并生成补丁文件。
在这里插入图片描述

  1. -r:对目录进行递归处理。

  2. -q:只报告文件是否不同,不输出结果。

  3. -c:旧版上下文格式,列出比较的所有文件并标注出不同行。在这里插入图片描述

  4. -u:新版上下文格式,相同部分只列出一次,不同部分按区别列出。在这里插入图片描述

进程前后台切换

在前台运行的程序会一直占用终端命令行,例如你在前台解压的时候必须等着,期间干不了别的事(除非另开一个终端)。
但是如果把进程放到后台,可以把终端空出来,你可以执行其它的操作。另一个好处是,放到后台的程序不会被ctrl+C(误触)给终止。

一开始就把进程放到后台运行

直接在命令行末尾加上 &:开始就在后台。

把已经在前台运行进程放到后台

  1. 先键入Ctrl+z 选项把该进程暂停;
  2. 键入jobs -l查看进程的工作号(不是进程号PID),比如说工作号是2
  3. 键入 bg %2 即可把该进程放到后台运行(bg=background)。如果直接键入bg则是把所有进程放到后台。
  4. 如果又想把后台程序放回前台,键入fg %2即可.(fg=foreground)
  5. 如果直接想杀掉后台进程,键入kill %2,或kill <PID号>也可

但是,即使把程序放到后台运行,一旦关闭终端,或者远程终端断网,都会直接终止所有进程。
对于一些需要长时间运行的程序,或者网络不稳定的情况下,我们希望在关闭终端下程序也照常运行,此时需要nohup命令:

nohup
该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。关闭终端后,在另一个终端键入jobs已经无法看到后台的程序了,此时利用ps或top可以查看到。
nohup常常配合后台标记 &使用:

  1. 使用nohup让程序后台不挂断地运行
    例如nohup python train.py & 可以让train.py脚本一开始就在后台运行,且不会因为关闭终端而被打断。该进程产生的所有输出都会到当前目录下的一个叫nohup.out的文件中。

环境变量

1.env:查看环境变量。
2.环境变量格式:变量名=内容1:内容2(中间用 :隔开,“=”左右两边不能有空格)
3.export:添加环境变量。

  1. 临时添加:(只对当前终端有效)
    1. 可执行文件的绝对路径,$PATH不能省略,因为PATH之前还有其他环境变量。在这里插入图片描述

  2. 永久添加:
    1. 管理员权限进入/etc/profile。
    2. 在最末尾添加export PATH=$PATH:绝对路径。
    3. 重启或使用命令source /etc/profile

共享文件夹

VM中的共享文件夹Linux的cd /mnt/hgfs路径下

用户管理命令

相关配置文件

  1. /etc/passwd :系统能够识别的用户清单。
  2. /etc/shadow :加密的用户清单。
  3. /etc/group :组的列表。
  4. /etc/gshadow :用户组加密清单。

用户和组

  1. sudo adduser 用户名:创建一个用户。
  2. sudo deluser --remove-home 用户名:删除用户同时删除改用户的工作目录。
  3. sudo passwd 用户名:修改密码。
  4. usermod : 修改用户属性。
  5. sudo groupadd 组名:新建组。
  6. sudo groupdel 组名:删除组。
  7. sudo usermod -g 组名 要修改的用户 :修改用户所属组。

密码管理

用户的密码信息在/etc/shadow文件中,其中信息是由“:”隔开,共有9列每一列表示的信息依次如下:

  1. 用户名
  2. 密码:
    • “$6$”表示改用户已经被创建了密码并且已经加密显示了,加密算法在/etc/login.defs文件的末尾有体现;
    • “!!” 表示改账户已经被锁定,不能登录,可以通过passwd -l <用户名>将指定用户锁定,也可以通过passwd -u <用户名>命令解除锁定;
    • passwd -d <用户名>命令删除指定用户的密码。
    • passwd <用户名>给指定用户设置密码,但是这种方式看不到设置的密码,所以也可以用echo "passwd123" | passwd --stdin <用户名>命令设置密码。
  3. 上次修改密码的时间:这个时间单位是天,指从1970年1月1日起至今的天数。如果没有修改过密码就是1969年12月31日,可以通过passwd -S <用户名>命令查看。可以通过chage -d 0 <用户名>命令将上次修改密码时间设置为0,下次该用户登录时必须修改密码。也可以passwd -e <用户名>命令将上次修改密码时间设置为0;
  4. 最短有效期:0表示不设置,这一列的作用是防止频繁修改密码,在设置的时间内不能再次修改密码。passwd -n <天数> <用户名>
  5. 最长有效期:默认为99999;密码的真实有效期。passwd -x <天数> <用户名>
  6. 密码到期前几天开始提醒:默认为7;passwd -w <天数> <用户名>
  7. 密码到期后的宽限天数。passwd -i <天数> <用户名>
  8. 账号的失效日志:这一列的优先级别最高,一旦到期当前账号立即不能使用。可以通过chage -E 2020-10-01 <用户名>命令设置失效时间。一般不设置
  9. 保留位

用户管理命令实际干了什么?

  • 创建用户:useradd命令实际上是执行了以下动作:
    1. /home/下创建家目录(目录名默认是用户名),并将/etc/skel/目录下的所有文件复制到新创建的家目录;
    2. /var/spool/mail目录下创建以用户名为文件名的信箱文件;
    3. /etc/passwd文件中追加一条用户清单信息;
    4. /etc/group文件中追加一条用户信息;
    5. /etc/shadow文件中追加一条用户密码信息;
    6. /etc/gshadow文件中追加一条用户组密码信息;
  • 删除用户:userdel -r <用户名>实际上删除的是/home/<家目录>目录和/var/spool/mail/<用户名>信箱文件。

手动编辑上述配置文件中对应信息也可以实现用户管理的添加、修改和删除。

注意:

  • 在etc目录下创建nologin文件会禁止所有普通用户登录;touch /etc/nologin

软件管理

  1. dpkg -L :列出安装的软件包清单。

apt

  1. 测试网络:ping www.baidu.com
  2. 网络配置
  3. 软件源配置文件:/etc/apt/sources.list
  4. 下载软件:sudo apt install 包名。或 sudo apt -get install 包名。
  5. 更新镜像栈:sudo apt update 包名。或 sudo apt -get update 包名。
  6. 卸载软件:sudo apt -get remove 包名。

有趣命令
sudo apt -get install XXX(XXX填下列命令即可完成安装)

  1. oneko:追鼠标的猫。
  2. xeyes:眼睛。
  3. sl:火车。
  4. ……

GDB调试

  1. 先使用gcc加上参数-g 生成可调试的可执行文件。
  2. l:输入小写L查看代码。
  3. b:设置断点。b 行号。
  4. info b:查看断点情况。
  5. r:运行代码。
  6. p:查看变量值。p 变量名。
  7. watch:查看变量的改变状态。watch 变量名。
  8. n :单步运行。
  9. c:继续运行。
  10. q:退出指令。
    在这里插入图片描述
Logo

更多推荐