Linux入门

部分参考至狂神说Linux系列连载 (qq.com)

1. 目录结构

登录系统后,输入ls / 进入根目录

在这里插入图片描述

  • /bin: 存放最经常使用的命令
  • /boot: 存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
  • /dev: 存放Linux的外部设备
  • /etc: 存放所有的系统管理所需要的配置文件和子目录
  • /home: 用户的主目录,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的
  • /lib: 存放系统最基本的动态连接共享库,类似Windows里的DLL文件
  • /lost+found: 当系统非法关机后,这里就会存放一些文件
  • /media: linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
  • /mnt: 临时挂载别的文件系统,例如将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
  • /opt: 这是给主机额外安装软件所摆放的目录,例如安装一个Oracle数据库则可以放到此目录,默认是空的。
  • /proc: 一个虚拟的目录,他是系统内存的映射,我们可以通过直接访问这个目录来获取系统的信息。
  • /root: 系统管理员的用户主目录
  • /sbin: 该目录存放的是系统管理员使用的系统管理程序。
  • /srv: 存放一些服务启动之后需要提取的数据。
  • /sys: 安装了linux2.6内核新出现的文件系统sysfs
  • /tmp: 存放一些临时文件
  • /usr: 用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录
  • /usr/bin: 系统用户使用的应用程序
  • /usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。
  • /usr/src: 内核源代码默认的放置目录。
  • /var: 存放着不断扩充的东西,我们习惯将那些经常被修改的目录放在这个目录下,包括各种日志文件。
  • /run: 临时文件系统,存储系统启动以来的信息,当系统重启时,目录下的文件应该被删掉或清除。

2. 常用的基本命令

1. 目录管理

绝对路径

由根目录 / 写起,例如/use/share/doc

相对路径

不是由 / 写起,例如从 /usr/share/doc 到 /usr/share/man 底下,可以写成 cd …/man

常用命令

  • ls: 列出目录
  • cd: 切换目录
  • pwd: 显示目前的目录
  • mkdir: 创建一个新的目录
  • rmdir: 删除一个空的目录
  • cp: 复制文件或目录
  • rm: 移除文件或目录
  • mv: 移动文件与目录,或修改文件与目录的名称

可以使用man[命令] 来查看各个命令的使用文档,如:man cp

  1. ls (列出目录)

    -a 全部的文件,连同隐藏文件(开头为.的文件)一起列出来

    -l 长数据串列出,包含文件的属性与权限等等数据

    ls -al ~
    
  2. cd (切换目录)

    # 切换到用户目录下
    cd home  
    # 使用 mkdir 命令创建 kuangstudy 目录
    mkdir kuangstudy
    # 进入 kuangstudy 目录
    cd kuangstudy
    # 回到上一级
    cd ..
    # 回到根目录
    cd /
    # 表示回到自己的家目录,亦即是 /root 这个目录
    cd ~
    
  3. pwd (显示目前所在目录)

    # 单纯显示出目前的工作目录
    pwd
    # /root
    
    # 如果是链接,要显示真实地址,可以使用 -P参数
    cd bin
    pwd -P
    # /usr/bin
    
  4. mkdir (创建新目录)

    # 进入我们用户目录下
    cd /home
    
    # 创建一个 test 文件夹
    mkdir test
    
    # 加了这个 -p 的选项,可以自行帮你创建多层目录!
    mkdir -p test1/test2/test3/test4
    
    # 创建权限为 rwx--x--x 的目录。
    mkdir -m 711 test2
    ls -l
    # drwxr-xr-x 2 root root  4096 Mar 12 21:55 test
    # drwxr-xr-x 3 root root  4096 Mar 12 21:56 test1
    # drwx--x--x 2 root root  4096 Mar 12 21:58 test2
    
    
  5. rmdir (删除空的目录)

    # 看看有多少目录存在?
    ls -l
    # drwxr-xr-x 2 root root  4096 Mar 12 21:55 test
    # drwxr-xr-x 3 root root  4096 Mar 12 21:56 test1
    # drwx--x--x 2 root root  4096 Mar 12 21:58 test2
    
    # 可直接删除掉,没问题
    rmdir test
    
    # 因为尚有内容,所以无法删除!
    rmdir test1
    # rmdir: failed to remove ‘test1’: Directory not empty
    
    # 利用 -p 这个选项,立刻就可以将 test1/test2/test3/test4 依次删除。
    rmdir -p test1/test2/test3/test4
    
  6. rm(移除文件或目录)

    rm [-fir] 文件或目录
    
    • -f:就是 force 的意思,忽略不存在的文件,不会出现警告信息;
    • -d:删除空文件夹
    • -i:互动模式,在删除前会询问使用者是否动作
    • -r:删除文件夹,递归删除 危险!!!
    rm -i install.sh
    # rm: remove regular file ‘install.sh’? y
    # 如果加上 -i 的选项就会主动询问喔,避免你删除到错误的档名!
    
    # 尽量不要在服务器上使用 rm -rf /
    
  7. cp (复制文件或目录)

    cp [-adfilprsu] 来源档(source) 目标档(destination)
    cp [options] source1 source2 source3 .... directory
    
    • -a:相当于 -pdr 的意思,至于 pdr 请参考下列说明;(常用)
    • -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
    • -d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
    • -r:递归持续复制,用于目录的复制行为;(常用)
    • -f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
    • -i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
    • -l:进行硬式连结(hard link)的连结档创建,而非复制文件本身.
    • -s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;
    • -u:若 destination 比 source 旧才升级 destination !
    # 找一个有文件的目录,我这里找到 root目录
    cd /root
    ls
    # install.sh
    cd /home
    
    # 复制 root目录下的install.sh 到 home目录下
    cp /root/install.sh /home
    ls
    # install.sh
    
    # 再次复制,加上-i参数,增加覆盖询问?
    cp -i /root/install.sh /home
    # cp: overwrite '/home/install.sh'? y 
    # n不覆盖,y为覆盖
    
  8. mv (移动文件或目录,或修改名称)

    mv [-fiu] source destination
    mv [options] source1 source2 source3 .... directory
    
    • -f:force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
    • -i:若目标文件 (destination) 已经存在时,就会询问是否覆盖!
    • -u:若目标文件已经存在,且 source 比较新,才会升级 (update)
    # 复制一个文件到当前目录
    cp /root/install.sh /home
    
    # 创建一个文件夹 test
    mkdir test
    
    # 将复制过来的文件移动到我们创建的目录,并查看
    mv install.sh test
    ls
    # test
    cd test
    ls
    # install.sh
    
    # 将文件夹重命名,然后再次查看!
    cd ..
    mv test mvtest
    ls
    # mvtest
    

2. 基本属性

#查看文件的属性以及文件所属的用户和组
ll
#或者
ls -l

Linux入门_第1张图片

  1. 第一个字符:

    • d:目录
    • -:文件
    • l:链接文档
    • b:装置文件里面的可供储存的接口设备 ( 可随机存取装置 )
    • c:装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )
  2. 接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。

    其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。

    要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。

    每个文件的属性由左边第一部分的10个字符来确定(如下图):

    Linux入门_第2张图片

  3. 对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。

    同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。

    文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。

    因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

  4. 修改文件属性

    # chgrp:更改文件属组
    # -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
    chgrp [-R] 属组名 文件名
    
    # chown:更改文件属主,也可以同时更改文件属组
    chown [–R] 属主名 文件名
    chown [-R] 属主名:属组名 文件名
    
    # chmod:更改文件9个属性
    chmod [-R] xyz 文件或目录
    # Linux文件属性有两种设置方法,一种是数字,一种是符号。
    # Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。
    
    # 先复习一下刚刚上面提到的数据:文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
    # r:4     w:2         x:1
    
    # 每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为:
    # [-rwxrwx---] 分数则是:
    # owner = rwx = 4+2+1 = 7
    # group = rwx = 4+2+1 = 7
    # others= --- = 0+0+0 = 0
    
    # chmod 770 filename
    

3. 文件内容查看

  • cat:由第一行开始显示文件内容
  • tac:由最后一行开始显示,与cat相反
  • nl:显示的时候,顺道输出行号!
  • more:一页一页的显示文件内容
  • less:与more相似,可以往前翻页
  • head:只看头几行
  • tail:只看尾巴几行
  1. cat 由第一行开始显示文件内容

    cat [-AbEnTv]
    
    • -A:相当于-vET,可以列出一些特殊字符而不是空白而已
    • -b:列出行号,仅针对非空白行做行号显示,空白行不标行号!
    • -E:将结尾的断行字节$显示出来
    • -n:列出行号,空白行也有
    • -T:将[tab]按键以^|显示出来
    • -v:列出一些看不出来的特殊字符
  2. tac 与cat相反,从最后一行开始显示,倒着展示

  3. nl 显示行号

    nl [-bnw] 文件
    
    • -b:-b a:空行也列 -b t:空行不列

    • -n:-n ln:行号在荧幕的最左方显示; -n rn:行号在自己栏位的最右方显示,且不加0; -n rz :行号在自己栏位的最右方显示,且加 0

      Linux入门_第3张图片

    • -w:行号栏位的占用的位数。

      在这里插入图片描述

  4. more 一页一页翻动

    more /etc/csh.login
    # ....(中间省略)....
    # --More--(28%) # 重点在这一行喔!你的光标也会在这里等待你的命令
    

    在 more 这个程序的运行过程中,你有几个按键可以按的:

    • 空白键 (space):代表向下翻一页;
    • Enter :代表向下翻『一行』;
    • /字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
    • :f :立刻显示出档名以及目前显示的行数;
    • q :代表立刻离开 more ,不再显示该文件内容。
    • b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
  5. less 一页一页翻动

    more /etc/csh.login
    #....(中间省略)....
    # :   # 这里可以等待你输入命令!
    

    less运行时可以输入的命令有:

    • 空白键 :向下翻动一页;
    • [pagedown]:向下翻动一页;
    • [pageup] :向上翻动一页;
    • /字串 :向下搜寻『字串』的功能;
    • ?字串 :向上搜寻『字串』的功能;
    • n :重复前一个搜寻 (与 / 或 ? 有关!)
    • N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
    • q :离开 less 这个程序;
  6. head 取出文件前面几行

    head -n 20 /etc/csh.login
    
  7. tail 取出文件后面几行

    tail -n 20 /etc/csh.login
    
  8. 拓展:Linux 链接概念

    Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。

    ln 命令产生硬链接。

    cd /home
    touch f1 # 创建一个测试文件f1
    ls
    # f1
    ln f1 f2     # 创建f1的一个硬连接文件f2
    ln -s f1 f3   # 创建f1的一个符号连接文件f3
    ls -li       # -i参数显示文件的inode节点信息
    # 397247 -rw-r--r-- 2 root root     0 Mar 13 00:50 f1
    # 397247 -rw-r--r-- 2 root root     0 Mar 13 00:50 f2
    # 397248 lrwxrwxrwx 1 root root     2 Mar 13 00:50 f3 -> f1
    # echo 字符串输出 >> f1 输出到 f1文件
    echo "I am f1 file" >>f1
    cat f1
    # I am f1 file
    cat f2
    # I am f1 file
    cat f3
    # I am f1 file
    rm -f f1
    cat f2
    # I am f1 file
    cat f3
    # cat: f3: No such file or directory
    

    通过上面的测试可以看出:当删除原始文件 f1 后,硬连接 f2 不受影响,但是符号连接 f1 文件无效;

    依此您可以做一些相关的测试,可以得到以下全部结论:

    • 删除符号连接f3,对f1,f2无影响;
    • 删除硬连接f2,对f1,f3也无影响;
    • 删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;
    • 同时删除原文件f1,硬连接f2,整个文件会真正的被删除。

3. Vim使用及账号用户管理

1. 简介

vim是由vi发展出来的一个文本编辑器

安装vim

  • centos: yum -y install vim
  • ubuntu:sudo apt-get install vim-gtkcentos

2. 三种使用模式

  1. 命令模式

    刚进入时候,就是命令模式

    此时,

    • i / o / a 切换到输入模式 r 切换到取代输入模式
    • x 删除当前光标所在处的字符
    • : 切换到底线命令模式
    • gg 移动到最上面
    • G 移动到最后一行
    • n< Enter> n为数字,光标向下移动n行
    • /word 向光标之下搜索word字符串
    • ?word 向光标之上搜索word字符串
    • n 重复前一个搜寻动作(比如刚刚/word 则会继续向下寻找)
    • N 反向搜寻前一个搜寻动作(比如刚刚/word 则会向上寻找)
    • x 向后删除 X 向前删除
    • dd 删除游标所在一整行
    • yy 复制游标所在那一行
    • nyy n数字,复制光标所在的向下n行
    • p 粘贴在游标的下一行 P 粘贴在游标的上一行
    • u 撤销
    • [Ctrl]+r 重做
  2. 输入模式(和windows打字一样)

    • 字符按键以及shift组合,输入字符
    • ENTER,换行
    • BACK SPACE,删除光标前一个字符
    • DEL,删除光标后一个字符
    • 方向建,移动光标
    • HOME/END,移动光标到行首/行尾
    • Page Up/Page Down,上/下翻页
    • Insert,切换光标为输入/替换模式
    • ESC,退出输入模式,切换到命令模式
  3. 底线命令模式

    • q 退出程序
    • w 保存文件
    • ESC 退出底线命令模式
    • q! 修改后不想保存,强制离开
    • wq 保存后离开
    • wq! 强制保存离开
    • ! command 暂时离开vi并执行command的显示结果,例如:『! ls /home』即可在 vi 当中看 /home 底下以 ls 输出的档案信息 按下ENTER后返回vi
    • set nu 显示行号
    • set nonu 取消显示行号

4. 账号管理

  1. 添加账号 useradd

    useradd 选项 用户名
    

    选项:

    • -c comment 指定一段注释性描述
    • -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录
    • -g 用户组,指定用户所属的用户组
    • -G 用户组,用户组 指定用户所属的附加组
    • -m 使用者目录如不存在则自动建立。
    • -s Shell文件 指定用户的登录Shell
    • -u 用户号,如果同时有-o选项,则可以重复使用其他用户的标识号

    用户名:

    • 指定新账号的登录名

    设置默认密码

    adduser --password 123456 testuser

    adduser testuser

    passwd testuser

    # 此命令创建了一个用户kuangshen,其中-m选项用来为登录名kuangshen产生一个主目录 /home/kuangshen
    useradd -m kuangshen
    
  2. 切换用户

    su username 【username为用户名】
    
    • 从普通用户切换到root 也可以使用 sudo su

    • 在终端输入exit或logout或使用快捷方式ctrl+d,可以退回到原来的用户,其实ctrl+d也是执行exit

    • 在切换用户时,如果想在切换用户之后使用新用户的工作环境,可以在su和username之间加-,例如:【su - root】

    • $表示普通用户

      #表示超级用户,也就是root用户

  3. 删除账号

    userdel 选项 用户名
    
    • -r 把用户的主目录一起删除
    userdel -r kuangshen
    
    • 此命令删除用户kuangshen在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。
  4. 修改账号

    usermod 选项 用户名
    
    • 常用选项同useradd命令
  5. 用户口令(密码)的管理

    passwd 选项 用户名
    

    选项:

    • -l 锁定口令,即禁用账号
    • -u 口令解锁
    • -d 使账号无口令
    • -f 强迫用户下次登录时修改口令

    不写用户名,则默认修改当前用户的口令

    例如,当前用户是kuangshen

    passwd
    # Old password:******
    # New password:*******
    # Re-enter new password:*******
    

    如果是超级用户,可以用下列形式指定任何用户的口令:

    passwd kuangshen
    # New password:*******
    # Re-enter new password:*******
    

    普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。

    为用户指定空口令时,执行下列形式的命令:

    passwd -d kuangshen
    

5. 用户组管理

  1. 每个用户都有一个用户组,linux下的用户属于与他同名的用户组,创建用户时会同时创建用户组。

  2. 对用户组的增删改,其实就是对/etc/group文件的更新

  3. 增加一个新的用户组使用groupadd
    groupadd 选项 用户组
    

    选项:

    • -g GID 指定新用户组的组标识号GID
    • -o 一般与-g同时使用,表示新用户组的GID可以与系统已有用户组的GID相同
    groupadd group1
    

    新组 group1 ,标识号是当前已有最大标识号加1

    groupadd -g 101 group2
    

    新组 group2,标识号是101

  4. 删除组
    groupdel 用户组
    
    groupdel group1
    

    删除group1

  5. 删除用户组的属性
    groupmod 选项 用户组
    

    选项:

    • -g GID 修改组标识号
    • -o 与-g同时使用,用户组的新GID可以与系统已有用户组的GID相同
    • -n 新用户组,将用户组的名字改为新名字
    # 此命令将组group2的组标识号修改为102。
    groupmod -g 102 group2
    # 将组group2的标识号改为10000,组名修改为group3。
    groupmod –g 10000 -n group3 group2
    
  6. 切换组

    $ newgrp root
    

    切换到root用户组,前提是root用户组是该用户的主组或附加组

6. 磁盘管理

常用命令:

  • df:Disk Free,统计磁盘中空闲的空间,通过文件系统磁盘块分配图计算得出

    选项:

    • -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
    • -k :以 KBytes 的容量显示各文件系统;
    • -m :以 MBytes 的容量显示各文件系统;
    • -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
    • -H :以 M=1000K 取代 M=1024K 的进位方式;
    • -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
    • -i :不用硬盘容量,而以 inode 的数量来显示
    # 将 /etc 底下的可用的磁盘容量以易读的容量格式显示
    
    df -h /etc
    # Filesystem     Size Used Avail Use% Mounted on
    # /dev/vda1       40G  6.3G   32G  17% /
    
  • du:Disk Used,统计磁盘已经使用的空间,直接统计各文件各目录的大小

    选项:

    • -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
    • -h :以人们较易读的容量格式 (G/M) 显示;
    • -s :列出总量而已,而不列出每个各别的目录占用容量;
    • -S :不包括子目录下的总计,与 -s 有点差别。
    • -k :以 KBytes 列出容量显示;
    • -m :以 MBytes 列出容量显示;
    # 检查根目录底下每个目录所占用的容量
    du -sm /*
    # 0/bin
    # 146/boot
    # .....中间省略....
    # 0/proc
    # .....中间省略....
    # 1/tmp
    # 3026/usr  # 系统初期最大就是他了啦!
    # 513/var
    # 2666/www
    

    挂载与卸除

    mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点
    
    # 将 /dev/hdc6 挂载到 /mnt/hdc6 上面!
    mkdir /mnt/hdc6
    mount /dev/hdc6 /mnt/hdc6
    df
    # Filesystem           1K-blocks     Used Available Use% Mounted on
    # /dev/hdc6              1976312     42072   1833836   3% /mnt/hdc6
    
    umount [-fn] 装置文件名或挂载点
    

    选项与参数:

    • -f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;
    • -n :不升级 /etc/mtab 情况下卸除。
    # 卸载/dev/hdc6
    umount /dev/hdc6
    

7. 内存

  1. top

    $ top
    
    • total:总计物理内存的大小。
    • used:已使用多大。
    • free:可用有多少。
    • Shared:多个进程共享的内存总额。
    • Buffers/cached:磁盘缓存的大小。
  2. htop

    top增强版,安装:

    $ sudo apt install htop
    
  3. free

    # 以合适单位显示
    free -h
    
    # 以mb显示
    free -m
    # 以kb显示
    free -k
    

8. 防火墙

  1. Ubuntu

    • 查看防火墙状态

      sudo ufw status
      
    • 启用防火墙

      sudo ufw enable
      
    • 禁用防火墙

      sudo ufw disable
      
    • 允许特定端口的入站连接

      sudo ufw allow <port>
      
    • 允许特定端口的出站连接

      sudo ufw allow out <port>
      
    • 允许特定IP地址的入站连接

       sudo ufw allow from <IP address>
      
    • 允许特定IP地址的出站连接

       sudo ufw allow out to <IP address>
      
    • 拒绝特定端口的入站连接

      sudo ufw deny <port>
      
    • 拒绝特定IP地址的入站连接

      sudo ufw deny from <IP address>
      
  2. CentOS

    • 查看防火墙状态

      sudo firewall-cmd --state
      
    • 启用防火墙

      sudo systemctl start firewalld
      
    • 禁用防火墙

      sudo systemctil stop firewalld
      
    • 设置防火墙开机启动

      sudo systemctl enable firewalld
      
    • 添加临时开放端口

      sudo firewall-cmd --add-port=<port>/tcp
      
    • 添加永久开放的端口

      sudo firewall-cmd --add-port=<port>/tcp --permanent
      
    • 允许特定IP地址的入站连接

      sudo firewall-cmd --zone=public --add-source=<IP address> --permanent
      
    • 删除特定端口的规则

      sudo firewall-cmd --zone=public --remove-port=<port>/tcp --permanent
      
    • 删除特定IP的规则

      sudo firewall-cmd --zone=public --remove-source=<IP address> --permanent
      
    • 查看已开放的端口

      sudo firewall-cmd --zone=public --list-ports
      
    • 查看已允许的IP

      sudo firewall-cmd --zone=public --list-sources
      
    • 重载防火墙规则

       sudo firewall-cmd --reload
      

9. 安装软件

  1. CentOS使用yum安装软件

    yum update  # 更新软件包
    yum install package_name # 安装软件
    yum remove package_name # 卸载软件
    yum search package_name # 查找软件
    
  2. Ubuntu使用apt-get安装软件

    sudo apt-get update # 更新软件包
    sudo apt-get install package_name # 安装软件
    sudo apt-get remove package_name # 卸载软件
    sudo apt-cache search package_name # 查找软件
    

你可能感兴趣的:(后端技术栈学习笔记,linux,学习,运维,服务器)