Published on

Linux基础常用指令

Authors
  • avatar
    Name
    Et cetera
    Twitter

Linux 概述

  • 冯诺伊曼体系下,计算机由五大基本单元组成:

    • 控制器
    • 运算器
    • 存储器单元
    • 输出单元
    • 输入单元
  • Linux 一般分为四个部分:

    • 内核
      • 内核是硬件与软件之间的中间层
      • 内核是一个资源管理程序
      • 内核提供一组面向系统的命令
    • shell
    • 文件系统
    • 应用程序

进程管理

  • 进程是正在执行的一个程序或命令
  • 进程有自己的地址空间,占用一定的系统资源
  • 一个 CPU 核同一时间只能运行一个进程
  • 进程由它的进程 ID(PID)和它父进程的进程 ID(PPID)唯一识别
# 查看启动的 nginx 进程
ps -ef | grep nginx

# 查看指定端口占用情况
lsof -i :5173

# 查看某个进程
top -p 93824

# 关闭指定的进程
kill 93824

# 全部进程动态实时视图
top

Linux 基础常用指令

首先 Linux 系统没有盘符,只有一个根目录/

  • linux 中无论什么命令都有其通用的格式:
    • comman [-options] [parameter]
    • command:命令本身
    • -options:[可选]命令的一些选项,可以通过选项控制命令的行为细节
    • parameter:[可选]命令的参数,多数用于命令的指向目标等

ls 命令

shell ls [-a -l -h] [Linux路径] 当不使用选项和参数直接使用ls命令本体,表示:以平铺形式,列出当前工作目录下的内容

ls -a:-a 表示 all,即列出全部文件(包括隐藏的文件/文件夹) ls -l:-l 表示以列表竖向排列的方式展示内容 ls -al:选项是可以组合使用的 ls -lh:-h 表示以易于阅读的形式,列出文件大小,必须搭配-l 一起使用

目录切换

cd(Change Directory)切换工作目录:cd [Linux路径]

  • cd 命令无需选项,只有参数,表示要切换到哪个目录下
  • cd 命令直接执行,不写参数,表示回到用户的 HOME 目录

pwd 查看当前工作目录:pwd

无选项、无参数,直接使用命令

相对路径&绝对路径

绝对路径:cd /Users/jiantianjianghui/Web_Project 相对路径:cd Web_Project等同于cd ./Web_Project

特殊路径符

~: cd ~回到 home(我 Mac 下的 home 目录:/Users/jiantianjianghui) 目录 ..: cd ..回到上一层目录 .:cd .当前目录

文件夹操作,创建目录mkdir

使用:mkdir [-p] Linux路径

  • 参数 Linux 路径必传
  • -p选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录

⚠️注意:创建文件夹需要修改权限,一般都需要在HOME目录下进行操作,HOME外操作涉及到权限问题,无法操作成功

rmdir [-p] 目录名称删除空的目录

  • -p:连同上一级『空的』目录也一起删除

文件操作

  • 主要指令:
    • touch Linux路径创建文件:无选项、参数必填
    • cat Linux路径查看文件内容:参数必填
      • -b:列出行号,仅针对非空白行做行号显示,空白行不标行号!
      • -n:列印出行号,连同空白行也会有行号,与 -b 的选项不同
    • more Linux路径查看文件内容:无选项、参数必填
    • head [-n number] Linux路径取出文件前面几行:
      • -n:后面接数字,代表显示几行的意思
    • tail [-n number] 文件取出文件后面几行:
      • -n:后面接数字,代表显示几行的意思
      • -f:表示持续侦测后面所接的档名,要等到按下[ctrl + c] 才会结束 tail 的侦测
    • catmore指令查看文件的区别:
      • cat直接展示所有内容
      • more支持翻页:通过空格翻页,q 退出查看
      • lessmore
    • cp [-r] 参数1 参数2:用于复制文件/文件夹
      • -r,可选,用于复制文件夹使用,表示递归,常用来拷贝一整个目录
      • 参数 1:Linux 路径,表示被复制的文件或文件夹
      • 参数 2:Linux 路径,表示要复制去的地方
    • rm [-fir] 文件或目录移除目录或文件
      • -f:就是 force 的意思,忽略不存在的文件,不会出现警告信息 同时需要 root 用户权限
      • -i:互动模式,在删除前会询问使用者是否动作
      • -r:递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
      • rm命令支持通配符*进行模糊匹配,举例如下:
        • test*,表示匹配任何以 test 开头的内容
        • *test,表示匹配任何以 test 结尾的内容
        • *test*,表示匹配任何包含 test 的内容
        • ⚠️ 常见的删库跑路指令rm -rf /*慎用
    • mv [-fiu] source destinationmv [options] source1 source2 source3 .... directory移动文件与目录,或修改名称
      • -f:force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
      • -i:若目标文件 (destination) 已经存在时,就会询问是否覆盖!
      • -u:若目标文件已经存在,且 source 比较新,才会升级 (update)

查找操作

  • which 命令:which 一般查找指令所在位置
  • find 起始路径 -name "被查找文件(夹)名":根据文件名查找(使用 sudo(mac)/su(linux)root 权限)有了管理员权限后可以全局搜索,文件名也可以使用通配符*匹配
  • find 起始路径 -size +|-n[kMG]
    • +、-表示大于和小于
    • n 表示大小数字
    • kMG 表示大小单位,k(小写)表示 kb、M 表示 MB、G 表示 GB
    • 示例:
      • 查找小于 10KB 的文件: find / -size -10k
      • 查找大于 100MB 的文件: find / -size +100M
      • 查找大于 1GB 的文件: find / -size +1G

过滤

  • grep [-n] 关键字 文件路径:从文件中通过关键字过滤文件行
    • -n:可选,表示在结果中显示匹配的行的行号
    • 参数:关键字(必须),表示过滤的关键字,带有空格或其他特殊符号,建议使用""将关键字包围起来
    • 参数:文件路径(必须),表示要过滤内容的文件路径,可作为内容输入端口
  • wc [-c -m -l -w] 文件路径:统计文件的行数、单词数量等
    • -c:统计 bytes 数量
    • -m:统计字符数量
    • -l:统计行数
    • -w:统计单词数量
    • 参数:可作为内容输入

管道符|

  • 含义:将左侧的输出作为右侧输入
  • 示例:cat demo.txt | grep demo

输出

echo 输出的内容:可以使用 echo 命令行内输出指定内容

echo `pwd`

被反引号包围的内容会作为指令运行

重定向符>>>

  • >:将左侧命令的结果,覆盖写入到符号右侧指定的文件中
  • >>:将左侧命令的结果,追加写入到符号右侧制定的文件中