Linux基础命令笔记

Linux基础命令

记录下上一年学的Linux基础命令笔记~

根目录 / 是linux中所有文件的存放顶点

crtl shift +

基础操作命令
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命令应该在系统的哪一个目录下进行软件包的搜索工作
仓库配置文件的路径为:
/etc/yum.repos.d/任意命名.repo
[abc]
//repo id用于区别不同的仓库
name=redhat linux 7 iso
//repo name用于描述仓库的来历等等,可以不写
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

A=b

$A
b

for循环语句的语法结构

linux原版的for循环
for 字符串(大写) in 字符串1 字符串2 字符串3 ...... ; do
命令1
命令2
命令3
......
done

类似c语言结构的for循环
for ((i=起始数字;i<=峰值;i++)) ; do
命令1
命令2
。。。。。。
done

命令嵌套
$(命令)

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

参数赋值法
$1 表示运行脚本时跟随在脚本后面的第一个参数

if的常用条件设置
第一种:等值判断
[ 字符串 = 字符串 ]
第二种:数字判断
[ 数字 符号 数字 ]
符号:-eq 等于 -ge 大于等于 -gt 大于 -le 小于等于 -lt 小于
例如:[ 1 -ge 100 ]
第三种:文件判断
[ 符号 文件或者目录路径 ]
符号:
-f 存在且是文件
-d 存在且是目录
-e 存在
-s 存在且大小为0(用于判断一个文件是否为空)
-r 当前用户是否允许读取该文件
-w 当前用户是否允许写入该文件
-x 当前用户是否允许运行该文件
第四种:逻辑判断
[ 条件1 ]&&[ 条件2 ] 与判断
[ 条件1 ]||[ 条件2 ] 或判断

[ 601 -ge $(date) ]&&[ 1200 -le $(date) ]

case判断语句
语法结构如下:

case 字符串 in
字符串1)
命令1
命令2
;;
字符串2)
命令1
命令2
;;
字符串3)
命令1
命令2
;;
......
*)
命令1
命令2
;;
esac

点赞

发表评论

昵称和uid可以选填一个,填邮箱必填(留言回复后将会发邮件给你)
tips:输入uid可以快速获得你的昵称和头像

open

该博客目前已迁移到另外一个站点链接——http://blog.datealive.top/。需要更换友链请前往此站进行交换,望谅解