Linux

2020-04-21

  • 简 介

Linux,全称GNU/Linux,是一套免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年第一次释出,它主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的Debian、Archlinux、DeepinCentOS,和基于商业开发的RedHatSUSEOracle等。

  • 文 件 操 作
查看文件:  
    cat aa.txt     ---- 一次性打印文件内容到屏幕   
    less aa.txt    ---- 根据屏幕分页打印内容,文件比较大适用
    head -n 5 aa.txt    --- 查看文件前5行
    tail -n 5 aa.txt    --- 查看文件末5行

------------------------------------------

移动文件:
    mv  aa.txt  /var/test/aa.txt    --- 移动文件aa.txt 到 /var/test 下
    mv  aa.txt bb.txt               --- 重命名文件
    
------------------------------------------

文件链接(类似Windows 快捷方式):
    ln  参数  源文件  新文件(快捷方式)
    ln -s /usr/bin/mkdir /usr/bin/mk     --- 在/usr/bin 创建一个文件mk,并指向/usr/bin/mkdir
    
------------------------------------------

创建空白文件:
    touch aa.txt     --- 创建空白aa.txt

------------------------------------------

删除文件或目录:
    rm aa.txt     --- 删除 aa.txt 文件,默认带确认提示
    rm -f aa.txt     --- 删除 aa.txt 文件,不提示,直接删除(也叫强制删除,慎用)
    rm -rf aa     --- 删除 aa,aa 可以是文件或者目录

------------------------------------------
            

  • 用户管理
借用身份:
    sudo apt-get update     --- 以管理员身份运行命令 apt-get update (这个是 Ubuntu 命令)
    su root     --- 切换 root 用户

------------------------------------------

用户创建/删除:
    useradd -r test     --- 创建一个系统用户
    useradd -g root test     --- 创建用户test,并指定默认组为root
    useradd -g test test -G root     --- 创建用户test,并指定默认组为test(指定组必须存在),同时加入root组
    useradd test -u 1002     --- 创建用户test,并指定UID为 1002

    id     --- 默认打印出当前用户信息
    id  test     --- 如果用户test存在,则打印出相关信息,不存在则报错

    userdel -r test     --- 删除用户test以及它的home文件
    userdel -f test     --- 强制删除用户test,即使用户已经登录

    passwd test     --- 修改用户 test密码,需要输入两遍密码
    passwd -d test     --- 删除 用户test 密码
    passwd -l test     --- 禁止test用户修改密码
    passwd -S test     --- 查看test用户密码状态
    echo "admin123" | passwd --stdin test     --- 修改test用户密码,不用输入两遍,脚本常用(免交互)

------------------------------------------

用户组创建/删除:
    groupadd test     --- 创建普通组 test
    groupadd -r test     --- 创建系统级组 test

    groupdel test     --- 删除组 test
    
    gpasswd -a test root     --- 让test用户加入root组,同时保留自己的组不变
    gpasswd -d test root     --- 把用户test从root组删除

    groupmod -n test01 test     --- 把test组改名 test01
    groupmod -g 1005 test     --- 把组 test GID 修改为 1005 

  • 磁盘、目录

    磁盘相关:
      blkid        --- 查看设备 UUID(默认列出所有磁盘分区信息)
      blkid /dev/sda2    --- 查看指定分区 UUID
    
      df -h    --- 查看磁盘空间情况
      
      du -sh /usr    --- 查看目录大小
      
      fdisk -l         --- 查看物理磁盘情况及挂载信息
      fdisk /dev/sda    --- 物理磁盘管理(分区、删除分区等)
      mkfs.ext4 /dev/sda1        --- 格式化分区,后缀( .ext4 )就是分区格式
      mount /dev/sda1 /mnt/test    --- 把分区挂载到  /mnt/test 目录下(Linux下所有磁盘必须挂载才能进行读写)
      umount /mnt/test    --- 卸载挂载目录

    自动挂载:

    1. 把需要挂载的分区【可以是本地或者是网络硬盘】按一定格式写入 /etc/fstab 文件;
    /dev/mapper/centos-root /                       xfs     defaults        0 0        # 写法1
    
    UUID=dbcfa94e-4ec7-40b4-9c0f-67dabccc5c26 /boot                   xfs     defaults        0 0   # 写法2

注:如果是网络磁盘,建议使用UUID 进行挂载

书写格式:需要挂载的磁盘(绝对路径/UUID) 挂载目录 文件格式 defaults 0 0


  • 网络、防火墙
    1、网络配置文件

      a. /etc/sysconfig/network-script/ifcg-XXX  ( CentOS/Redhat 默认配置文件)
      b. /etc/network/interfaces     (Ubuntu -- 默认配置文件 )

    2、网络配置文件样例

// CentOS/Redhat

vim /etc/sysconfig/network-script/ifcfg-enp03

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static   # IP获取方式 dhcp(自动获取) 或 static(静态IP)
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=enp0s3  # 网卡名称
UUID=ea773efc-e3ed-4bda-87a8-8e7ee3d1846f
DEVICE=enp0s3
ONBOOT=yes  # 开机自启
IPADDR=192.168.1.10   # IP 地址
PREFIX=24  # 子网掩码,两种写法 NETMASK=255.255.255.0  或 PREFIX=24
GATEWAY=192.168.1.1  # 网关地址,如果只是一个段内互通,可以省略

// Ubuntu/Debian 系列

auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1

3、网卡管理

    a. systemctl restart network  // 可用 ifconfig 情况下
    b. ifdown XXX ; ifup xxx
    c. ip link set XXX down ; ip link set XXX up
    d. nmtui  // 可以调出图形配置窗口进而配置

4、路由相关

    a. 查看路由: route -n 或 ip route
    b. 添加路由: route add -net 192.168.2.0 netmask 255.255.0 dev ens03
                route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.1.1
    c. 删除指定路由: route del net 192.168.2.0 netmask 255.255.255.0
    d. 添加默认路由: route add default gw 192.168.1.1  // 添加默认路由
                   route del default gw  192.168.1.1  // 删除默认路由

5、DNS 相关

    a. 查看当前 DNS : nslookup
    b. DNS 配置文件: /etc/resolv.conf
                    nameserver  180.76.76.76
    c. 或者在网卡配置文件中增加: DNS1=180.76.76.76
                             DNS2=114.114.114.114

  • 系统配置
    Yum 相关:
    A、联网情况,一般都能连上公有源,直接使用 yum install 包名 即可进行安装相关软件;

B、私网情况下,就需要配置本地源,操作如下:

Ⅰ. 有光盘情况下:mount /dev/cdrom /media
   备份原有源配置文件:
cd /etc/yum.repo.d/
mkdir yum_cfg_bk
mv ./*.repo yum_cfg_bk
vi media.repo      // 新打开文件输入以下内容

[media]  # 这个名字需和文件名一致
name=Media-ISO    # 这个类似于描述作用
gpgcheck=0    # 是否校验,一般否
enabled=1    # 源是否有效:1 为有效,0 为无效;
baseurl=file:///media    # 镜像地址,就是光盘挂载目录


------------------------------------------
                
Ⅱ. 无光盘,仅有镜像情况下:
上传 系统镜像至服务器指定目录(目录看自己喜欢),如果是Centos7镜像建议使用 *-Everythin.iso 这种版本,这里假如上传至 /media 目录中

镜像名:CentOS-8.2.2004-x86_64-dvd1.iso

cd /media 
mkdir Centos8    # 创建目录,方便挂载
mount -o loop CentOS-8.2.2004-x86_64-dvd1.iso  Centos8    # 把镜像文件挂载到目录 Centos8 中

cd /etc/yum.repo.d/
mkdir yum_cfg_bk
mv ./*.repo yum_cfg_bk
vi Centos8-Media.repo      # 新打开文件输入以下内容

[Centos8-Media]  # 这个名字需和文件名一直
name=Centos8-Media    # 这个类似于描述作用
gpgcheck=0    # 是否校验,一般否
enabled=1    # 源是否有效:1 为有效,0 为无效;
baseurl=file:///media/AppStream    # 镜像地址,就是光盘挂载目录

  • 软件升级
    Ⅰ. OpenSSL 升级

  • 下载最新版本 OpenSSL,并上传到服务器
  • 解压OpenSSL,并编译安装
    tar xvf openssl-1.1.1k.tar.gz // 解压文件
    ./config --prefix=/usr/local/openssl shared zlib // 编译文件
    make depend
    make && make install // 安装OpenSSL
    rm -f /usr/bin/openssl;rm -f /usr/include/openssl
    ln -s openssl/bin/openssl /usr/bin/openssl //创建链接文件
    ln -s /usr/local/openssl/include/openssl /usr/include/openssl
    echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
    ldconfig -v
    openssl version // 查看是否安装成功
    [root@VM-0-17-centos bin]# openssl version

    OpenSSL 1.1.1k 25 Mar 2021 (Library: OpenSSL 1.1.1g FIPS 21 Apr 2020)

    sshd -h

    [root@VM-0-17-centos bin]# sshd -h
    option requires an argument -- h
    OpenSSH_8.6p1, OpenSSL 1.1.1g FIPS 21 Apr 2020

    Ⅱ. SSH 升级

「 希望熬过一切,星光璀璨 」

流年小站,感谢有您的支持

「 道路坎坷,感谢有您 ---来自 anYun 的感谢 」

使用微信扫描二维码完成支付

2020-04-21
已阅:9961 人/次

 
 
 
分享是一种美德 x
打开微信,右上角的"+"选择"扫一扫"
使用“扫一扫”将博文分享至朋友圈吧

本文由 anYun 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3oibnoh9lo6cs

还不快抢沙发

添加新评论

Myssl安全认证