简 介
Linux,全称GNU/Linux,是一套免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年第一次释出,它主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的Debian、Archlinux、Deepin、CentOS,和基于商业开发的RedHat、SUSE、Oracle等。
文 件 操 作
查看文件:
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 --- 卸载挂载目录
自动挂载:
- 把需要挂载的分区【可以是本地或者是网络硬盘】按一定格式写入 /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 versionOpenSSL 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 升级
还不快抢沙发