shell学习记录之快速工具
远程登录案例
ssh 192.168.8.1 # 利用当前用户登录
#推荐这个远程登录其他花里胡哨
ssh root@192.168.8.1 # 指定用户名登录
ssh root@192.168.8.1 -o stricthostkeychecking=no # 首次登陆免输yes登录
有时需要远程执行个命令的啥的,就需要这个
ssh root@192.168.1.100 "ls /home/omd" # 登录后实行命令
退出命令
exit
重置密码
无root密码重置
这个对于设置久了忘记密码的自己特别有用,,但是只需要简单几个步骤就可以完成密码的重置工作。
记住!记住!使用有线键盘,不然无法设置!!
(1)重启CentOS系统
(2)当出现引导界面时,按下键盘上的e键进入内核编辑界面
(3)在LANG=\zh_CN.UTF-8后面加上\rd.break
(4)按下Ctrl + X组合键来运行这个修改后的内核程序
按照上述步骤成功后会进入系统救援模式,第三步骤如下图:
进入系统救援模式后,依次输入以下命令:
- 挂载系统目录
mount -o remount,rw /sysroot
- chroot改变指定目录,系统默认的目录结构都是以“/”——根(root)开始的。在使用chroot之后,系统的目录结构将以指定的位置作为/位置
chroot /sysroot
- 修改密码. 使用passwd修改密码,需要输入两次一样的密码.
passwd
- 输入命令touch /.autorelabel,在/目录下创建一个.autorelabel文件,有这个文件存在,系统在重启时就会对整个文件系统进行relabeling
touch /.autorelabel
- 退出系统
exit
- 重启系统
reboot
有密码重置
登录账号后使用命令passwd重置即可!
创建、复制、移动、删除案例
创建命令
mkdir文件夹创建
!/bin/bash
#单个文件夹创建
mkdir dir1
#多个文件夹同时创建
mkdir dir1 dir2 dir2
touch文件创建
#单个文件创建
touch file.txt
#多个文件创建
touch file1.text file2.text file3.text
cp(copy)复制命令
在Shell中,复制文件或目录的命令是cp(copy的缩写)
cp命令的基本格式如下:
cp [选项] 源文件或源目录 目标文件或目标目录
其中,选项是可选的,用于指定复制的行为。以下是一些常用的选项:
-r 或 -R:递归复制,用于复制目录及其内容
-u:只在目标文件中不存在或源文件较新时才复制
-b:在覆盖目标文件之前进行备份
-f:强制复制,即使目标文件已存在也不提示
例如,要将名为file1.txt的文件复制到名为dir1的目录中,可以运行以下命令:
cp file1.txt dir1/
如果要递归复制整个目录及其内容,可以使用-r选项,例如:
cp -r dir1/ dir2/
这将把dir1目录及其所有内容复制到dir2目录中.
mv(move)移动命令
用于移动或重命名文件及目录的命令
mv命令的基本格式如下:
mv [选项] 源文件或源目录 目标文件或目标目录
其中,选项是可选的,用于指定移动或重命名的行为。以下是一些常用的选项:
-b 或 --backup:在覆盖文件之前进行备份。
-f 或 --force:强制移动或重命名,即使目标文件已存在也不提示。
-i 或 --interactive:在覆盖文件之前提示用户确认。
-u 或 --update:只在目标文件不存在或源文件较新时才移动或重命名。
-v 或 --verbose:显示详细的移动或重命名过程。
例如,要将名为file1.txt的文件重命名为file2.txt,可以运行以下命令:
mv file1.txt file2.txt
如果要移动一个文件到另一个目录,可以使用以下命令:
mv file1.txt dir1/
这将把file1.txt移动到dir1目录中。
如果要移动或重命名目录,可以使用-r或-R选项,表示递归操作:
mv -r dir1/ dir2/
这将把dir1目录及其所有内容移动到dir2目录中
rm(remove)删除文件
rm命令用于删除文件和目录
rm命令的基本语法格式如下:
rm [options] file...
其中,[options]是可选的参数,file...表示要删除的文件或目录列表。
常用的选项包括:
-r或-R:递归删除目录及其内容。
-f:强制删除,不提示确认。
-i:在删除前提示确认。
例如,要删除名为file.txt的文件,可以运行以下命令:
rm file.txt
如果要递归删除名为dir的目录及其所有内容,可以使用-r选项:
rm -rf dir
请注意,在使用rm命令时要格外小心,特别是当使用通配符或递归删除时.一旦文件或目录被删除,就无法恢复.
因此,在删除重要文件或目录之前,请务必进行确认!!
赋权限案例 (权限的种类)
在CentOs系统中权限有三种,分别表示读取权限(r)、写入权限(w)和执行权限(x),
在文件创建时(touch)就已经默认给root用户读和写权限
如下图:
例如drwxr-xr-x。这表示文件所有者有读、写和执行权限,而文件所属组和其他用户只有读和执行权限。
一般写shell脚本取调用脚本是一定要赋执行(x)权限,如下代码:
#执行权限,一般用这个
chmod +x test.sh
#最高权限
chmod 777 test.sh
关机和重启案例
关机我开始百度时,也没想到有这么多花活.
# 立刻关机
shutdown -h now
# 定时关机和取消关机
shutdown -h +30
# 取消定时关机
shutdown -c
# 其他关机命令
poweroff
#立刻重启命令
shutdown -c -h now
#或者这个(我常用)
reboot
定时任务案例
定时任务创建
定时任务的需求多种多样,举一个定时删除日志,一般使用crontab命令,
基本语法
crontab [选项] 文件名
创建一个文件 log_delete.sh
-e:编辑用户的 crontab 文件;
-l:列出用户当前的 crontab 内容;
-r:删除用户的 crontab 文件;
-i:在删除用户 crontab 文件之前进行确认。
Crontab 定时说明
* | * | * | * | * |
---|---|---|---|---|
分钟(0-59) | 小时(0-23) | 日(1-31) | 月(1-12) | 星期(0-7) |
#!/bin/bash
rm -rf /path/to/logfile.log
完成后记得加一下执行权限
#给文件执行权限
chmod +x log_delete.sh
可以使用crontab -e 编辑保存,还可以使用如下命令
## 这个echo 可以通过>>(符号)输出到文件
echo '0 * * * * /usr/bin/bash /usr/local/log_delete.sh' >> /var/spool/cron/root
定时任务的删除
删除定时任务就是删除文件中的一行内容可以使用sed 命令,后序出个sed命令和awk命令的详解都是超好用的命令
sed -i '/log_delete.sh/d' /var/spool/cron/root
修改ip和重启网络案例
ip的修改可以用改文件和使用命令的办法.
ip的文件目录/etc/sysconfig/netword-scripts/ifcfg-ethX(X:一般是0,1,2等),文件内容如下
字段 | 意义 | 取值范围 |
---|---|---|
DEVICE | 网卡的设备名称 | |
IPV6INIT | IPV6自动初始化,默认no | yes OR no |
BOOTPROTO | 设置动态IP还是静态IP | none无 OR static静态 OR dhcp动态获取 |
UUID | 唯一ID | |
ONBOOT | 开机自动启动网卡 | yes OR no |
NAME | 网卡名称 | |
TYPE | 网络类型:Ethernet以太网 | |
PROXY_METHOD | 代理默认no | yes OR no |
BROWSER_ONLY | 只是浏览器 | yes OR no |
DEFROUTE | 默认路由(多个网口设置时要特别注意,否则无法通讯) | |
IPV4_FAILURE_FATAL | IPV4错误检测功能,默认no | yes OR no |
IPADDR | IP地址 | |
PREFIX | 子网掩码替代NETMASK默认写24也就是(255.255.255.0) | 0-32 |
GATEWAY | 网关 | |
DNS1 | 域名服务器地址 |
针对以上字段可以直接更改文件,保存后使用以下命令使更改生效:
systemctl restart network
更改后可以使用以下命令查看是否更改成功
ip a s
centos 也提供了其他命令可以更改ip,例如nmlic 或者 ifconfig,下面就说一下系统自带命令nmcli
nmcli [OPTIONS] OBJECT { COMMAND | help }
OPTIONS
-a, --ask 询问缺少的参数
-c, --colors auto|yes|no 是否在输出中使用颜色
-e, --escape yes|no 转义值中的列分隔符
-f, --fields <field,...>|all|common 指定要输出的字段
-h, --help 打印此帮助
-m, --mode tabular|多行输出模式
-o, --overview 概览模式
-p, -- pretty 漂亮的输出
-s, --show-secrets 允许显示密码
-t, --terse 简洁输出
-v, --version 显示程序版本
-w, --wait <秒数> 设置等待完成操作的超时时间
OBJECT
g[general] NetworkManager的一般状态和操作
n[etworking] 整体组网控制
r[adio] NetworkManager 无线电开关
c[onection] NetworkManager 的连接
d[evice] 由 NetworkManager 管理的设备
a[gent] NetworkManager 秘密特工或 polkit 特工
m[onitor] 监控 NetworkManager 变化
例如,设置名为eth0的连接为静态IP地址为192.168.100.68/24,网关为192.168.100.1可以使用以下命令:
nmcli con modify eth0 ipv4.method manual
ipv4.address 192.168.100.68/24
ipv4.gateway 192.168.100.1
#使用一下命令使更改生效(一定要使用一下命令才行)
nmcli con up eth0
防火墙和开端口案例
# 一、防火墙的开启、关闭、禁用命令
#设置开机启用防火墙:
systemctl enable firewalld.service
#设置开机禁用防火墙:
systemctl disable firewalld.service
#启动防火墙:
systemctl start firewalld
#关闭防火墙:
systemctl stop firewalld
#检查防火墙状态:
systemctl status firewalld
# 二、使用firewall-cmd配置端口
# 查看防火墙状态:
firewall-cmd --state
# 重新加载配置:
firewall-cmd --reload
#查看开放的端口:
firewall-cmd --list-ports
#开启防火墙端口:
firewall-cmd --zone=public --add-port=9200/tcp --permanent
查看文件大小案例
du -sh /path/to/file.txt
du -sh /path/
U盘挂载
U盘挂载分几步:
- 查找当前设备
fdisk -l
- 创建挂载目录
mkdir mnt/usb
- 挂载使用
mount /dev/sdb1 mnt/usb
- 卸载
umount /dev/sdb1