青训营第②课(Linux基础)

133 阅读7分钟

Linux指令

注:本笔记基本上是个人使用liux的常用指令笔记,个人感觉视频课里的东西没啥用。因为经常部署Hadoop大数据分布式系统,所以感觉没啥需要记录的,以后有空可能会写一下怎么部署的笔记吧。

  • Linux目录结构

    • / - 根目录

    • /bin - 存放重要的用户二进制文件目录

    • /boot - 存放系统启动时需要文件的目录

    • /dev - 设备文件目录

    • /etc - 配置文件目录

    • /home - 用户目录

    • /lib - 重要的共享库目录

    • /lost+found - 恢复文件目录

    • /mnt - 临时挂载点目录

    • /opt - 可选包目录

    • /proc - 内核和进程文件目录

    • /root - root 用户的 home 目录

    • /run - 应用程序状态目录

    • /sbin - 系统管理员用的二进制文件目录

    • /srv - 服务数据目录

    • /tmp - 临时文件目录

    • /usr - 用户二进制文件和只读文件目录

      1. /usr/bin 存放用户命令
      2. /usr/include 存放编程语言的头文件和包含文件
      3. /usr/lib 存放各个应用程序的库函数和目标文件
      4. /usr/local 存放系统管理员下载的软件的安装目录
      5. /usr/sbin 存放不常用的系统命令
      6. /usr/src 存放源码
    • /var - 变动数据目录

      1. /var/cache 存放应用程序运行产生的临时文件
      2. /var/lib 存放程序在执行过程中需要使用到的数据文件,每个软件在此目录下都有自己独自的目录
      3. /var/lock 存放程序的锁状态
      4. /var/log 存放各种日志文件
      5. /var/mail 存放个人电子邮箱
      6. /var/run 有些程序在运行后,会将他们的 pid、socket 文件放置到这个目录中
  • Linux基础指令

    • ls (list):列出指定目录(默认当前)下的所有文件和目录的名称

      • ls
      • ls /root
      • ls -l // 等价于ll
      • ls -la // 显示包括隐藏文件(以点开头的文件/目录)
      • ls -lh // 以可读性较高的形式列出文件和目录
    • pwd:打印当前工作目录

    • cd:切换目录

      • cd ~ // 快速切换到当前用户的家目录
    • mkdir:创建目录,

      • mkdir 路径(可以是文件夹名称,也可以是包含名称的完整路径)
      • mkdir -p 路径 // 创建路径中的所有文件夹
      • mkdir 路径1 路径2 … // 创建多个
    • touch:创建文件

      • touch 文件路径
    • cp:复制文件/文件夹到指定位置

      • cp 被复制的文档目录 目的文档目录 // 复制过程中,可以对文件重命名
      • 进行文件夹复制时,需要条件 -r 选项 : cp -r ./a/ /home (-r:表示递归复制)
    • mv:移动文档到新的位置(剪切)

      • mv 需要移动的文档路径 目的路径
      • 重命名
    • rm:移送/删除文档

      • rm [选项] 需要移除的文档

        -f :强制删除

        -r:递归删除

    • vim:文本编辑

      • vim 文件路径 // 文件不存在则创建
    • 输出重定向:一般命令的输入都会显示在终端,需要将一些命令的执行结果保存到文件中,则需要使用到输出重定向

      > : 覆盖输出,会覆盖掉原先的文件内容

      >> :追加输出,不会覆盖原始文件内容,

      • ls -lh > ls.txt // ls.txt文件可以不存在
    • cat:

      • 直接打开文件
      • 合并文件:cat 待合并的文件路径1 待合并的文件路径2 … > 合并之后的文件路径 // 合并文件
  • 进阶指令

    • df:查看磁盘空间

      • df -h
    • free:查看内存使用情况

      • free -m // 以Mb为单位进行查看
    • Swap:用于临时内存,当系统真实内存不够用时,可以临时使用磁盘空间来充当内存

    • head:查看文s件的前n行,如果不指定n,默认显示10行

      • head -n 文件路径 // n表示数字,表示显示几行
    • tail:查看文件的末几行

      • tail -n 文件路径 // n为数字,表示显示几行
      • tail -f 文件路径 // 查看文件的动态变化
    • less:以较少的内容进行输出,按辅助功能键(数字+回车、空格键(翻页)+上下方向键)查看更多,按q键退出

    • wc:统计文件内容信息(包含行数、单词数、字节数)

      • swc -lwc 需要统计的文件路径 // lwc // 分别表示行数、单词数、字节数
    • date:表示操作时间日期(读取,设置),CST(当地时间),UCT,GMT

      • date //
      • date +%F // 2021-6-28,等价于date “+%Y-%m-%d”
      • date “+%F %T” // 2021-06-28 21:18:40,等价于:date “+%Y-%m-%d %H:%M:%S”
      • date -d “-1 day” // 一天前的时间,单位:day/year/month/
    • cal:操作日历

      • cal // 输入当前月份日历
      • cal -3 // 输入上月+ 本月+下月
      • cal -y 年份 // 输入指定年份日历
    • clear/ctrl + L :清除终端中已经存在的信息, ctrl+L是快捷键方式

    • 管道(|) :配合指令使用,用于:过滤、

      • 过滤:

        • ls | grep a // 过滤出当前目录下包含a的目录,grep主要用于过滤
      • 扩展处理

        • ls | wc -l // 统计当前目录下的文档数量
  • 高级指令

    • hostname :操作服务的主机名(读取,操作(使用hostname指令操作是临时的))

      • hostname // 输入完整主机名
      • hostname -f // 输出当前主机名中的FQDN(全限定域名)
    • id:查看一个用户的一些基本信息(用户id,用户组id,附加组id),如果不指定用户则默认当前用户

      用户信息:/etc/passwd, 用户组信息: /etc/group

      • id
      • id 用户名
    • whoami :显示当前登录用户名,一般用于shell脚本

    • ps -ef:主要用于查看服务器的进程信息

      • -e :列出全部进程
      • -f:显示全部的列

      ps -ef | grep 进程名称

      • UID:该进程执行的用户
      • PID:进程id
      • PPID:父级进程ID,如果一个进程的父级进程找不到,则该程序的进程称之为僵尸进程
      • C:cpu的占用率
      • STIME:进行的启动时间
      • TTY:终端设备,发起该进程的设备识别符号,如果显示"?",则表示该进程并不是由终端设备发起
      • CMD:该进程的名称或者对应的路径
    • top:查看服务器的进程占用的资源

      • top // 动态显示,按q键退出

        • M:按内存(MEM)从高到低进行排序
        • P:按CPU使用率
        • 1:当服务器拥有多个cpu的时,切换展示各个菜谱的详细信息
      • PID:进程id
      • USER:该进程对应的用户
      • PR:优先级
      • VIRT:虚拟内存
      • RES:常驻内存
      • SHR:共享内存, 进程实际使用内存=常驻内存-共享内存
      • S:表示进程的状态 S/R
      • %CPU:cpu占用百分比
      • %MEM:内存占用百分比
      • TIME+: 执行的时间
      • COMMAND:进程的名称或路径
    • du [-sh] :查看目录的真实大小

      选项含义:

      • -s:只显示汇总的大小
      • -h:表示以高可读性的形式显示
    • find:用于查找文件

      • find 路径 选项 选项的值

        • 选项: -name(按文档名称模糊搜索), -type(按文档类型 (f/d: 文件/文件夹))
      • find ./ -name *conf | wc -l // 统计当前目录下以conf结束的文件个数

      • find ./ -type f // 查找当前目录下的所有文件

    • service:用于控制一些软件的服务启动/停止/重启

      • service 服务名 start/stop/restart
    • kill:杀死进程

      • kill 进程id // 需与ps配合使用
      • killall 进程名称
    • ifconfig:操作网卡相关信息,inet是网卡的IP地址

    • reboot:重启计算机

      • reboot
      • reboot -w //模拟重启,但是不重启,写关机与开机的日志信息(用于测试日志配置)
    • shutdown

      • shutdown -h now // 立即关机
      • shutdown -h 15:25 “关机提示语” //定时关机
      • halt // 立即关机
      • init 0 // 立即关机
      • poweroff // 立即关机
    • uptime:输出计算机的持续在线时间(从开机到现在的运行时间)

    • uname:获取操作系统的相关信息

      • uname // 操作系统的类型
      • uname -a
    • netstat -tnlp:查看网络连接状态

      • -t:列出tcp协议的连接
      • -n:将地址从字母组合转化成IP地址(如localhost -> 127.0.0.1),将协议转化成端口号来显示
      • -l:过滤出state字段的值为LISTEN(监听)的连接
      • -p:发起连接的进程pid和进程名称
    • man:手册(manual),包含了Linux中全部命令手册

      删除光标前后的内容:

      • 前:ctrl+u
      • 后:ctrl+k

其实还有后续各种光盘挂载,软件安装,镜像更换等指令,但是我已经懒得写了,笔记只是为了完成打卡任务。