本篇笔记包括的内容为
语法基础操作+配置文件+网络配置+设备管理+软件安装yum+部署服务+脚本编译语法及实例
根目录 /
是linux中所有文件的存放顶点
基础操作命令
1.列出目录中的文件列表
ls 目录路径
2.切换工作目录
cd 目录路径
3.查看当前工作目录
pwd
4.创建文件
touch 文件路径
5.创建目录
mkdir 目录路径
6.复制文件
cp 原文件路径 目的路径
7.复制目录
cp -r 原目录路径 目的路径
8.移动文件或者目录
mv 原路径 目的路径
9.删除(不建议使用,因为没有回收站机制)
rm 文件路径
rm -rf 目录路径
用户管理
用户的配置文件
/etc/passwd
该文件以行为单位,每行一个用户
以冒号隔开为一列,每列代表该用户的不同配置
第一列:用户名
第二列:原本用于存放用户的密码,目前停用,目前用户的密码
存放于文件/etc/shadow
第三列:用户的编号,UID
第四列:组编号,GID
第五列:描述,用于描述用户的作用,可以不写
第六列:用户的家目录,该目录用于存放用户在使用中产生的各类数据,以及用户的个人文件
第七列:用户的shell
shell:外壳,一种命令解释器,用于将人类识别的高级语言翻译为机器识别的机械语言,或将机器的机械语言翻译为高级语言的一种程序。shell经常被人们称作人与计算机之前的翻译官
常见shell
/bin/sh
最原始的shell
/bin/bash
目前使用范围最广的shell
/sbin/nologin
用于设置用户禁止交互式登录系统使用的shell
用户组的配置文件
/etc/group
第一列:用户组名称
第二列:曾经用于存放用户组的密码
第三列:用户组的编号
第四列:组内用户列表,该组为该列表中用户的副组。
用户组的分类:
与用户的关系不同可以分为2类:
1.主组,又名首选组,主要的组
是用户配置文件/etc/passwd
中GID所记录的组
主组的作用:是用户在系统中执行任务的组身份代表。
2.副组,又名从属组,额外的组
用户除了其首选组以外,还可以加入若干个用户组里,这些额外加入的用户组,被成为用户的副组
副组的作用:用于变更用户在系统中的访问范围
当系统创建一个用户的时候,系统会自动创建一个与用户同名、同id的用户组,并将该组设置为用户的首选组
创建用户
useradd 用户名
创建用户并设置其用户编号
useradd -u 编号 用户名
创建用户并设置其主组
useradd -g 组名或者GID 用户名
创建用户并设置其副组
useradd -G 组名,组名,组名 用户名
创建用户并禁止其交互式登录
useradd -s /sbin/nologin 用户名
修改用户设定
usermod 选项 用户名
修改用户编号
usermod -u 编号 用户名
修改用户主组
usermod -g 组名或者GID 用户名
替换用户的副组
usermod -G 组名,组名,组名 用户名
增加用户的副组
usermod -G 组名,组名,组名 -a 用户名
禁止用户交互式登录
usermod -s /sbin/nologin 用户名
删除用户并删除其家目录
userdel -r 用户名
创建用户组
groupadd 组名
创建用户组并指定其组编号
groupadd -g 编号 组名
修改用户组的编号
groupmod -g 编号 组名
删除用户组
groupdel 组名
注意:被删除的组,不能作为任何一个用户的主组使用
修改用户的密码
passwd 用户名
切换当前工作用户
su - 用户名
exit 退出用户
查看用户的相关信息
id 用户名
以管理员身份执行命令(提权)
sudo 命令
如何让用户能够使用sudo命令?
将该用户加入到用户组wheel中即可(副组加入)
查看网络配置的命令
ifconfig
测试网络联通性的
ping 域名或者ip地址(关闭时ctrl c)
ping -c 次数 域名或者ip地址
网络追踪
tracepath 域名或者ip地址
traceroute -n -I -q 5 域名或者ip地址
方法一:
配置网卡的命令
nmcli
用于查看网卡配置文件的状态
nmcli connection show
用于查看网卡的硬件状态
nmcli device status
用于修改网卡的ip地址及其网关
nmcli connection modify eno16777736 ipv4.addresses '192.168.191.50/24 192.168.191.2'
配置网卡使用的dns地址
nmcli connection modify eno16777736 ipv4.dns 114.114.114.114
用于修改网卡的地址获取模式为手动(静态地址)
nmcli connection modify eno16777736 ipv4.method manual
停用配置文件
nmcli connection down eno16777736
启动配置文件
nmcli connection up eno16777736
方法二:
直接修改网卡的配置文件
/etc/sysconfig/network-scripts/ifcfg-eno16777736
需要修改行:
HWADDR=值来自于命令ifconfig
BOOTPROTO="none"
ONBOOT="yes"
IPADDR0=192.168.191.150
PREFIX0=24
GATEWAY0=192.168.191.2
DNS1=114.114.114.114
保存配置后,重启网络(针对于克隆的主机)
systemctl restart network
硬盘管理三步操作
第一步:分区
查看当前系统的分区状态
lsblk
分区的命令
fdisk 硬盘的路径(例如:/dev/sdb)
p 显示当前分区状态
n 分区(p主分区 e扩展分区 l逻辑分区)
d 删除分区
w 保存并退出
q 不保存退出
专业英语单词:partition
分区
sector
扇区
扇区:是硬盘容量的最基本单位,默认情况下1扇区=512字节
第二步:制作文件系统(格式化)
查看分区的格式化状态
blkid
制作文件系统
mkfs.文件系统类型(tab补齐) 分区路径
常见类型
xfs
RHEL7操作系统的默认文件系统
ext4
多数linux的默认文件系统
vfat
兼容性较好的文件系统,一般用于U盘
ntfs
windows的默认文件系统
第三步:挂载(指定驱动器号)
查看当前系统的硬盘挂载状态
df -Th
挂载的操作
第一步:创建一个挂载点(目录)
mkdir 目录路径 (例如 /mnt/parta)
第二步:进行挂载的操作
编辑文件**/etc/fstab
**,在尾部追加如下内容
示例:
/dev/sdb1 /mnt/parta ext4 defaults 0 0
第三步:生效
mount -a
软件安装
版本 软件包扩展名 安装的命令 自动解决软件依赖性关系
redhat .rpm rpm yum(RHEL8:dnf)
debian .deb dpkg apt-get
rpm命令的使用
1.安装软件
rpm -ivh 软件包路径
2.查看一个软件是否安装
rpm -qa 软件名
3.卸载软件
rpm -e 软件名
yum命令的使用
yum软件仓库的配置(又名**yum源
**)
仓库的作用就是告诉yum命令应该在系统的哪一个目录下进行软件包的搜索工作
仓库配置文件的路径为:
repo id用于区别不同的仓库
/etc/yum.repos.d/任意命名.repo
repo name用于描述仓库的来历等等,可以不写
name=redhat linux 7 iso
是否启动该仓库
enabled=1
仓库的访问路径
baseurl=file:///run/media/root/RHEL-7.0\ Server.x86_64
是否开启软件校验功能
gpgcheck=0
yum命令的常用指令
1.查看当前软件仓库的状态
yum repolist
2.安装软件
yum install 软件名
3.查看当前软件仓库中的软件列表
yum list all | grep 模糊软件名
4.查看软件是否安装成功
yum list installed | grep 模糊软件名
5.卸载软件
yum remove 软件名
部署服务之前需要检查的内容
1.网络连接
2.防火墙
systemctl status firewalld
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
3.SELinux
getenforce
关闭selinux
setenforce 0
编辑文件**vim /etc/selinux/config
** 将其中SELINUX=的值修改为permissive或者disabled
部署ftp服务器
第一步:安装服务器程序
yum install vsftpd
第二步:启动ftp服务器
systemctl enable vsftpd
systemctl start vsftpd
第三步:根据需求调整ftp的配置文件
ftp的主配置文件路径为**/etc/vsftpd/vsftpd.conf
**
anonymous_enable=YES 启动匿名用户
local_enable=YES 启动本地用户
对于匿名用户而言,客户端访问时所对应的目录为**/var/ftp
**
对于普通用户而言,客户端访问时所对应的目录为该用户的家目录
权限管理部分知识在教材的P56
其他常用选项:
write_enable=YES 允许写操作
anon_upload_enable=YES 允许匿名用户上传文件
anon_mkdir_write_enable=YES 允许匿名用户创建目录
ftp_username=ftp 用于设置匿名用户在系统中的映射用户
anon_root=/var/ftp 用于设置匿名用户访问的默认目录
userlist_enable=yes 启动用户限制机制
userlist_deny=yes 值为yes,userlist为黑名单
值为no,userlist为白名单
userlist_file=/etc/vsftpd/user_list 用户列表
查看配置文件的帮助手册的命令
man vsftpd.conf
注意:修改过ftp的配置文件,需要重启服务才能生效
systemctl restart vsftpd
脚本编辑语法和实例
for循环语句的语法结构
linux原版的for循环
for 字符串(大写) in 字符串1 字符串2 字符串3 ...... ; do
命令1
命令2
命令3
......
done
c语言结构的for循环
for ((i=1;;i<=5;i++)) ; do
命令1
命令2
。。。。。。
done
Linux命令嵌套
$(命令)
Linux命令if条件语句的语法结构
结构1:
if [ 条件 ] ; then
命令1
命令2
........
fi
结构2:
if [ 条件 ] ; then
命令1
命令2
........
else
命令1
命令2
........
fi
结构3:
if [ 条件1 ] ; then
命令1
命令2
........
elif [ 条件2 ] ; then
命令1
命令2
........
elif [ 条件3 ] ; then
命令1
命令2
........
else
命令1
命令2
........
fi
Linux命令参数赋值法
$1 表示运行脚本时跟随在脚本后面的第一个参数
if的常用条件设置
第一种:等值判断
[ 字符串 = 字符串 ]
第二种:数字判断
[ 数字 符号 数字 ]
符号:-eq 等于 -ge 大于等于 -gt 大于 -le 小于等于 -lt 小于
第三种:文件判断
[ 符号 文件或者目录路径 ]
符号:
-f 存在且是文件
-d 存在且是目录
-e 存在
-s 存在且大小为0(用于判断一个文件是否为空)
-r 当前用户是否允许读取该文件
-w 当前用户是否允许写入该文件
-x 当前用户是否允许运行该文件
第四种:逻辑判断
[ 条件1 ]&&[ 条件2 ] 与判断
[ 条件1 ]||[ 条件2 ] 或判断
[ 601 -ge $(date) ]&&[ 1200 -le $(date) ]
Linux命令case判断语句
语法结构如下:
case 字符串 in
字符串1)
命令1
命令2
;;
字符串2)
命令1
命令2
;;
字符串3)
命令1
命令2
;;
......
*)
命令1
命令2
;;
esac
1.hello world样例
vim example.sh
#!/bin/bash
echo 'hello world!'
chmod a+x example.sh
ls
./example.sh
2.输出1+1 求$[]算术运算 仅支持整型运算
echo "$[1+1]"
#!/bin/bash
for NUM in [1..5];do
echo "$[$NUM**2]"
done
#!/bin/bash
for UN in $(cat /home/namelist); do
useradd -s /sbin/nologin $UN
echo "the name $UN create successful"
done
chomd a+x ./2.sh
./2.sh
tail -n 6 /ect/passwd
cat 2.sh
提取时间转化成四个数字 date ‘+%H%M’
[601 -ge $[date '+%H%M']]&&[1200 -le $[date '+%H%M']]