• Linux常用命令


    目录

    1.Linux 背景知识

    Linux 是什么

    Unix & Linux 发展历程图

    Linux 环境搭建

    2.Linux 常用命令

    ls:列出目录下的子目录/文件

    pwd:显示当前路径

    cd:切换路径

    tab 键

    touch:更改文件日期/新建文件

    mkdir:新建目录

    rm:删除

    注意事项:

    理解递归删除的过程:

    cp:复制

    mv:移动

    man:查看命令

    cat:查看文件内容

    vim:编辑文本

    1) 创建文件 / 打开文件

    2) 进入插入模式

    3) 保存

    4) 退出

    less:查看文件内容

    head

    tail

    重定向

    重定向的三种方式:

    注意:

    管道

    date:显示时间

    1. 在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记


    2. 时间戳

    grep:搜索

    ps

    使用: 

    netstat

    使用:


    1.Linux 背景知识

    Linux 是什么

    Linux 是一个操作系统. 和 Windows 是 "并列" 的关系.

    Linux 严格意义来说只是一个 "操作系统内核".

    一个完整的操作系统 = 操作系统内核 + 配套的应用程序

    Unix & Linux 发展历程图

    Linux 环境搭建

    主要有四种:

    1. 直接安装在物理机上. 但是由于 Linux 桌面使用起来非常不友好. [不推荐].
    2. 使用虚拟机软件, 将 Linux 搭建在虚拟机上. 但是由于当前的虚拟机软件(如 VMWare 之类的)存在一些 bug , 会导致环境上出现各种莫名其妙的问题, 比较折腾. [非常不推荐]
    3. 使用 WSL (Windows Subsystem for Linux). 这个是 Windows 近几年开发的新功能, 在 Windows系统内集成了一个 Linux. 但是目前这个技术还不够成熟. [暂时不推荐].
    4. 使用云服务器, 可以直接在 腾讯云, 阿里云或华为云 等服务器厂商处直接购买一个云服务器. [墙裂推荐]

     使用云服务器不仅环境搭建简单, 避免折腾, 同时还有一个最大的好处, 部署在云服务器上的项目可以直接被外网访问到, 这个时候就和一个公司发布一个正式的网站没有任何区别. 也就能让我们自己写的程序真的去给别人去使用.

    2.Linux 常用命令

    ls:列出目录下的子目录/文件

    语法:ls [选项] [目录或文件]

    s 参数  =   ls 参数./

    . 表示当前目录

    .. 表示上级目录

    功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

    常用选项:

    • -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
    • -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
    • -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
    • -l 列出文件的详细信息。
    • -r 对目录反向排序。
    • -t 以时间排序。
    • -R 列出所有子目录下的文件。(递归)

    pwd:显示当前路径

    功能:显示用户当前所在的目录,一般可以显示当前路径,复制到其他地方。

    cd:切换路径

    Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。

    语法:cd 目录名

    功能:改变工作目录。将当前工作目录改变到指定的目录下.

    tab 键

    输入某个路径下的目录或文件名,可以使用Tab自动补全(匹配到一个)

                                                          按两下Tab,显示匹配的多个内容

    touch:更改文件日期/新建文件

    语法:touch [选项]... 文件...

    功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。

    mkdir:新建目录

    语法:mkdir [选项] dirname...

    功能:在当前目录下创建一个名为 “dirname”的目录

    常用选项:

    • -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多级目录

    rm:删除

    语法:

    rm [-f-i-r-v] [dirName/dir]

    功能:

    删除文件或目录

    常用选项:

    删除文件:rm -f 文件路径

    删除目录:rm -rf 目录路径

    • -f 即使文件属性为只读(即写保护),亦直接删除
    • -i 删除前逐一询问确认
    • -r 删除目录及其下所有文件

    注意事项:

    千万不要运行 rm -rf / , 尤其是在公司的生产服务器上.

    理解递归删除的过程:

    先手动创建如下目录结构:
    test
    ├── a
    │ ├── a1
    │ │ ├── 1.txt
    │ │ └── 2.txt
    │ └── a2
    ├── b
    │ ├── b1`
    │ │ ├── 1.txt
    │ │ └── 2.txt
    │ └── b2
    └── c
    使用 rm -ri 命令删除 test, 观察删除的顺序。

    cp:复制

    语法:cp [选项] 源文件或目录 目标文件或目录

    功能: 复制文件或目录

    说明:

    cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息 

    常用选项:

    • -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
    • -i 或 --interactive 覆盖文件之前先询问用户
    • -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
    • -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理

    mv:移动

    语法:

    mv [选项] 源文件或目录 目标文件或目录

    功能:

    1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
    2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
    3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

    常用选项

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

    man:查看命令

    Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。

    语法:

    man [选项] 命令

    功能:查看命令及参数的含义。按q退出

    常用选项:

    • -k 根据关键字搜索联机帮助
    • num 只在第num章节找
    • man man 能够看到 man 手册中的若干个章节及其含义

    cat:查看文件内容

    语法:

    cat [选项] [文件]

    cat -n 带行号显示

    功能:查看目标文件的内容(大文件慎用)

    常用选项:

    • -n 对输出的所有行编号

    vim:编辑文本

    vim 是一个知名的文本编辑器. 前面学习的 cat, less, head, tail 等命令只能查看文本, 不能编辑文本. 使用vim 就可以进行编辑了.

    vim 就相当于 Windows 的记事本. 只不过功能比记事本强大一些.

    1) 创建文件 / 打开文件

    vim [文件名]

    2) 进入插入模式

    vim 打开文件后默认是普通模式. 普通模式下键盘的按键表示一些特殊功能的快捷键. (例如按下 j 并不是输入字母 "j", 而是表示光标往下移动一行). 需要进入插入模式才能进行文本编辑.

    使用 i 键可以进入到插入模式. (左下角提示 --INSERT-- ) 然后就可以像记事本一样正常编辑了.

    3) 保存

    在插入模式下不能保存文件, 需要先回到 普通模式 . 按下 Esc 回到普通模式.

    在普通模式下输入 :w , 再按下回车, 即可保存文件.

    直接输入:q不会保存内容且会出现报错,不想修改内容退出需输入:q!

    4) 退出

    在插入模式下不能退出, 需要先回到普通模式.

    在普通模式下输入 :q , 再按下回车, 即可退出.

    也可以直接使用 :wq 同时执行保存和退出.

    less:查看文件内容

    语法:less [参数] 文件

    功能:查看文件内容(一屏一屏的显示). 不会立刻把所有文件内容加载到内存中. 也能进行查找.

    选项:

    • j k / 方向键: 向上向下滚动屏幕.

    • -N 显示每行的行号
    • /字符串:向下搜索“字符串”的功能
    • n:重复前一个搜索(与 / 或 ? 有关)
    • q: 退出

    语法:head [参数]... [文件]...

    功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

    选项:

    -n<行数> 显示的行数

    tail

    语法:tail [必要参数] [选择参数] [文件]

    功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

    选项:

    • -f 循环读取
    • -n<行数> 显示行数

    重定向

    Linux 的很多指令, 如 cat head tail 等都是默认输出到 "标准输出" 中, 也就是显示器上的. 可以通过
    > 这样的符号把本来要输出到标准输出上的内容写到特定文件中. 这样的操作称为 "重定向".

    重定向的三种方式:

    1. 标准输入重定向(<)
    2. 标准输出重定向 (>)
    3. 标准错误重定向 (2>), 注意 2 和 > 之间不能有空格.

    标准输入, 标准输出, 标准错误是三个特殊的文件, 每个进程在启动的时候都会默认打开. 分别对应
    到键盘, 显示器, 显示器这样的设备.

    在 Java 中, 分别对应到 System.in , System.out , System.err

    注意:

    重定向表示把原来的输出改向输出到文件中,原来的输出就没有了

    管道

    管道是一种古老的 "进程间通信" 方式. 在 Linux 指令中可以使用 | 作为管道标记.

    意思是将前一个指令标准输出的内容, 作为第二个指令的标准输入内容

    date:显示时间

    date 指定格式显示时间: date +"%Y-%m-%d %H:%M:%S"

    date 用法:date [OPTION]... [+FORMAT]

    1. 在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记


    • %H : 小时(00..23)
    • %M : 分钟(00..59)
    • %S : 秒(00..61)
    • %X : 相当于 %H:%M:%S
    • %d : 日 (01..31)
    • %m : 月份 (01..12)
    • %Y : 完整年份 (0000..9999)
    • %F : 相当于 %Y-%m-%d

    2. 时间戳

    时间->时间戳:date +%s

    时间戳->时间:date -d@1508749502

    Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒

    grep:搜索

    语法:grep [参数]... [文件]...

    功能:用于查找文件中是否包含指定字符串, 并显示对应的行.

    选项:

    • -n<行数> 显示的行数
    • -w 全字匹配. 要求整个单词都完全相同的结果才能匹配出来, 而不仅仅是一个单词的一部分.
    • -r 递归查找. 可以搜索多级目录下的所有文件.
    • --color 高亮查找到的结果
    • --include 指定查找某些文件
    • --exclude 指定排除某些文件

    ps

    语法:ps [参数]...

    功能:用于查看当前系统上运行的进程

    选项:

    • a 显示一个终端的所有进程
    • u 以用户为主的格式来显示程序状况
    • x 显示所有程序,不以终端机来区分

    使用: 

    1. ps aux # 显示系统上所有的进程
    2. ps aux | grep "进程名"
    3. ps aux | grep "进程id"

    netstat

    语法:netstat [参数]...

    功能:查看系统上的网络状态.

    选项:

    • -a 显示所有正在或不在侦听的套接字
    • -n 显示数字形式地址而不是去解析主机、端口或用户名
    • -p 显示套接字所属进程的PID和名称

    使用:

    1. netstat -anp
    2. netstat -anp | grep "进程名"
    3. netstat -anp | grep "端口号"
  • 相关阅读:
    3D Gaussian Splatting:用于实时的辐射场渲染
    JS element从数组中取出两个字段组成新的数组
    【2013】408联考数据结构真题整理
    二叉树基本操作实现 && 树和二叉树&& 二叉树进阶oj && 堆的基本概念 && 优先级队列的使用_
    【 C++ 】vector迭代器失效与深浅拷贝问题
    PySpark数据分析基础:pyspark.mllib.regression机器学习回归核心类详解(一)+代码详解
    基于vue框架的二手书交易网站
    webpack5打包之 图片、字体、icon
    HarmonyOS 实现表单页面的输入,必填校验和提交
    CUDA和cuDNN的安装
  • 原文地址:https://blog.csdn.net/m0_59155415/article/details/125432112