# Linux 基础

# 概念

  • Linux 指的是 Linux 内核 Linux Kernel
  • 我们通常使用的是 Linux 发行版,在 Linux 内核基础上打包了一些应用软件和系统软件,形成了 Linux 操作系统。
    • 常见的 Linux 发行版有 centos、ubuntu、redhat、debian、fedora
    • ubuntu 是在 debian 基础上做了一些优化和个性化的封装。
    • redhat 公司是商业公司,提供商业支持。开源了 redhat 源代码,centos 就是在 redhat 的基础上发展起来的。 centos 是 redhat 公司的社区支持版本。该公司资助了 fedora。
  • 常用的虚拟机 vmware

# 常用软件安装

  • 下载 wmware:window 下载 Workstation Pro、mac 下载 Fusion。
  • 下载 centos:centos 作为服务器用 下载 minimal 版本 iso(常用的有 163、huaweicloud、aliyun 镜像)。内存配置 1G
  • 下载 ubuntu:ubuntu 作为 window 开发环境,下载 Desktop LTS 版本。内存配置 2G ~ 4G
  • centos 下安装软件:yum;ubuntu 下安装软件:apt-get

# 常用 linux 命令总结

  • ssh 登录服务器:ssh user@ip 或者 ssh user@域名 (只是域名,不带协议,例如 ssh root@www.baidu.com)
  • su 切换用户:su user1
  • ls 列举目录
    • ls -l 长格式显示目录 = ll
    • ls -a 显示隐藏文件
    • ls -d 查看目录本身的属性
  • exit 退出当前登录
  • cat 查看文件内容
    • 分页查看 cat file | more,然后按空格分页查看。
  • 在 linux 里下载工具和软件包的命令
    • wget:支持 http 和 https 协议;wget 软件 url;断点续传下载 wget -c 软件 url
    • curl:支持 http https ftp 协议;例如 curl http://www.baidu.com 、curl http://www.baidu.com -o baidu.html
  • 在 linux 里安装 yum install 例如:yum install wget
  • 查看手册 man:man wget。
  • w / who:查看登录用户信息。
  • 文件处理命令
    • mkdir:创建目录
      • mkdir -p 目录名:递归创建目录。
    • cd:切换目录
      • cd / 切换到根目录。
      • cd ~ 切换到用户目录。
    • pwd:查看当前目录
    • rmdir:删除目录
    • rm:删除目录或文件
      • -r 递归删除目录
      • -f 强制删除
    • cp:复制
      • cp 源文件或目录 目标文件
      • cp -r:递归复制
      • cp -d:若源文件是链接文件,则复制链接属性
      • cp -p:连带文件属性复制
      • cp -a:=== cp -rpd
    • mv:移动文件
      • mv 源文件或目录 目标文件
    • locate:在后台数据库按文件名搜索
      • 数据保存在/var/lib/mlocate 后台数据库中,每天更新一次。
      • 用 updatedb 命令立即更新。
      • 速度比较快,只能搜索文件名。
    • whereis:搜素命令所在路径和帮助文件所在位置
      • -m:只搜索帮助文件
      • -b:只搜索可执行文件
    • which:搜索外部安装命令,无法查看 shell 自带的命令。
    • find:文件搜索命令
      • find 搜索范围 搜索条件
      • find -name:按照名字查找
        • find . -name a.txt
      • 通配符查找
        • “*” 任意字符
        • . 任意一个字符
        • [] 中括号中的任意一个字符
      • i 不区分大小写查找
      • user 按照所有者查找
      • size 按照文件大小查找
        • +10k:大于 10k
        • 10k:10k
        • -10k:小于 10k
        • find . -size +10k
      • 修改时间查找
        • ctime:修改文件属性
        • atime:访问时间
        • mtime: 修改文件内容时间
        • 10:10 天当天
        • +10:10 天之前
        • -10:10 天以内
        • find . -mtime 10
      • 综合应用
        • a:and
        • o:or
        • not:非
        • find /tmp -size +10k -a -size -20k
    • grep:在文件中匹配符合条件的字符串
      • i:不区分大小写
    • 压缩和解压命令
      • zip 格式
        • 压缩文件:zip 压缩文件名 源文件
        • 压缩目录:zip -r 压缩文件名 源目录
        • 解压:unzip 压缩文件名
        • mkdir book; zip -r book.zip book
      • gzip 格式
        • gzip 源文件名:压缩源文件为.gz,同时删除源文件
        • gzip -d 压缩文件名(.gz):解压缩文件,同时删除 .gz 压缩包
        • gunzip 压缩包(.gz):解压缩文件,同时删除 .gz 压缩包
        • gzip -c 源文件名 > 压缩文件名(.gz):压缩源文件,同时保留源文件
        • gzip -r 目录名:压缩目录里的文件,不压缩目录
        • 压缩是压缩目录下的文件
      • bz2 格式
        • bzip2 源文件名:压缩源文件为 .bz2 格式,同时删除源文件
        • bunzip2 压缩包(.bz2):解压缩文件
        • bzip2 -d 压缩包(.bz2):解压缩文件
        • bzip2 -k 源文件:压缩源文件为 .bz2 格式,同时保留源文件
        • 不能压缩目录
      • tar
        • 打包命令
        • tar -cvf 打包文件名 源文件
          • c:打包
          • v:显示打包过程
          • f:指定打包后的文件名
          • x:解打包
        • tar -cvf a.txt.tar a.txt
        • tar -xvf a.txt.tar

# 常用 Linux 终端快捷键

  • ctrl + s:冻结终端。
  • ctrl + q:解冻终端。
  • ctrl + c:强行终止。
  • ctrl + a / ctrl + e:光标移动到行首/行尾。
  • ctrl + d:退出 shell。
  • ctrl + l:清屏 == clear。

# linux 目录介绍

  • root 目录 root 用户的目录在 /root

  • boot 目录 引导操作系统的配置文件和操作系统的内核

  • home 目录 root 用户的 home 目录在 root 目录下 /root,其他用户的目录在 /home/(/home/user1),每一个用户的 home 目录下 都有一个 .bashrc 配置当前用户的环境变量

  • etc 目录 存放程序和系统配置文件 _ 不同配置文件 形式不同 _ shadow:用户身份的配置文件 _ nginx:/ect/nginx/nginx.conf _ .d:shell 脚本文件 _ 用户目录 ~ 下 ls -a 也可以看到一些配置文件 _ profile:全局配置环境变量,重启生效 _ rc.d rc.local rc0.d ... :操作系统在启动的时候要执行的脚本 用来拉起 一些服务 _ “#!shell 解释器路径”:shell 脚本的第一行(#!/bin/bash 或者 #!/bin/sh)

  • var 目录

    • /var/log 目录 存放 操作系统、服务和程序 默认日志文件。(例如 nginx、jenkins、mariadb、yum)
    • /var/www/html:apache 服务的默认网站根目录
  • bin 目录 存放的是二进制文件 常用的执行命令 是/usr/bin 的一个 软连接

  • media、mnt 目录 挂载 外部存储设备(例如 u 盘) mnt 目录

  • temp 目录 存放程序运行时产生的临时文件

  • run 目录 存放程序运行时产生的临时文件和 pid 文件。

  • dev 目录 硬件设备、虚拟设备,在 Linux 下 所有的设备都是文件。(打开一个终端,依赖的就是 tty)。

  • lib 目录 linux 的二进制库 * linux 下的二进制库有 .a .so .lib 文件

  • opt 目录 空目录,用来放自己的程序

  • proc 目录 在内存中 虚拟目录 操作系统运行的时候才出现的目录 存储 操作系统运行时所需要维护的数据。(例如 服务进程、cpu 信息、mem 信息)

  • usr 目录 存放 常用的程序和库