总结归纳一下 Linux 的 Shell 的快捷键和常用命令
(环境基于 ubuntu-20.04.2.0)

# Shell 快捷键


  • [ 方向键←→ ] 或 Ctrl+B/F —— 光标向后(左)/ 前(右)移动
  • [ Home/End ] 或 Ctrl+A/E —— 光标移动到开头(最左边)/ 末尾(最右边)
  • [ 方向键↑↓ ] 或 Ctrl+P/N —— 显示上一条 / 下一条历史命令
  • [ Backspace/Del ] 或 Ctrl+H/D —— 删除光标前 / 后(被光标覆盖住)的字符
  • Ctrl+U —— 删除光标前的所有字符
  • Ctrl+L —— 清屏
  • Tab —— 快速补全命令或目录(按一次或当有多个匹配项时两次)
  • Ctrl+Alt+T —— 新建一个终端窗口

# Linux 基础常识


  1. 使用 ls 命令显示文件或目录时的不同颜色:(一般情况下)
    白色 —— 普通文件
    蓝色 —— 目录
    绿色 —— 可执行文件(相当于 Windows .EXE)
    红色 —— 压缩文件
    青色 —— 链接文件(相当于 Windows 快捷方式)
    黄色 —— 设备文件
    灰色 —— 其他文件
  2. Linux 下的文件类型:

普通文件类型 (-)
Linux 中最多的一种文件类型,包括 纯文本文件 (ASCII);二进制文件 (binary);数据格式的文件 (data); 各种压缩文件。第一个属性为 [-] ,这些文件一般是用一些相关的应用程序创建,比如图像工具、文档工具、归档工具… … 或 cp 工具等。这类文件的删除方式是用 rm 命令。

目录文件 (d)
就是目录, 能用 # cd 命令进入的。第一个属性为 [d],例如 [drwxrwxrwx] ,创建目录的命令可以用 mkdir 命令,或 cp 命令,cp 可以把一个目录复制为另一个目录。删除用 rm 或 rmdir 命令。

块设备(b)和 字符设备(c)
这个种类的文件,是用 mknode 来创建,用 rm 来删除。目前在最新的 Linux 发行版本中,我们一般不用自己来创建设备文件。因为这些文件是和内核相关联的。
块设备文件 : 就是存储数据以供系统存取的接口设备,简单而言就是硬盘。例如一号硬盘的代码是 /dev/hda1 等文件。第一个属性为 [b] 
字符设备文件:即串行端口的接口设备,例如键盘、鼠标等等。第一个属性为 [c]

套接字文件 (s)
这类文件通常用在网络数据连接。可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。第一个属性为 [s],最常在 /var/run 目录中看到这种文件类型

管道文件 (p)
FIFO 也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误。FIFO 是 first-in-first-out (先进先出) 的缩写。第一个属性为 [p]

符号链接(l)
和 Windows 操作系统中的快捷方式类似。

引自 Linux 下的 7 种文件类型 - CYYZ 古月

  1. ls -a 显示路径下全部文件(包括隐藏的)
  2. ls -l 查看路径下文件的详细信息
    示例
    tip:在 Linux 下文件夹(目录)所占用的磁盘空间都是 4096byte,目录大小不包括目录内的文件大小
  3. 目录必须有执行权限才能进入
  4. Linux 下隐藏文件以。开头
  5. itcast@itcast:~第一个itcast:当前登陆的用户第二个itcast:主机名 第一个itcast:当前登陆的用户 第二个itcast:主机名 :普通用户
    $ 换成 #:超级用户(管理员权限)
  6. Linux 系统中硬盘名字:
硬盘1:sda
   |--主分区
   |    └--(最多允许有4个)--主分区1:sda1
   |                       |-主分区2:sda2
   |                       |-主分区3:sda3
   |                       └-主分区4:sda4
   └--扩展分区
          └--(第一个逻辑分区从sda5开始)--逻辑分区1:sda5
                                        |-逻辑分区2:sda6
...
  硬盘2:sdb
  硬盘3:sdc
  硬盘4:sdd
  磁盘设备种类:
      sd -> SCSI Device
      hd -> Hard Disk 硬盘
      fd -> Floppy Disk 软盘

# Shell 常用命令


  1. | 管道 - 将命令 1 的输出作为命令 2 的输入(命令 1 | 命令 2)
  2. pwd 查看当前所在路径
  3.   ~ :家目录
  4. cd - :在两个目录间切换
  5. rm 参数:
    r —— 递归(进入子目录)
    i —— 提示
    f —— 强制删除(rm 命令默认会加上这个参数)
    tip: rm -rf / 懂的都懂
  6. mkdir-p )/ touch 创建目录 / 文件
  7. cat 查看文件内容
  8. cp 拷贝文件或目录(拷贝目录时加 -r
    tip: 拷贝文件时:软硬链接都拷贝原文件;
    拷贝目录时:软链接拷贝过去还是软链接,硬链接拷贝原文件
  9. more 一点一点的看某个文件,但是只能往下看,不能往上
  10. less 一点一点的查看某个文件,比 more 更智能
  11. head / tail 显示文件前 / 后十行(也可以加 -5 或者其他任意数字控制显示行数)
  12. mv 移动(到一个已经存在的文件夹)或重命名
  13. ln 创建硬链接
    ln -s 创建软连接
    tip:硬链接相当于新建文件名指向文件(给文件取个别名),软链接指向文件名
  14. wc 获取文本文件的行数、单词数、字节数
  15. od 查看二进制文件信息
    参数: -t 指定数据的显示格式(c/d/f/o/u/x)
  16. du -h 查看当前文件夹和子文件夹大小
  17. df -h 查看磁盘容量信息
  18. which 找到命令对应的路径
  19. 修改文件权限:chmod >folded
    1) 文字设定法:
    chmod [who] [+|-|=] [mode]
        who: -> 不写也相当于对所有的人
            文件所有者:u
            文件所属组:g
            其他人:o
            所有的人:a
        +:添加权限
        -:减少权限
        =:覆盖原来的权限
        mode:
            r:读
            w:写
            x:执行
    例:chmod o+rx [文件名]
    2) 数字设定法:
    chmod [三位数] ->覆盖权限
    chmod [+|-|=] [三位数] ->增加/减少/覆盖权限
        没有权限:0
        r:4
        w:2
        x:1
    例:chmod 765 [文件名]
        7 -- rwx -- 文件所有者
        6 -- rw -- 文件所属组
        5 -- rx -- 其他人
  20. chown 改变文件所有者 [和所属组]
    sudo chown user1[:group2] [文件名]
    chgrp 改变所属组
    tip:chown 和 chgrp 都需要管理员权限
  21. find [目录] -name [文件名] 在指定目录下查找文件(文件名也可以使用通配符叠加 例如:* 和?)
    find [目录] -size [+|-][文件大小] 找大于 / 小于
    例:find [目录] -size +10K -size -10M 按大小范围查找
    find [目录] -type [d|f|b|c|s|p|l] 按文件类型查找
  22. grep -r "查找的内容" [查找的路径] 按文件内容查找
  23. sudo apt-get install [名字] 在线安装软件
    sudo apt-get remove [名字] 卸载软件
    sudo apt-get update 更新软件列表
    sudo apt-get clean 清理所有软件安装包(/var/cache/apt/archives/*.deb)
    tip:也可用 aptitude 代替
  24. sudo dpkg -i [deb包] 通过 deb 包安装软件
    sudo dpkg -r [名字] 卸载软件
  25. mount [U盘对应的设备名(/dev/...)] [要挂载的目录] 挂载 U 盘
    umount [挂载U盘的目录] 卸载 U 盘
    tip:卸载 U 盘时 U 盘不能被占用(包括 cd 到挂载 U 盘的目录下)
    tip:当挂载 U 盘的目录中有文件时,挂载期间文件会被临时覆盖,待卸载 U 盘后恢复原状
  26. alias 查看或设置别名
    alias [shell命令] 查看别名
    alias [封装的命令名]='shell语句' (例:alias pag=‘ps aux | grep’)
    (注意:需要长久有效需要去设置配置文件:.bashrc)

# 压缩包管理


# 基础工具

  1. gzip [要压缩的文件] —— .gz 格式的压缩包
  2. bzip2 [参数(-k)] [要压缩的文件] —— .bz2 格式的压缩包

注意:

  1. gzip 和 bzip2 都只能对单个文件进行压缩,不能对目录进行压缩。
  2. gzip 和 bzip2 默认都不保留源文件,只有 bzip2 可以加 - k 参数保留源文件

# 进阶工具

  1. tar —— 不使用 z/j 参数,该命令只能对文件或目录打包

参数:
c —— 创建 —— 压缩
x —— 释放 —— 解压缩
v —— 显示提示信息 —— 压缩 / 解压缩 —— 可以省略
f —— 指定压缩文件的名字
z —— 使用 gzip 的方式压缩文件 —— .gz
j —— 使用 bzip2 的方式压缩文件 —— .bz2

压缩:
tar zcvf [生成的压缩包的名字(推荐xxx.tar.gz)] [要压缩的文件或目录]
tar jcvf [生成的压缩包的名字(推荐xxx.tar.bzip2)] [要压缩的文件或目录]

解压缩:
tar jxvf [压缩包的名字] -> 解压到当前目录
tar jxvf [压缩包的名字] -C [目录] -> 解压到指定目录

Tip:tar 命令主要做的是打包的功能,内部调用 gzip 和 bzip2 进行压缩操作

  1. rar —— 必须手动安装该软件(实测 Ubuntu-20.04.2.0 自带有)

参数:
a —— 压缩
x —— 解压缩

压缩:
rar a [生成的压缩文件的名字(自动添加.rar后缀)] [要压缩的文件或目录]

解压缩:
rar x [压缩包文件名] [要解压到的目录(不写则默认当前目录)]

  1. zip

参数:
-r 压缩目录时需要加上

压缩:
zip [压缩包的名字] [要压缩的文件]
zip -r [压缩包的名字] [要压缩的文件或目录]

解压缩:
unzip [压缩包的名字]
unzip [压缩包的名字] -d [要解压到的目录]

总结:

压缩:tar/rar/zip [参数] [生成的压缩文件的敏子] [要压缩的文件或目录]
解压缩:tar/rar/unzip [参数] [压缩包的名字] [参数(rar 没有参数)] [要解压到的目录]

# 进程管理


# 相关命令

  1. who 查看当前在线用户的情况(登录的用户名、使用的设备终端、登陆到系统的时间)

关于 tty 设备:(这个没搞太清楚,仅做参考)
tty3 - tty6 表示文字界面(文字终端) - Ctrl+Alt+F3~F6
tty2 (?) 或:0 表示图形界面 - Ctrl+Alt+F2
Ctrl + Alt + F2~F6 切换终端
Ctrl + Alt + F1 切换到用户登录界面(类似 Windows 下的锁定)

  1. ps a 列出当前所有用户的进程信息
    ps au 在上面的基础上再加上 USER、CPU、MEM、VSZ、RSS 的信息
    ps aux 在上面的基础上再加上没有终端的应用信息(没有 TTY 信息的)
    ps aux | grep [要查找的内容] 按要查找的内容过滤进程(注:此命令会把自己也找出来)

  2. kill 杀死进程
    kill -l 查看 kill 命令可以发出的信号
    kill -SIGKILL(-9) [进程PID] 发送 SIGKILL 信号杀死进程

  3. env 查看系统环境变量
    env | grep [要查找的值] 按内容过滤环境变量

  4. top 类似 Windows 下的任务管理器,但只能看而不能进行任何操作

# 网络相关


# 常用命令

  1. ifconfig 查看网络配置信息(相当于 CMD 的 ipconfig)

eth0 - 第一块网卡(第二块 eth1…)
硬件地址(MAC 地址)

  1. ping 同 CMD 的 ping,但是会一直运行直到用户手动结束
    ping -c [次数] 指定 ping 的次数
    ping -i [秒数] 指定每过多少秒给一条回复

  2. nslookup [域名] 查看网站对应的 IP 地址

# 用户管理


# 相关命令

  1. 创建用户:
    sudo adduser [用户名(只能小写英文字母)]
    sudo useradd -s [使用的bash目录(/bin/bash)] -g [所属的组] -d [指定用户的家目录(/home/xxx)] -m(没有这个目录的话就创建) [用户名] (注:通过这条命令创建的用户没有密码,需要再设置 - sudo passwd [用户名])

  2. 删除用户:
    sudo deluser [用户名] (注:这样删除后用户对应的家目录不会被删除)
    sudo userdel -r [用户名] (注:这样会把用户对应的家目录一起删除)

  3. 查看现有用户:
    vi /etc/passwd (/etc/passwd 里存放的是所有用户的信息)

# ftp 服务器搭建 – vsftpd


ftp 服务器作用:实现文件的上传和下载

# 服务器端

(ftp 服务器在本机环境中启动服务失败,原因暂不明,以下仅供参考)

  1. 修改配置文件(/etc/vsftpd.conf)
    sudo gedit /etc/vsftpd.confsudo vi /etc/vsftpd.conf 打开配置文件
    (注意:更改时不要随意修改配置文件书写格式)

  2. 重启服务
    sudo service vsftpd restart

# 客户端

(仅供参考)

  1. 登录
    ftp [服务器IP]
    实名登录:用户名 + 密码
    匿名登录:anonymous + 直接回车

  2. 文件的上传和下载
    put file
    get file
    (注意:不允许操作目录,可以对目录打包后操作)

# nfs 网络共享服务器


类似 Windows 下的共享文件夹

# 服务器端

  1. 创建共享目录
    mkdir [dir]

  2. 修改配置文件(/etc/exports)
    [共享目录路径] [允许访问的IP网段(*代表所有)]([参数1],[参数2],...)
    参数可用:rw —— 可读可写,sync —— 从内存同步到磁盘

  3. 重启服务
    sudo service nfs-kernel-server restart

# 客户端

  1. 挂载共享目录
    sudo mount [服务器IP:共享目录路径] /mnt

# ssh 服务器


(需要先安装 openssh-server)

# 基本命令

查看 SSH 是否安装: sudo aptitude show openssh-server

远程登录: ssh [用户名]@[IP]

退出登陆: logout

# scp 命令(super copy)

scp -r [用户名]@[IP]:[目标文件绝对路径] [保存到的本机路径(绝对或相对)]

拷贝目录时须加 -r 参数


未完待续…

参考文章:
linux 全套教程【黑马】

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

TagBug 微信支付

微信支付

TagBug 支付宝

支付宝