Linux学习笔记

56 阅读11分钟

Linux系统组成

虚拟机介绍

快照功能:通过快照片将当前虚拟机保存下来,在以后可以通过快照恢复虚拟机到保存的状态。

Linux 命令基础

  • su - root (切换管理员用户)
  • logout 退出登录

command [-options] [parameter]

1. commend 命令本身
2. -options 命令的一些选项,可以通过控制选项控制命令的行为细节
3. -parameter: 命令的参数,多数用于命令的指向目标等
  • ls [-a -l -h] [linux路径] 以平铺形式打开目录,默认(home目录,终端打开时,默认为home目录)

    1. -a 表示all的意思,列出全部文件
    2. -l 以列表(竖向排列的形式)展示内容
    3. -l 与 -a 可结合使用 -al -la
    4. -h表示易于阅读的形式,列出文件的大小,如K、M、G,与-l结合使用, -l -h -lh
  • 目录切换命令 cd 、pwd

    cd [Linux路径]

    1. 无参:回到用户home目录(应为回到默认目录,不一定是home)
    2. 有参:切换到指定目录

    pwd 输出当前工作目录

  • 特殊路径符

    1. . 当前目录,cd ./Desktop, 与cd Desktop一致
    2. .. 上一级目录 cd .. cd../.. 返回上两级目录
    3. ~ 默认目录, cd ~ 切换到默认路径
  • mkdir [-p] Linux路径

    1. 参数必填,表示要创建的文件夹的路径
    2. -p选项可选,表示自动创建不存在的父目录,使用于创建连续多层级目录
  • touch Linux路径 创建文件

  • cat Linux路径 文件查看命令

  • more Linux 文件查看命令,支持翻页, 空格翻页,q退出

  • cp [-r] 参数1 参数2

    1. -r选项,可选,用于复制文件夹使用,表示递归
    2. 参数1 被复制的文件及问价夹
    3. 参数2 要复制去的地方
  • mv 参数1 参数2 移动文件/文件夹,参数二在目标不存在时可执行改名功能

  • rm [-r -f] 参数1 参数2 ...参数3

    1. -r 选项用于删除文件夹
    2. -f 表示force强制删除(root用户可使用)
    3. 通配符*
    4. -r -f可联合使用 -rf
  • which 用于查找一些命令的程序文件

    1. 语法:which 要查找的命令
  • find 搜索指定文件

    1. 语法:find 起始路径 -name "被查找文件名"
    2. find 起始路径 -size +|-n[KMG] +、-表示大于小于,n表示大小数字,KMG表示大小单位,
  • grep 可以从问文件中通过关键字过滤文件行

    1. 语法:grep [-n] 关键字 文件路径
    2. -n 可选, 表示在结果中显示匹配的行号
    3. 关键字,必填,表示过滤的关键字,带有空格或其他特殊符号,建议使用" " 将关键字包围起来
    4. 文件路径,必填,表示要过滤内容的文件路径,可作为内容输入窗口
  • wc 统计文件的行数、单词数量等

    1. 语法:wc [-c -m -l -w] 文件路径
    2. -c, 统计bytes数量
    3. -m,统计字符数量
    4. -l, 统计行数
    5. -w, 统计单词数量
    6. 文件路径,被统计的文件,可作为内容输入端口
  • 管道符 | 将左边命令的结果作为右边命令的输入

  • echo 命令 在命令行输出指定内容

    1. echo 输出的内容
  • 被 ` 包围的字符将被视为命令执行,而不作为普通字符

  • 重定向符

    1. ">" 将左边的命令结果覆盖到右侧文件中
    2. ">>" 将左侧的命令结果追加到右侧文件中
  • tail命令可以查看文件尾部内容,跟踪文件的最新更改

    1. 语法:tail [-f -num] Linux路径
    2. Linux路径,表示被跟踪的文件路径
    3. -f 表示持续跟踪
    4. -num 表示查看尾部多少行,不填默认10
  • vi\vim 是visual interface的简称,是Linux中最经典的文本编辑器

  1. vim 是 vi的加强版本,兼容vi的所有指令,不仅能编辑文本,而且具有shell程序编辑的功能,可以不同颜色的字体来辨别语法的正确性,极大方便了程序设计和编辑性。
  2. 命令模式:键盘所输入的内容都为命令,以命令去驱动执行不同的功能,在此模式下,不能自由进行文本编辑(yy复制一行, dd删除一行,uu撤销)
  3. 输入模式:编辑模式,插入模式,可对文件进行自由编辑
  4. 底线模式:常用于文件的保存和退出
模式命令描述
命令模式i在当前光标位置进入输入模式
命令模式a在当前光标位置之后进入输入模式
命令模式I当前行的开头进入输入模式
命令模式A当前行的结尾进入输入模式
命令模式o当前光标下一行进入输入模式
命令模式O当前光标上一行进入输入模式
输入模式esc任何情况下回到命令模式
命令模式键盘上、k向上移动
命令模式键盘下、j向下移动
命令模式键盘左、h向左移动
命令模式键盘右、l向右移动
命令模式0移动光标到当前行的开头
命令模式$移动光标到当前行的末尾
命令模式PgUp向上翻页
命令模式PgDn向下翻页
命令模式/进入搜索模式
命令模式n向下继续搜索
命令模式N向上继续搜索
命令模式dd删除行
命令模式ndd删除光标向下n行
命令模式yy复制当前行
命令模式nyy复制当前行和下面n行
命令模式p粘贴复制内容
命令模式u撤销修改
命令模式ctrl + r反向撤销修改
命令模式gg跳到首行
命令模式G跳到行尾
命令模式dG从当前行开始,向下全部删除
命令模式dgg从当前行开始,向上全部删除
命令模式d$从当前光标开始,删除到本行末尾
命令模式d0从当前光标开始,删除到本行开头
底线命令模式set nu显示行号
底线命令模式set paste设置粘贴模式

Linux 用户和权限

root用户

  • 切换用户
    1. su [-] [用户名]
    2. -是可选的,表示在切换用户后加载环境变量
    3. 用户名,可选,默认为root、
    4. exit 推出当前用户
  • sudo 为普通的命令授权,临时以root身份执行
    1. sudo 命令
    2. 需要为普通用户配置sudo认证
su
visudo  #(会自动通过vi编辑器打开: /etc/sudoes)
# 在文件最后添加以下内容(为ithema用户添加sudo权限)
ithema ALL=(ALL)    NOPASSWD: ALL

用户组管理

  • 创建用户组:groupadd 用户组名
  • 删除用户组:groupdel 用户组名

用户管理

  • 创建用户: useradd [-g -d]

    1. -g 指定用户的组,不指定-g 会创建同名用户组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
    2. -d 指定用户HOME目录,不指定,HOME目录默认在:/home/用户名
  • 删除用户:userdel [-r] 用户名

    1. -r 删除用户的Home目录,不使用的话会将Home目录保存
  • id 查看用户所属的组

  • usermode -dG 用户组 用户名,将指定用户添加到指定用户组

  • getent passwd 查看当前系统中有哪些用户

  • getent group 查看系统中有哪些组

查看权限控制

  • rwx
    1. r 针对文件,可以查看文件内容,针对文件夹,可以查看文件夹内容,如ls命令
    2. w 针对文件表示可修改此文件,针对文件夹,可以在文件夹内:创建、删除、改名等操作
    3. x 针对文件表示可将文件作为程序执行,针对文件夹,表示可以更改工作目录到此文件夹,即cd进入

修改权限控制

  • chmod命令 (只能是文件、文件夹的所属用户或root用户有权修改)

    1. chmod [-R] 权限 文件或文件夹
    2. -R 对文件夹内的全部内容应用同样的操作
    3. 示例:chmod -R u=rwx, g=rx, o=x test,将文件夹test以及文件夹内全部内容权限设置为 rwxr-x--x
  • 权限数字序号(r记为4, w记为2, x记为1):

    1. 0 :---
    2. 1 :--x
    3. 2 :-w-
    4. 3 :-wx
    5. 4 :r--
    6. 5 :r-x
    7. 6 :rw-
    8. 7 :rwx
    9. 例:751表示rwx(7)r-x(5)--x(1)
  • chown 命令 修改文件、文件夹的所属用户和用户组(普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户)

    1. chown [-R] [用户][:][用户组]
    2. -R,对文件夹内全部内容应用相同规则
    3. 用户,修改所属用户
    4. 用户组,修改所属用户组
    5. :用于分割用户和用户组
    6. 示例1:chown root hello.txt, 将hello.txt的所属用户修改为root
    7. 示例2:chown :root hello.txt,将hello.txt的所属用户组修改为root
    8. 示例3:chown -R ro
    9. ot:root hello

Linux实用操作

常用快捷键

  • ctrl + d 退出登录,退出某些特定程序的专属页面(python等)
  • history 查看历史输入过的命令
  • !命令前缀,自动执行上一次匹配前缀的命令
  • ctrl + r, 输入内容去匹配历史命令
  • ctrl + a 跳到命令开头
  • ctrl + e 跳到命令结尾
  • ctrl + -> 向左跳一个单词
  • ctrl + -> 向右跳一个单词
  • ctrl + l clear

软件安装

  • yum 命令 : RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题

    1. yum [-y] [install | remove | search] 软件名称
    2. -y 自动确认
    3. install : 安装
    4. remove : 卸载
    5. search : 搜索
    6. yum 需要root权限,且需要联网
  • apt (ubuntu 使用)

    1. apt [-y] [install | remove | search] 软件名称

软件启动和关闭

  • systemctl 管理服务(软件)的启动、停止、开机自启
    1. systemctl start | stop | status | enable | disable 服务名
    2. start 启动
    3. stop 关闭
    4. status 查看状态
    5. enable 开启开机自启
    6. disable 关闭开机自启
  • 系统内置服务
    1. NetworkManage,主网络服务
    2. network,副网络服务
    3. firewalld, 防火墙服务
    4. sshd, ssh服务(FinalShell远程登录Linux系统使用的就是这个服务)
    5. 除系统内置服务以外,部分第三方软件安装后也可以通过systemctl进行控制
    6. yum install -y httpd,安装apache服务器软件
  • 部分软件安装后没有自动集成到systemctl中,我们可以手动添加。

软链接

  • 在系统中创建软链接,可以将文件、文件夹链接到其他位置,类似Windows中的快捷方式
    1. 语法:ln -s 参数1 参数2
    2. -s 选项,创建软连接
    3. 参数1 被链接的文件或文件夹
    4. 要链接去的目的地
  • 示例
  1. ls -s /etc/yum.conf ~/yum.config

日期、时间

  • date 命令
    1. date [-d] [+格式化字符串]
    2. -d 可以安装给定的字符串显示日期,常用于日期计算
    3. +|- year | month | day | hour | Minute | second
    4. date -d "+1 month"
  • ntp 自动校准时间
    1. ntpdate -u ntp.aliyun.com

IP 地址与主机名

  • ifconfig 查看ip
  • hostname
    1. hostnameectl set-hostname 主机名,修改主机名(需root
  • 虚拟机的Linux操作系统若通过DHCP服务获取IP,则每次重启设备后就会获取一次,可能导致IP地址频繁变更
  • systemctl restart network 重启网络服务

网络传输

  • ping 命令
    1. ping [-c] ip或主机名
    2. -c 为检查次数,不适用-c将无限次检查
  • wget 命令行下载网络文件
    1. wget [-b] url
    2. -b 后台下载,会将日志写入到当前工作目录的wget-log文件
    3. 可通过 tail -f wget-log 查看下载进度
  • curl 可以发送网络请求,可用于文件下载,获取信息
    1. curl [-O] url
    2. -O 下载文件,但url是下载链接时,可用此选项保存文件
  • 端口
    1. 物理端口:可见的接口 usb等
    2. 虚拟端口:计算机内部端口,是不可见的,用来操作系统和外部交互使用的
    3. 公认端口:1 - 1023:常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口,HttPS服务的443端口,非特殊需要,不要占用这个范围的端口
    4. 注册端口:1024-4915:通常可以随意使用,用于松散的绑定一些程序\服务
    5. 动态端口:49152-65535:通常不会固定绑定程序,二十当程序对外进行网络连接时,用于临时使用
    6. nmap ip 查看ip对外暴露的端口
    7. netstat -anp | grep 端口号,查看指定端口占用情况,安装netstat:yum -y install net-tools

进程管理

  • 查看进程
    1. ps [-e -f] -e 显示全部进程,-f以完全格式化的形式展示信息
    2. 关闭进程:kill [-9] 进程ID -9 : 强制结束

主机状态

  • top 查看CPU、内存使用情况,类似Windows任务管理器
top详解.png
top详解.png
top详解.png
top详解.png
  • df iostat 磁盘信息监控
    1. df [-h] -h单位显示
    2. iostat [-x] [num1] [num2] 显示CPU 、磁盘的相关信息 -x 显示更多信息, num1 数字,刷新间隔, num2 数字,刷新几次
    3. iostat 安装 yum -y install sysstat
  • 网络状态监控
  1. sar -n DEV num1 num2 : -n 查看网络, DEV表示查看无网络接口, num1 刷新间隔, num2 查看次数

环境变量

  • env 查看环境变量
  • $ 用于取"变量"的值
    1. echo $PATH
    2. echo ${PATH}ABCD 输出PATH + ABCD
  • export 变量名=变量值 设置环境变量(临时设置)
  • 环境变量配置,永久生效
    1. 针对当前用户生效,配置在用户的 ~/.bashrc文件中
    2. 针对所有用户生效,配置在系统的 /etc/profile文件中
    3. 通过语法: source 配置文件,进行立刻生效,或重新登录