Linux下常用命令

Linux下常用命令

这题超纲了 柳筋

前言

看了很多面经,看到面试官好像还蛮喜欢问一些Linux下的命令,以及一些笔试题都会考这个,而说实话我记得的Linux命令实在是不多,所以这篇文章就拿来记录一下学过和没学过的Linux命令吧,也方便以后不懂就直接看这篇文章

Linux常用命令

在终端,我们的命令千奇百怪,但它们都遵循着一个规律,那就是都由3部分组成,如下:
command [-options] [parameter]
说明:

  1. command: 命令名,相应功能的英文单词或单词的缩写
  2. -options: 选项,可用来对命令进行控制,也可以省略
  3. parameter: 传给命令的参数,可以是零个,一个或者多个
    []代表可有也可以没有

查阅命令帮助信息

  1. -help:显示command命令的帮助信息
  2. -man:
    1. 查阅command命令的使用手册
    2. 包含了绝大部分命令,函数的使用方法

使用man时的操作

Linux常用命令

  1. 查看当前文件夹的内容

    1
    2
    3
    4
    5
    6
    ls [选项] [想要查看的文件夹的相对路径或者绝对路径]

    常用选项:
    1. -a:显示指定目录下所有子目录与文件,包括隐藏文件
    2. -l:以列表方式显示文件的详细信息
    3. -h:配合 -l 以人性化的方式显示文件大小
  2. 查看当前文件夹的绝对路径

    1
    pwd
  3. 切换文件夹

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    cd [想要切换的文件夹的相对路径]

    1. cd
    :切换到当前用户的主目录(/home/用户目录)
    2. cd ~
    :切换到当前用户的主目录(/home/用户目录)
    3. cd .
    :保持在当前目录不变
    4. cd ..
    :切换到上级目录

    相对路径和绝对路径
    相对路径:在输入路径时,最前面不是 / 或者 ~,表示相对 当前目录 所在的目录位置
    绝对路径:在输入路径时,最前面是 / 或者 ~,表示从 根目录/家目录 开始的具体目录位置
  4. 创建一个文件

    1
    2
    3
    4
    touch 文件名

    如果文件不存在,则创建一个空白的文件
    如果文件存在,则修改该文件的末次修改日期
  5. 创建一个空目录/删除一个空目录

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    mkdir [选项] [路径]目录名

    选项:
    1. -p: 层级创建
    2. -v:显示创建顺序
    新建的文件夹名称不能与当前目录已有的目录或者文件同名

    rmdir [-p] [路径]目录名
    -p: 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除
    删除空目录 不能删除非空目录,不能删除文件
  6. 删除文件或者文件夹

    1
    2
    3
    4
    5
    6
    7
    rm [-选项] [文件名/文件夹名]

    选项:
    1. -r:递归地删除目录下的文件,删除文件夹的时候必须有这个选项
    2. -f:强制删除,忽略不存在的文件,无需提示

    rm命令不可逆,所以需要谨慎使用
  7. 将一个文件或者目录复制到另外一个文件或者目录

    1
    2
    3
    4
    5
    6
    cp [选项] [想要复制的源文件的相对路径或者绝对路径] [目的文件或者文件夹的绝对路径或者相对路径]

    选项:
    1. -f或者--force:强行复制文件或目录, 不论目的文件或目录是否已经存在
    2. -i或者--interactive:覆盖文件之前先询问用户
    3. -r:若给出的源文件是目录文件,则 cp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
  8. 移动文件,也可以给文件重命名

    1
    2
    3
    4
    5
    6
    7
    mv [选项] [源文件的相对路径或者绝对路径] [目标文件的相对路径或者绝对路径]

    选项:
    1. -f:强制的意思,如果目标文件已经存在,不会询问而直接覆盖
    2. -i: 若目标文件(destination)已经存在时,就会询问是否覆盖

    如果是要移动文件,则目标文件不需要写文件名,表明路径就可以
  9. 查看文件内容、创建文件、文件合并、追加文件内容等功能

    1
    2
    3
    4
    5
    6
    7
    cat [选项] 文件名

    选项:
    1. -b:对非空输出行进行编号
    2. -n:对输出的所有行进行编号

    cat会一次显示所有的内容,适合查看内容较少的文本文件
  10. 搜索文本文件内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    grep [选项] '想要查找的字符串' 文件名

    允许对文本文件进行 模式查找,所谓模式查找,又被称为正则表达式

    选项:
    1. -a:将binary(二进制)文件以text文件的方式查找数据
    2. -c:计算找到 '想要查找的字符串' 的次数
    3. -i:忽略大小写的区别,即把大小写视为相同
    4. -v:反向选择,即显示出没有 '想要查找的字符串' 内容的那一行
  11. 用来在指定目录下查找文件

    1
    2
    3
    4
    5
    6
    7
    find [路径] [选项] 操作

    选项:
    1. -name :后面的操作为在指定目录下想要查找的文件的名字
    2. -size :后面的操作为在指定目录下,文件大小大于某个值的文件,其中操作这一块就为(+一个值)
    例如: -size +100k,表示查找文件大小大于100k的文件
    3. -ctime :查询指定目录下,在过去n天内被修改过的文件,其中操作处为n
  12. 修改用户对文件的权限

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    chmod [选项] 文件名

    选项:
    1. -r :赋予读取权限
    2. -w :赋予写入权限
    3. -x :赋予执行权限
    4. 777 :赋予可读、可写、可执行权限(读:4,写:2,执行:1)

    权限说明:(例:-rw-r--r-x 的权限为645)

    权限显示位一共为10位,分为四段,从第二位算起,每三个一组
    第1位代表文件类型(-表示为普通文件)
    第2-4位代表文件所属用户拥有的权限(rw-:4+2=6)
    第5-7位代表该用户所属组拥有的权限(-r--:4)
    第8-10位代表其他用户拥有的权限(r-x:4+1=5)

  13. 用来列出系统中当前正在运行的那些进程,类似于 windows 的任务管理器

    1
    2
    3
    4
    5
    6
    7
    8
    ps [选项]

    选项:
    1. -A :列出所有的进程
    2. -ef :查看全格式的全部进程
    3. -w :显示加宽,可以显示较多的资讯
    4. -au :显示较详细的资讯
    5. -aux :显示所有包含其他使用者的进程
  14. 显示路由表、实际的网络连接以及每一个网络接口设备的状态信息

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    netstat [选项]

    选项:
    1. -a或者-all :显示所有连线中的Socket
    2. -A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址
    3. -c或--continuous:持续列出网络状态
    4. -C或--cache:显示路由器配置的快取信息
    5. -e或--extend:显示网络其他相关信息
    6. -l或--listening:显示监控中的服务器的Socket

    例如:
    1. netstat -a # 列出所有端口
    2. netstat -at # 列出所有TCP端口
    3. netstat -au # 列出所有UDP端口
    4. netstat -ax # 列出所有unix端口
    5. netstat -atnlp # 直接使用ip地址列出所有处理监听状态的TCP端口,且加上程序名

    netstat的功能很强大,这里不方便详细说明,可以去网上查找更详细的资料

vim/vi 的常用命令

vim/vi 的使用

基本上 vi/vim 共分为三种模式,分别是

  1. 命令模式(Command mode)
  2. 输入模式(Insert mode)
  3. 底线命令模式(Lastline mode)

它们的转换关系如下

  1. 命令模式
    用户刚刚启动 vi/vim,便进入了命令模式。此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令
    常用的几个命令:

  2. i :切换到输入模式,以输入字符。

  3. x :删除当前光标所在处的字符。

  4. : :切换到底线命令模式,以在最底一行输入命令。
    若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式

    更多命令模式下的操作
  5. 输入模式
    在命令模式下按下 i 就进入了输入模式
    在输入模式中,可以使用以下按键:

  6. 字符按键以及Shift组合:输入字符

  7. ENTER:回车键,换行

  8. BACK SPACE:退格键,删除光标前一个字符

  9. DEL:删除键,删除光标后一个字符

  10. 方向键:在文本中移动光标

  11. HOME/END:移动光标到行首/行尾

  12. Page Up/Page Down:/下翻页

  13. Insert:切换光标为输入/替换模式,光标将变成竖线/下划线

  14. ESC:退出输入模式,切换到命令模式

  15. 底线命令模式
    在命令模式下按下:(英文冒号)就进入了底线命令模式
    底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有(已经省略了冒号):

  1. q 退出程序
  2. w 保存文件

在后面加上!号代表强制操作
按ESC键可随时退出底线命令模式

结语

这篇文章是在我看到很多面经都有问到类似的问题才觉得应该整理一下一些命令,当然了,命令那么多,我自然没办法一次性记下来,以后遇到一些常用的命令还会继续在这篇文章上加上去的

原本是打算在动车上写的,但是动车上没有插座,我怕写一半没电了就没写了,说起来,在动车上还遇到一群旅游回来的川美学生,其中有一位漂亮的小姐姐还来找我要薯片吃哈哈,算是这辈子第一次被女生给主动搭话?

跑来重庆搞IOS开发,说实话,我对客户端属实兴趣不大,但相对于学校的什么粤嵌什么的,我还是觉得自己找个实习比较好,我也不知道自己这次的选择对不对,但是每个选择都只能等以后来判断,所以现在只能一条路走到底,当然了,既然选择了来实习,自然就要做到最好,况且公司福利不错,就是重新学一门知识,我还得保持每天刷题以及看会八股,对我来说也挺有挑战的,万一期间找到我更想去的实习又该怎么办呢?期末考试也还要跑回学校,提前一周去吧至少得,不然我觉得可能会挂科…还要想想找房子的事情,哎,算是开始从学生转变为一个初入社会的毛头小子了,只能慢慢适应啦

说起来,我可能不适合在重庆送外卖或者跑滴滴,今晚为了省钱,从地铁站走回住的地方,跟着导航走,我都能走1h,也就3km,太绕了,而且我总感觉不像是在城市里一样,走的路都没什么人,还有一段上山的路…太恐怖了,以后要是送外卖肯定会一直超时被罚钱的…

  • 标题: Linux下常用命令
  • 作者: 这题超纲了
  • 创建于: 2023-04-05 15:26:14
  • 更新于: 2023-06-23 14:48:11
  • 链接: https://qx-gg.github.io/2023/04/05/blog16/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
推荐阅读
文件系统 文件系统 IO多路复用 IO多路复用 Linux下的“库”和“链接” Linux下的“库”和“链接”
 评论