【运维】Linux基础(学习笔记)

Linux基础

Linux概要

  • 操作系统:管理计算机软硬件的程序
  • Linux特点
    • 基本思想
      • 一切都是文件
      • 每个软件都有确定的用途
    • 支持多平台
    • 开源免费

用户操作

账号管理

  • 账号管理需要root权限
  • 登陆用户:su 用户名
  • 推出登陆:Ctrl + D
  • 上下键能出现之前的命令
  1. 创建用户:useradd (选项) 用户名

  2. 设置密码:passed (选项) 用户名

    • 密码不显示
    • 密码要求
      • 数字/字母
      • 大于8位
      • 不能设置回文
  3. 修改用户:usermod ...

    • 修改用户名:usermod -l rex wmh
  4. 删除用户:userdel (选项) 用户名

    • 强制删除:userdel -r -f 用户名

显示用户信息

  • 显示登录账号的信息
  • 语法:logname [--help][--version]
  • 选项:
    1. --help:帮助
    2. --version:版本信息

切换用户

  • 语法:su 用户名
  • 选项
    • su -c 命令 用户名:用此账户执行条命令

用户组

  1. 创建用户组:groupadd [选项] 用户组名
  2. 修改用户组:groupmod [选项] 用户组名
  3. 查询用户所属组:groups 用户组名
  4. 删除用户组:groupdel 用户组名

用户管理

  • 语法:gpasswd(选项)组名

  • 选项

    1. -a:添加用户到组
    2. -d:从组删除用户
    3. -A:指定管理员
    4. -M:指定组成员和-A的用途差不多
    5. -r:删除密码
    6. -R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。
  • 查看组内成员: grep 'kafazu' /etc/group

系统管理

日期管理

  • 查询日期:date [参数]
  • 选项
    1. -d<字符串>:显示字符串所指的日期与时间,字符串加双引号
      • 字符串格式:"yyyy-mm-dd hh:mm:ss"
    2. -s<字符串>:根据字符串来设置日期与时间,字符串加双引号
      • 需要root权限
    3. -u:显示GMT
      • CST:北京时间
    4. --help:帮助
    5. --version :显示版本信息

id命令

  • 查询登录账户的信息:id

sudo命令

  • 提高普通账号的权限:sudo 命令

top命令

  • 实时显示process动态:top [参数]
    • PID:每个进程的id
    • USER:进程所属的用户
    • PR/NI:优先级
    • VIRT:虚拟内存量
    • S:运行状态
      • R:run
      • S:sleep
  • 结束监控快捷键:q
  • 参数
    1. -c:显示完整command命令
    2. -p pid:监控指定进程

ps命令

  • 静态查看正在运行的进程信息:ps [参数]
  • 参数
    • -A:查看全部的进程信息
    • -ef:查看全部的进程信息(完整)
    • -u 用户名:查看属于指定用户的进程信息

kill命令

  • 中断进程:
    • kill pid
    • kill -参数 pid
  • 参数
    • -9:强制结束(酒杀)
  • 中断用户的使用进程
    • kill -9 $(ps -ef | grep 用户名)
    • killall -u 用户名

关机命令

  • 关机:shutdown

    • CentOS7默认延迟一分钟关机
    • 立即关机:shutdown -h now
  • 延迟关机:shutdown +n "xxx"

    • n:指n分钟之后关机
    • "xxx":关机的警告信息
  • 重启:shutdown -r +n "xxx"

  • 取消关机:shutdown -c

重启命令

  • 立即重启:reboot

who命令

  • 显示当前登录系统的用户:who [参数]
  • 参数
    • -H:带标题显示

timedatectl命令

  • ntp时间服务器:用于同步计算机时间
  • 相关命令
    1. 查看服务器时间与时区:timedatectl
    2. 设置时区:timedatectl set-timezone "Asia/Shanghai"
    3. ntp关闭:timedatectl set-ntp false
    4. ntp开启:timedatectl set-ntp true

clear命令

  • 清屏幕:clear

目录管理

目录概要

  • 根目录:/

    • 系统配置文件:etc

    • 系统预设执行文件:bin、sbin、usr

    • 运行日志文件:/var/log

切换目录

  • 切换目录:cd 目录名
    • 相对路径:以当前目录
    • 绝对路径:从根目录/开始
  • 目录回退:cd ..

展示目录

  • 展示目录:ls [参数] 目录名称
  • 参数:
    • -l:详细信息
    • -a:显示隐藏文件
    • -al:所有文件的详细信息
      1. 权限:
        1. d:目录
        2. -:文件
      2. 属主
      3. 属组
      4. 大小
      5. 最后一次访问时间
      6. 文件名

当前目录

  • 查看当前目录:pwd [-P]

创建目录

  • 创建目录:mkdir 文件夹名称
  • 创建多级目录:mkdir -p 文件夹名称1/文件夹名称2

删除空目录

  • 删除空文件夹:rmdir 文件夹名称
  • 删除多级空文件夹:rmdir -p 文件夹名称1/文件夹名称2

删除文件

  • 删除单个目录/文件:rm 文件路径
  • 删除多层目录与其文件:rm -r 文件路径
  • 忽略提醒:rm -p 目录

复制文件

  • 复制单个文件:cp aaa/a.txt bbb
  • 复制整个文件夹:cp -r aaa/* bbb

移动文件/重命名

  • 移动文件:mv 文件 目录
  • 文件重命名:mv 文件 文件
  • 文件夹移动/重命名:mv 目录 目录

目录权限属性

  • 符号权限:

    • 权限分类

      1. -:没有权限
      2. r:读
      3. w:写
      4. x:执行
    • 位数含义:

      1. 第1位:格式

        • -:文件

        • d:目录

        • l:链接文件

      2. 2-4位:属主权限:u

      3. 5-7位:属组权限:g

      4. 8-10位:其他用户权限:o

      5. 全部身份:a

    • 符号

      1. +:加权限
      2. -:减权限
      3. =:设定权限
  • 数字权限

    权限 缩写 数字符号
    r 4
    w 2
    执行 x 1
    无权限 - 0

    数字权限 = 数字和

目录权限修改

chgrp命令
  • 更改目录的属组:chgrp -v 属组名 目录
chown命令
  • 更改目录的属主:chown 属主名 目录
  • 更改目录的属主和属组:chown [参数] 属主名:属组名 目录
    • -R:处理目录及其子目录
chmod命令
  • 更改目录的访问权限:
    • 数字权限:chmod -R 符号权限 目录
    • 符号权限:
      • chmod u=rwx,g=rw,o=r 目录
      • chmod -R a=rwx 目录
      • chamod -R g+x,o+r 目录

文件管理

touch命令

  • 创建一个文件/修改时间属性:touch a.txt

  • 创建多个空文件:touch a{1..5}.txt

  • 查看文件详细属性:stat 文件名

vim编辑器

vi/vim简介
  • vi
    • 只能编辑文本,不能排版
    • 不支持鼠标
    • 没有菜单
    • 只有命令
  • vim
    • vi的升级版
    • 代码补全,编译...
vim的三种模式
  • 三种模式
    • 阅读:命令模式
    • 编辑:编辑模式
    • 保存:末行模式
  • 模式的切换:
    • 命令 --> 编辑:i
    • 编辑 --> 命令:Esc
    • 命令 --> 末行::
    • 末行 --> 命令:Esc Esc
打开文件
  • 打开文件:vim 文件名
    • 如果文件存在:打开文件
    • 如果文件不存在:打开临时文件,保存退出后会新建文件
进入编辑模式
  • i:当前字符前插入
  • I:行首插入
  • a:当前字符后插入
  • A:行末插入
  • o:行后添加一行
  • O:行前添加一行
保存文件
  • :q:无操作退出
  • :q!:不保存退出
  • :wq:正常保存退出
  • :wq!:强行保存退出
vim定位行
  • 查看文件并定位到指定行数:vim 文件名 +行号
异常处理
  • 若vim异常退出,磁盘中会存有交换文件(.swp)
  • 删除交换文件即可

文件查看

cat命令
  • 查看小型文件内容:cat 文件
  • 查看小型文件内容(显示行号):cat -n 文件
less命令
  • 查看大型文件内容:less 文件

  • 查看大型文件内容(显示行号):less -N 文件

  • 退出阅读:q

tail命令
  • 查看文件的最后十行:tail 文件
  • 查看文件的最后...行:tail -... 文件
  • 动态显示最后十行:tail -[...]f 文件
    • 指定最后...行,默认10
    • 退出:Ctrl + C
  • 显示文件最后...个字符:tail -c ... 文件
grep命令
  • 查找文本:grep [参数] 关键字 文件
    • -n:带行号查找
    • -a:忽略大小写
    • -v:不展示
  • 查找进程:ps -ef | grep sshd
    • 求进程个数:ps -ef | grep -c sshd

重定向输出

  • 重定向:将需要输出打印的文本保存到文件
  • 语法:
    • 覆盖:cat a.txt > b.txt
    • 追加:cat a.txt > b.txt

管道

  • 管道:将一个命令的输出作为另一个命令的输入
  • 语法:
    • ps -ef | grep java
    • ls --help | more

echo命令

  • 展示文本:echo 字符串

  • 覆盖写入到文件:echo 字符串 > 文件

  • 追加写入到文件:echo 字符串 >> 文件

  • 追加保存错误信息:错误语法 &>> 文件

软连接

  • 软连接:快捷方式
  • 原理:软连接 --> 文件名的地址 --> 文件名 --> 文件数据
  • 生成软连接:ln -s 原目录 新目录

find命令

  • 查找文件/目录
    • 本目录下按名称查找:find . -name "*.txt"
    • 根目录下按时间(...天内)查找:find / -cname -...

压缩

gzip命令

  • 压缩文件:gzip 文件
  • 解压文件:gzip -dv 文件

gunzip命令

  • 解压文件:gunzip 文件

tar命令

  • 打包文件:tar -cvf 打包文件名 文件名
    • xxx.tar
  • 压缩文件:tar -zcvf 压缩包名 文件夹/文件名
    • xxx.gz
  • 查看压缩包:tar -ztvf 压缩包名
  • 解压:tar -zxvf 压缩包名

zip压缩

  • 压缩文件:zip -q -r 压缩包名 文件/文件夹

    • xxx.zip
  • 查看压缩包:unzip -l 压缩包名

  • 解压文件:unzip -d 解压目录 压缩包名

网络

hostname命令

  • 查看主机名:hostname
  • 更改主机名(临时):hostname xxx
  • 改配置文件:/etc/sysconfig/network

ifconfig命令

  • 显示网卡信息:ifconfig
  • 关闭网卡:ifconfig 网卡名 down
  • 启用网卡:ifconfig 网卡名 up
  • 配置ip地址:ifconfig 网卡名 ip地址
  • 配置ip地址和子网掩码:ifconfig 网卡名 ip地址 netmask 子网掩码

ping命令

  • 检测是否联通:ping ip/域名
  • 指定接收包...次:ping -c ... ip/域名

netstat命令

  • 详细连接情况:netstat -a

  • 网卡列表:netstat -i

域名映射

  • 域名映射:主机名作为ip地址解析
  • 修改/etc/hosts文件

yum命令

  • yum:用于查找安装下载卸载软件
  • 安装tree:yum -y install tree
  • 卸载tree:yum remove tree
  • 查找tom开头的软件:yum list tom*

更改yum源文件

  1. 安装下载工具:wgetyum install -y wget

  2. 下载阿里云的Centos-7.repo文件:wget-OCentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo

  3. 清理之前的缓存,并重新加载yum:yum clean all

  4. 建立一个缓存文件:yum makecache

  5. 查找软件,验证阿里云的yum源是否可以正常使用:yum search tomcat

rpm与yum

  • rpm:只能本地安装程序
  • yum:在线下载并安装

JDK

  • 步骤:
    • 卸载(centos自带精简版jdk)
    • 下载并安装
    • 配置path
相关推荐
懒惰的cv怪41 分钟前
Redis学习 ——缓存
redis·学习·缓存
心怀梦想的咸鱼2 小时前
UE5 umg学习(四) 将UI控件显示到关卡中
学习·ui·ue5
钰爱&3 小时前
【操作系统】Linux之线程同步二(头歌作业)
linux·运维·算法
lx学习3 小时前
Python学习26天
开发语言·python·学习
Yz98765 小时前
Hive基础
大数据·linux·数据仓库·hive·hadoop·bigdata
Back~~6 小时前
MFC1(note)
学习
engchina6 小时前
Oracle ADB 导入 BANK_GRAPH 的学习数据
数据库·学习·oracle·graph
Stara05116 小时前
Linux系统常用操作与命令指南
linux·vim
white.tie7 小时前
linux配置nginx
linux·运维·nginx
Komorebi.py7 小时前
【Linux】-学习笔记03
linux·笔记·学习