shell学习记录之快速工具

本文详细介绍了shell学习中的基础操作,如远程登录、重置密码(无root和有密码)、文件和目录的创建、复制、移动和删除,以及权限管理、关机重启、定时任务、网络配置、防火墙和文件大小查看、U盘挂载等内容。
摘要由CSDN通过智能技术生成

远程登录案例

	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组合键来运行这个修改后的内核程序

按照上述步骤成功后会进入系统救援模式,第三步骤如下图:第三步图片示例
进入系统救援模式后,依次输入以下命令:

  1. 挂载系统目录
    mount -o remount,rw /sysroot
    
  2. chroot改变指定目录,系统默认的目录结构都是以“/”——根(root)开始的。在使用chroot之后,系统的目录结构将以指定的位置作为/位置
    chroot /sysroot
    
  3. 修改密码. 使用passwd修改密码,需要输入两次一样的密码.
    passwd
    
  4. 输入命令touch /.autorelabel,在/目录下创建一个.autorelabel文件,有这个文件存在,系统在重启时就会对整个文件系统进行relabeling
    touch /.autorelabel
    
  5. 退出系统
    exit
    
  6. 重启系统
    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网卡的设备名称
IPV6INITIPV6自动初始化,默认noyes OR no
BOOTPROTO设置动态IP还是静态IPnone无 OR static静态 OR dhcp动态获取
UUID唯一ID
ONBOOT开机自动启动网卡yes OR no
NAME网卡名称
TYPE网络类型:Ethernet以太网
PROXY_METHOD代理默认noyes OR no
BROWSER_ONLY只是浏览器yes OR no
DEFROUTE默认路由(多个网口设置时要特别注意,否则无法通讯)
IPV4_FAILURE_FATALIPV4错误检测功能,默认noyes OR no
IPADDRIP地址
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盘挂载分几步:

  1. 查找当前设备
fdisk -l
  1. 创建挂载目录
mkdir mnt/usb
  1. 挂载使用
mount /dev/sdb1 mnt/usb
  1. 卸载
umount /dev/sdb1
  • 18
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值