首页
学习笔记
Linux笔记
主题美化
电脑小技巧
Java笔记
资源素材
软件工具
网站素材
电子书
友情链接
留言板
更多
关于
搜索
登录
1
网站实现樱花飘落效果
605 阅读
2
Typecho主题
564 阅读
3
typecho相册单页模板
485 阅读
4
PotPlayer v1.7.21759绿色版
475 阅读
5
硬盘U盘去掉写保护
432 阅读
Search
标签搜索
JS
美化
linux
工具
Windows
Typecho
Java
命令
模板
下载
电脑
驱动
插件
主题
播放器
源码
优化
笔记
国庆头像
奇妙的Linux
累计撰写
28
篇文章
累计收到
22
条评论
首页
栏目
学习笔记
Linux笔记
主题美化
电脑小技巧
Java笔记
资源素材
软件工具
网站素材
页面
电子书
友情链接
留言板
关于
管理后台
搜索到
5
篇与
相关的结果
2022-09-04
管道符、重定向与环境变量
重定向符输入重定向 (将文件里的信息输入到命令里)wc -l < /etc/passwd输出重定向将我们的命令原本要输出到屏幕的信息重定向输出到一个文件里面。标准> 覆盖 > 追加 >>ls -l off_install.sh > a.txt 会覆盖掉原来的内容ls -l off_install.sh >> a.txt追加内容错误 2> 覆盖 2> 追加 2>>ls -l balabala.txt 2> b.txt 会覆盖掉原来的内容ls -l balabala.txt 2>> b.txt 追加内容不论标准还是错误信息,都会输出到文件里ls -l balabala.txt &> b.txt 会覆盖掉原来的内容ls -l balabala.txt &>> b.txt 追加内容`管道符 |命令A | 命令B将命令A原先要输出到屏幕的信息传给命令B进行一个二次处理(/etc/passwd )用户名:密码(保存到/etc/shadow):UID:GID:描述信息:家目录:终端名称/bin/bash 正常 /sbin/nologin 不能登录grep bash /etc/passwd 筛选passwd里有那些用户正常登录grep bash /etc/passwd | wc -l 交给wc统计行数,* 代表空值或者无穷多的信息[root@koke ~]# ls /dev/vda*/dev/vda /dev/vda1? 单个字符[root@koke ~]# ls /dev/vda?/dev/vda1[0-9] [a-z] [A-Z] 单个字母/数字[root@koke ~]# ls /dev/vda[0-9]/dev/vda1[1,3,5,6] [a,d,v,d] [S,R,G]精准匹配某个数字/字母env 显示所有环境变量set 所有变量\ 转义字符习惯:echo "jiage shi \$$PRICE" 如果语句里有空格的话,建议加引号。工作用到'' echo jiage shi '$$$'$PRICE全局转义反引号:`` 执行命令取其结果alias koke = "systemctl restart network" 命令赋值WORKDIR=/root/koke 路径赋值/定义目录 cd $WORKDIR (切换用户无法使用)export WORKDIR(全局变量,可以全部用户使用) 重启失效/unset取消unalias koke 命令赋值取消alias 查看所有环境变量:echo $PATH查看时内部命令还是外部命令whereistype内部命令外部命令环境变量:echo $HOME 变量环境变量:echo $SHELL 变量环境变量:echo $HISTSIZE 变量环境变量:echo $MAIL 变量 邮件路径环境变量:echo $LANG 变量 远程服务器乱码-检查这个变量环境变量:echo $RANDOM 变量环境变量:echo $PS1 变量 PS1=# (登录终端名字)环境变量:echo $EDITOR 变量 默认编辑器
2022年09月04日
284 阅读
0 评论
1 点赞
2022-08-29
存储结构与管理硬盘
一切从“/”开始 Linux系统中常见的目录名称以及相应内容目录名称应放置文件的内容/boot开机所需文件—内核、开机菜单以及所需配置文件等/dev以文件形式存放任何设备与接口/etc配置文件/home用户主目录/bin存放单用户模式下还可以操作的命令/lib开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数/sbin开机过程中需要的命令/media用于挂载设备文件的目录/opt放置第三方的软件/root系统管理员的家目录/srv一些网络服务的数据文件目录/tmp任何人均可使用的“共享”临时目录/proc虚拟文件系统,例如系统内核、进程、外部设备及网络状态等/usr/local用户自行安装的软件/usr/sbinLinux系统开机时不会使用到的软件/命令/脚本/usr/share帮助与说明文件,也可放置共享文件/var主要存放经常变化的文件,如日志/lost+found当文件系统发生错误时,将一些丢失的文件片段存放在这里绝对路径cd /etc/sysconfig/network-scripts/相对路径cd koke物理设备的命名规则常见的硬件设备及其文件名称硬件设备文件名称IDE设备/dev/hd[a-d]SCSI/SATA/U盘/dev/sd[a-z]virtio设备/dev/vd[a-z]软驱/dev/fd[0-1]打印机/dev/lp[0-15]光驱/dev/cdrom鼠标/dev/mouse磁带机/dev/st0或/dev/ht0主分区或扩展分区的编号从1开始,到4结束;逻辑分区从编号5开始。文件存储方式文件系统与数据资料Linux系统支持数十种文件系统,而最常见的文件系统如下所示。Ext2:最早可追溯到1993年,是Linux系统的第一个商业级文件系统,它基本沿袭了UNIX文件系统的设计标准。但由于不包含日志读写功能,数据丢失的可能性很大,因此大家能不用就不用,或者顶多建议用于SD存储卡或U盘。Ext3:是一款日志文件系统,它会把整个硬盘的每个写入动作的细节都预先记录下来,然后再进行实际操作,以便在发生异常宕机后能回溯追踪到被中断的部分。Ext3能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误。然而,当硬盘容量较大时,所需的修复时间也会很长,而且也不能100%地保证资料不会丢失。Ext4:Ext3的改进版本,作为RHEL 6系统中默认的文件管理系统,它支持的存储容量高达1EB(1EB=1,073,741,824GB),且能够有无限多的子目录。另外,Ext4文件系统能够批量分配block(块),从而极大地提高了读写效率。现在很多主流服务器也会使用Ext4文件系统。XFS:是一种高性能的日志文件系统,而且是RHEL 7/8中默认的文件管理系统。它的优势在发生意外宕机后尤其明显,即可以快速地恢复可能被破坏的文件,而且强大的日志功能只需花费极低的计算和存储性能。它支持的最大存储容量为18EB,这几乎满足了所有需求。RHEL 7/8系统中一个比较大的变化就是使用了XFS作为文件系统,这不同于RHEL 6使用的Ext4。从红帽公司官方发布的说明来看,这确实是一个不小的进步,但是刘遄老师在实测中发现并不完全属实。因为单纯就测试一款文件系统的“读取”性能来说,到底要读取多少个文件,每个文件的大小是多少,读取文件时的CPU、内存等系统资源的占用率如何,以及不同的硬件配置是否会有不同的影响,这些因素都是不确定的,因此实在不敢直接照抄红帽官方的介绍。我个人认为XFS虽然在性能方面比Ext4有所提升,但绝不是压倒性的,因此XFS文件系统最卓越的亮点应该当属可支持高达18EB的存储容量吧。挂载硬件设备#挂载 mount 设备 目录 mount /dev/sdd1 /mnt #卸载 umount 设备 / 目录 umount /dev/sdd1 umount /mnt永久生效挂载vi /etc/fstab # 格式 # 设备 目录 格式 权限 备份 自检 /dev/sdb2 /media/koke xfs defaults 0 0 #第一个0代表是否自动备份,第二个0代表是否自动自检写入到/etc/fstab文件中的设备信息并不会立即生效,需要使用mount -a参数进行自动挂载:mount -a添加硬盘设备fdisk /dev/sdbfdisk命令参数Blocks单位:Kb#格式化 mkfs.ext4 /dev/sdb1 #挂载 mount/dev/sdb1 /media #查看目录占用大小 du -sh /media #查看已挂载的磁盘空间使用情况 df -h lsblk #查看分区格式 mount df -Th ##查看分区格式和UUID blkid添加交换分区fdisk /dev/sdb #创建扩展分区 #创建逻辑分区 #同步分区数据 partprobe ls -l /dev/sd* #新建交换分区(临时生效) mkswap /dev/sdb5 swapon /dev/sdb5 #编辑fstab(永久生效) /dev/sdb5 swap swap defaults 0 0磁盘容量配额#更改fstab,添加uquota,如上图软限制:当达到软限制时会提示用户,但仍允许用户在限定的额度内继续使用。硬限制:当达到硬限制时会提示用户,且强制终止用户的操作。#磁盘配额命令 # x代表功能丰富 c代表非交互性配置 'limit'代表限制 'bsoft,isoft'代表软限制 'bhard,ihard'代表硬限制 xfs_quota -x -c 'limit bsoft=3m bhard=6m isoft=3 ihard=6 koke' /boot #查看磁盘配额情况 xfs_quota -x -c report /boot #取文件 dd if=/dev/zero of=koke count=1 bs=6M #更改磁盘配额 yum -y install edit quota edquoda -u koke软硬方式链接链接(soft link):也叫符号链接(symbolic link),仅仅包含所链接文件的名称和路径,很像一个记录地址的标签。当原始文件被删除或移动后,新的链接文件也会随之失效,不能被访问。可以针对文件、目录设置软链接,跨文件系统进行链接也不是问题。从这一点来看,它与Windows系统的“快捷方式”具有一样的性质。用户访问软链接的效果如图6-15所示。硬链接(hard link):可以将它理解为一个“指向原始文件block的指针”,系统会创建出一个与原来一模一样的inode信息块。所以,硬链接文件与原始文件其实是一模一样的,只是名字不同。每添加一个硬链接,该文件的inode个数就会增加1;而且只有当该文件的inode个数为0时,才算彻底将它删除。换言之,由于硬链接实际上是指向原文件block的指针,因此即便原始文件被删除,依然可以通过硬链接文件来访问。需要注意的是,由于技术的局限性,不能跨分区对目录文件进行硬链接。用户访问硬链接的效果如图6-16所示。#创建软链接(快捷方式) ln -s anaconda-ks.cfg koke #创建硬链接(删除源文件不影响,不是复制) ln anaconda-ks.cfg koke补充 VDO虚拟数据优化REHL 8支持VDO技术支持本地存储和远程存储,可以作为本地文件系统、iSCSI或Ceph存储下的附加存储层使用。红帽公司在VDO介绍页面中提到,在部署虚拟机或容器时,建议采用逻辑存储与物理存储为10∶1的比例进行配置,即1TB物理存储对应10TB逻辑存储;而部署对象存储时 (例如使用Ceph)则采用逻辑存储与物理存储为3∶1的比例进行配置,即使用1TB物理存储对应3TB逻辑存储。简而言之,VDO技术能省空间!
2022年08月29日
264 阅读
0 评论
2 点赞
2022-08-17
用户身份与文件权限
用户身份与能力root UID:0系统用户:用在服务 UID: 1-999普通用户 UID:1000~查看用户#查看指定用户信息 id linuxprobe添加用户#添加一个新用户 useradd koke #指定用户UID useadd -u 6666 xiaomi密码设定#常规设置密码 passwd koke #接收前面的数据 echo 123.com|passwd -stdin koke用户组基本组: (只有一个,原生)扩展组: 后加,可以有多个#创建扩展组 groupadd linuxcool groupadd xiaomi修改用户(用户:koke)#加入扩展组(扩展组) usermod -G linuxcool koke #修改基本组(基本组) usermod -g xiaomi koke删除用户#删除掉用户 userdel linuxprobe #删除掉用户以及数据文件 userdel -r liunxprobe文件权限与归属 文件权限 ls -l -rw-------. 1 root root 1213 Jun 30 17:23 anaconda-ks.cfg drwxr-xr-x. 3 root root 28 Aug 14 11:00 Desktop drwxr-xr-x. 2 root root 6 Jun 30 09:24 Documents drwxr-xr-x. 2 root root 6 Jun 30 09:24 Downloads -rw-r--r--. 1 root root 1264 Jun 30 09:24 initial-setup-ks.cfg drwxr-xr-x. 2 root root 6 Jun 30 09:24 Music drwxr-xr-x. 2 root root 6 Jun 30 09:24 Pictures drwxr-xr-x. 2 root root 6 Jun 30 09:24 Public drwxr-xr-x. 2 root root 6 Jun 30 09:24 Templates drwxr-xr-x. 2 root root 6 Jun 30 09:24 Videos # 开头“-”代表是文件 # 开头“d”代表是目录文件 # 开头“l”代表是链接文件 # 开头“b”代表是块设备文件(硬盘) # 开头“c”代表是字符设备文件文件 # 开头“p”代表是目录文件例:755 ==> rwxr-xr-x777==>rwxrwxrwx666==>rw-rw-rw-542==>r-xr---w-SUID SGID SBITSUID:执行者临时获取命令的所有的权限ls -l /etc/shadow ----------. 1 root root 1141 Jun 30 17:23 /etc/shadow #权限000,普通用户无法查看写入,但是普通用户改密码,却可以写入 ls -l /usr/bin/passwd -rwsr-xr-x. 1 root root 27832 Jan 29 2014 /usr/bin/passwd SGID:目录内新文件所有组,继承原有目录所有组的名称(一般针对于目录)#设置权限 #格式:chmod +权限 文件 / chmod -权限 文件/-R对目录操作 chmod -R 6543 文件/目录 #设置属性 #格式:chown 属性 chown 所有者:所有组 文件#使用 cd /home mkdir koke chomd -R g+s koke ls -l # drwxr-sr-x. 2 root root 6 Aug 20 04:12 koke SBIT:保护位(设置只允许本人删除修改本人的目录,其他人无权限)# chomd -R o+t 目录表5-7 SUID、SGID、SBIT特殊权限的设置参数参数作用u+s设置SUID权限u-s取消SUID权限g+s设置SGID权限g-s取消SGID权限o+t设置SBIT权限o-t取消SBIT权限chattr和lsattrchattr:设置隐藏权限chattr +权限 文件 chattr -权限 文件 chattr命令中的参数及其作用参数作用i无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件a仅允许补充(追加)内容,无法覆盖/删除内容(Append Only)S文件内容在变更后立即同步到硬盘(sync)s彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域)A不再修改这个文件或目录的最后访问时间(atime)b不再修改文件或目录的存取时间D检查压缩文件中的错误d使用dump命令备份时忽略本文件/目录c默认将文件或目录进行压缩u当删除该文件后依然保留其在硬盘中的数据,方便日后恢复t让文件系统支持尾部合并(tail-merging)x可以直接访问压缩文件中的内容lsattr:查看文件的隐藏权限setfacl和getfaclsetfacl:对单个用户或者组单独进行权限设置(ACL权限规则) setfacl命令中的参数以及作用参数作用-m修改权限-M从文件中读取权限-x删除某个权限-b删除全部权限-R递归子目录#设置普通用户koke可以增删改/home/xiaomi setfacl -Rm u:koke:rwx /home/xiaomigetfacl:查看文件的ACL权限规则(ACL权限规则)getfacl /rootgetfacl:权限备份#使用-R递归参数,可以目录本身的权限进行备份,还能将里面的文件权限也备份 #getfacl在备份目录权限时不能使用绝对路径的形式,因此我们需要先切换到最上层根目录,然后再进行操作。 getfacl -R koke > 1.cfgsetfacl:权限备份恢复setfacl --restore 1.cfgsu命令与sudo服务#常规切换用户 su 用户名 #完全身份变更,包括环境变量 su - 用户名 #sudo命令用于给普通用户提供额外的权限,是一个服务 #编辑配置sudo visudo vim /etc/sudoers #大概在100行 #第一个ALL:来源 #第二个ALL:可以获取哪个用户的身份 #第三个ALL:指定命令sudo命令中的可用参数以及作用参数作用-h列出帮助信息-l列出当前用户可执行的命令-u 用户名或UID值以指定的用户身份执行命令-k清空密码的有效时间,下次执行sudo时需要再次进行密码验证-b在后台执行指定的命令-p更改询问密码的提示语
2022年08月17日
232 阅读
0 评论
1 点赞
2022-08-10
Vim编辑器与Shell命令脚本
vi/vim编辑器vim编辑器有颜色,vi编辑器没有默认打开:命令模式编辑模式: i,a,o末行模式:命令作用:w保存:q退出:q!强制退出(放弃对文档的修改内容):wq!强制保存退出:set nu显示行号:set nonu不显示行号:命令执行该命令:整数跳转到该行:s/one/two将当前光标所在行的第一个one替换成two:s/one/two/g将当前光标所在行的所有one替换成two:%s/one/two/g将全文中的所有one替换成two?字符串在文本中从下至上搜索该字符串/字符串在文本中从上至下搜索该字符串使用vim配置网卡信息进入到网卡配置文件所在的目录,然后编辑网卡配置文件,在其中填入下面的信息:[root@linuxprobe ~]# cd /etc/sysconfig/network-scripts/ [root@linuxprobe network-scripts]# vim ifcfg-ens160 TYPE=Ethernet BOOTPROTO=static NAME=ens160 ONBOOT=yes IPADDR=192.168.10.10 NETMASK=255.255.255.0 GATEWAY=192.168.10.1 DNS1=192.168.10.1执行重启网卡设备的命令,然后通过ping命令测试网络能否连通。systemctl restart network nmcli connection reload ens160 ping 192.168.10.10Shell命令脚本1、 交互式(Interactive):用户每输入一条命令就立即执行。2、批处理(Batch):由用户事先编写好一个完整的Shell脚本,Shell会一次性执行脚本中诸多的命令。脚本声明 #!/bin/bash脚本注释 #txykoke.cn编写脚本命令 ls pwd #!/bin/bash #txykoke.cn编写 echo "$0" 脚本名称 echo "$#" 总共接受了几个参数 echo "$*"参数分别是什么 echo "$1,$2,$5" 接收到第1个第3个第5个的参数 [root@txykoke koke]# bash haha.sh a b c d e f haha.sh 6 a b c d e f a,b,e [root@txykoke koke]# 测试语句格式:[ 条件表达式 ] (两边均有一个空格)文件测试所用的参数操作符作用-d测试文件是否为目录类型-e测试文件是否存在-f判断是否为一般文件-r测试当前用户是否有权限读取-w测试当前用户是否有权限写入-x测试当前用户是否有权限执行判断是否是目录#如果返回值为0,则目录存在;如果返回值为非零的值,则意味着它不是目录,或这个目录不存在 [ -d /etc/koke ] echo $?#判断/dev/cdrom文件是否存在,若存在则输出Exist字样。 [ -e /dev/cdrom ] && echo "Exist"#判断用户是否不是管理员账户,不是管理员账号账户则输出root [ ! $USER = root ] || echo "root"#先判断当前用户是否root,然后!取反,如果当前不是root用户,则输出user,反之输出root [ ! $USER = root ] && echo "user" || echo "root"Tips&&是逻辑“与”,只有当前面的语句执行成功的时候才会执行后面的语句。||是逻辑“或”,只有当前面的语句执行失败的时候才会执行后面的语句。!是逻辑“非”,代表对逻辑测试结果取反值;之前若为正确则变成错误,若为错误则变成正确。整数比较运算符操作符作用-eq是否等于-ne是否不等于-gt是否大于-lt是否小于-le是否等于或小于-ge是否大于或等于#创建一个变量num 如果10大于num成立 则输出0 num=100; [ 10 -gt $num ] echo $?#判断当前服务器内存,并设置警告值 FreeMem=`free -m |grep Mem: |awk '{print$4}'` [ $FreeMem -lt 300 ] && echo "内存告急:小于300m,请检查/升级配置"|| echo "内存余量正常" 常见的字符串比较运算符操作符作用=比较字符串内容是否相同!=比较字符串内容是否不同-z判断字符串内容是否为空#接下来通过判断FreeMem变量是否为空值,进而判断是否定义了这个变量: [ -z $FreeMem ] echo $? [ -z $LANG ] echo $?流程控制语句if条件测试语句#!/bin/bash #测试主机是否在线 read -p "请输入您的ip地址:" ip ping -c 3 -i 0.2 -W 3 $ip &> /dev/null if [ `echo $?` -eq 0 ];then echo "地址 $ip 是在线的" else echo "地址 $ip 是不在线的" fi#创建成绩表 a.txt 张三 40 李四 89 koke 60 亚男 59#!/bin/bash #判断学生学习成绩1 read -p "Enter your score(0-100):" GRADE if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ] ; then echo "$GRADE is Excellent" elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ] ; then echo "$GRADE is Pass" else echo "$GRADE is Fail" fifor条件循环语句#!/bin/bash #判断学生学习成绩2 read -p "请输入您的姓名:" Result echo "请稍等,正在查询您的成绩" sleep 1 #备份旧的IFS变量 OLDIFS="IFS" #修改分隔符为换行符 IFS=$'\n' #文件行数 n=`wc -l a.txt|awk '{print$1}'` #循环次数 s=0 for name in `cat a.txt` do s=`expr $s + 1` if [ `echo $name |awk '{print$1}'` = `echo $Result` ] then echo "您的成绩是:"`echo $name |awk '{print$2}'`"分" #记录分数到num num=`echo $name |awk '{print$2}'` sleep 1 if [ $num -ge 85 ]&& [ $num -le 100 ];then echo "您的评级:优秀" break elif [ $num -ge 70 ] && [ $num -le 84 ];then echo "您的评级:良好" break elif [ $num -ge 60 ] && [ $num -le 69 ];then echo "您的评级:合格" break elif [ $num -lt 60 ] && [ $num -ge 0 ];then echo "您的评级:不合格" break else echo "查询到成绩不合法" break fi elif [ $s -eq $n ]&&[ `echo $name |awk '{print$1}'` != `echo $Result` ];then echo "未匹配到您输入的姓名,请检查" fi done #还原IFS变量 IFS="$OLDIFS"#创建用户名表 vim users.txt andy barry carl duke eric george#!/bin/bash #批量创建用户 read -p "请输入你的密码:" PASSWD for UNAME in `cat user.txt` do id $UNAME $> /dev/null if [ $? -eq 0 ];then echo "$UNAME ,用户已经存在" else useradd $UNAME echo "$PASSWD"|PASSWD ==stdin $UNAME &>/dev/null echo "$UNAME,用户创建成功" fi done#!/bin/bash #批量检测IP地址是否在线 #创建ip地址文件:ipaddr.txt Host=`cat ipaddr.txt` touch online.txt &> /dev/null for IP in $Host do ping -c 1 $IP &> /dev/null if [ $? -eq 0 ];then echo $IP >> online.txt else echo "$IP 不在线" fi done echo "在线IP:" cat online.txt自己做的一个小脚本#!/bin/bash #经过一些if语句和for循环查询学习,做了这个将疑似DDOS攻击的ip地址加入黑名单, #只需要简单设置自己服务器IP以及IP的访问量,就可以一键运行并自动拉黑。 # 判断是否安装了nload if ! type nload >/dev/null 2>&1 then echo "nload 未安装" yum install nload -y echo "nload 已经安装完成" else echo 'nload 已安装' fi #判断文件是否存在 file="file.txt" if [ ! -e $file ] then echo "文件不存在" touch file.txt sleep 2 echo "文件已创建" else echo "文件已经存在" fi #备份旧的IFS变量 OLDIFS="IFS" #修改分隔符为换行符 IFS=$'\n' touch blacklist.txt >> /dev/null touch black.txt >> /dev/null #将ip信息存入file.txt netstat -ntu|awk '{print $5}'|cut -d: -f1 -s|sort|uniq -c|sort -nk1 -r|sed 's/[\t ]\+/ /g' |sed '/81.68.172.160/'d |sed '/127.0.0.1/'d>file.txt #遍历文件ip for ip in `cat file.txt` do #将取出的ip占有量 临时存放给变量num num=`echo $ip | awk '{print $1}'` #如果ip占有量超过20 if [ $num -gt 20 ] then #则将ip进行显示 echo $ip | awk '{print $2}' #将ip加入黑名单 blacklist=`echo $ip | awk '{print $2}' ` iptables -I INPUT -s $blacklist -j DROP echo $blacklist >> blacklist.txt echo $blacklist >> black.txt fi done #cat blacklist.txt|sed -e '/^$/d' > blacklist.txt #cat black.txt|sed -e '/^$/d' > black.txt if [ -s blacklist.txt ];then echo "黑名单列表:" cat blacklist.txt echo "可疑ip已加入黑名单" echo "本脚本加入的黑名单可查看black.txt文件" else echo "机器目前状态良好" fi rm -rf blacklist.txt IFS="$OLDIFS" #还原IFS变量#!/bin/bash #判断用户,并且批量创建 read -p "请输入您要设置的用户名的密码:" PASSWD for UNAME in `cat user.txt` do id $UNAME &> /dec/null if [ $? -eq 0 ];then echo "用户$UNAME已经存在" else useradd $UNAME &> /dev/null echo "$PASSWD"|passwd --stdin $UNAME &> /dev/null fi done#!/bin/bash #遍历局域网ip,并测试是否在线 str="10.10.1." for ip in {200..220} do ping -c1 -w1 $str$ip &> /dev/null if [ $? -eq 0 ];then echo "$str$ip 是在线的" fi donewhile条件循环语句#!/bin/bash #while 语句编写猜数字 #取100以内的随机数 RDOM=$(expr $RANDOM % 1000) #猜的数字的次数 sum=0 echo "------猜数字小游戏------" while true do read -p "请输入一个1000以内的数字:" NUM let TIMES++ expr $NUM + 1 &> /dev/null if [ $? != 0 ];then echo "输入有误,请重新输入" elif [ $NUM -gt 1000 ];then echo "请输入小等于1000的数字。" elif [ $NUM -lt 0 ];then echo "请输入大于等于0的数字。" elif [ $NUM -eq $RDOM ];then echo "恭喜你,猜对了!!" echo "你一共猜了 $TIMES次" exit 0 elif [ $NUM -gt $RDOM ];then echo "你猜大了!!" elif [ $NUM -lt $RDOM ];then echo "你猜小了!!" else "您的输入有误!!" fi donecase条件测试语句#!/bin/bash #case语句,判断 read -p "Enter:" KEY case "$KEY" in [a-z]|[A-Z]) echo "字母" ;; [0-9]) echo "数字" ;; *) echo "错误" ;; esac计划任务服务程序一次性的计划任务:atat 时间 > reboot保存:Ctrl+D查看当前已有哪些计划任务 :at -l查看命令:at -c 编码删除计划任务:atrm 编码 或者 at -rat命令的参数及其作用参数作用-f指定包含命令的任务文件-q指定新任务名称-l显示待执行任务列表-d删除指定待执行任务-m任务执行后给用户发邮件#让at命令接收前面echo命令的输出信息 echo "systemctl restart httpd" | at 23:30一般我们会使用“at now +2 MINUTE”的方式进行操作,这表示2分钟(MINUTE)后执行这个任务,也可以将其替代成小时(HOUR)、日(DAY)、月(MONTH)等词汇:at now +2 MINUTE at> systemctl restart httpd Ctrl+D周期性的计划任务:crondcrond 服务名称crontab 配置工具分 时 日 月 星期 命令 crontab命令的参数及其作用参数作用-e编辑计划任务-u指定用户名称-l列出任务列表-r删除计划任务 使用crond设置任务的参数字段说明字段说明分钟取值为0~59的整数小时取值为0~23的任意整数日期取值为1~31的任意整数月份取值为1~12的任意整数星期取值为0~7的任意整数,其中0与7均为星期日命令要执行的命令或程序脚本crontab -e #分 时 日 月 星期 命令 #每周日的0:30分重启 30 0 * * 7 /usr/sbin/reboot #每隔两小时重启 * */2 * * * /usr/sbin/reboot #每月的3-5号的2:30分重启 30 2 3-5 * * /usr/sbin/reboot #每月的3号5号7号的2:30分重启 30 2 3,5,7 * * /usr/sbin/reboot
2022年08月10日
189 阅读
0 评论
0 点赞
2022-08-10
新手必须掌握的Linux命令
systemctl start network 启动服务systemctl stop network 停止服务systemctl restart network 重启服务systemctl status network 查看服务systemctl enable network 加入到启动项top命令可以查看当前时间、开机时间、用户数量、负载CPU占用百分比和空闲的百分比进程数量、正在运行的数量、正在休眠的数量、已停止的数量、僵死数量内存总数(KB)、已经使用的内存、空闲内存交换空间缓存总大小、已经使用的缓存、空闲的缓存ifconfig 可以查看网卡名称、ip地址、mac地址、RX收到流量、TX发送流量(RX、TX累计,直至重启)unameuname -a 查看内核信息 系统架构Linux(系统名称)localhost.localdomain(主机名称)3.10.0-123.el7.x86_64(内核版本)1 SMP Mon May 5 11:16:57 EDT 2014(内核打包时间)x86_64 x86_64 x86_64(系统架构)GNU/Linux(开源名称)uptime 查看系统负载情况11:18:41 up 1:19, 2 users, load average: 0.02, 0.02, 0.05系统时间、开机时间、终端2用户、cpu负载:0.02, 0.02, 0.05(1分钟,5分钟,15分钟)free 查看内存值free -h 显示GBwho 显示当前登录的用户last 登录记录history 显示历史命令使用编号快捷执行命令:!17sosreport 求救信息pwd 显示当前目录cd 切换目录 cd .. 返回上层目录 cd ~ = cd家目录 cd -返回上一次所在目录ls -l 查看文件及详细信息ls -a 显示所有包含隐藏文件 带.的文件ls -d 查看目录cat 查看纯文本文件,查看比较短小的文本more 查看大文件 回车走一行。空格走一页head -n 15 查看前面的十五行tail -n 15 查看后面的十五行tail -f /var/log/messagea 实时刷新文件内容cat anaconda-ks.cfg | tr [a-z] [A-Z] 管道符/任意门 将文本字母小写全部替换为大写 (修改的仅仅是显示内容)wc 123.txt 显示行数列数字节数 -l 显示行数 -w 显示单词数 -c 显示字节数stat 查看文件的修改访问创建时间A time 最后一次访问时间M time 最后一次修改文件内容时间C time 最后一次修改文件属性时间(权限)cut -d : -f1 /etc/passwd 提取数据 -f1指的是提取的是第一列的信息 -d指的是以分隔符:为界diff --brief a.txt b.txt 比较两个文件是否相同diff -c a.txt b.txt 输出结果带 !的代表不同的内容touch a.txt 创建文件/修改时间touch -d " 00:00" a.txt 修改时间参数作用-a仅修改“读取时间”(atime)-m仅修改“修改时间”(mtime)-d同时修改atime与mtimemkdir 创建目录 mkdir -p 创建层级目录cp 源文件名称 目标文件 cp -r 源目录 目标目录 1:1复制参数作用-p保留原始文件的属性-d若对象为“链接文件”,则保留该“链接文件”的属性-r递归持续复制(用于目录)-i若目标文件存在则询问是否覆盖-a相当于-pdr(p、d、r为上述参数)mv 源文件 目标文件(剪切/重命名)rm 文件名称(删除文件) rm -r 目录(需要确认) rm -rf 目录 (强制直接删除)参数作用-f强制执行-i删除前询问-r删除目录-v显示过程dd if=anaconda-ks.cfg of=koke bs=100 count=1 dd命令用于按照指定大小和个数的数据块来复制文件或转换文件dd if =/dev/sda of=1.iso 打包iso文件参数作用if输入的文件名称of输出的文件名称bs设置每个“块”的大小count设置要复制“块”的个数file 文件名称查看文件类型 tar 压缩、解压tar -czvf koke.tar.gz 目录 压缩tar -xzvf koke.tar.gz -C 目录 解压参数作用-c创建压缩文件-x解开压缩文件-t查看压缩包内有哪些文件-z用Gzip压缩或解压-j用bzip2压缩或解压-v显示压缩或解压的过程-f目标文件名-p保留原始的权限与属性-P使用绝对路径来压缩-C指定解压到的目录grep 关键词 文件名参数作用-b将可执行文件(binary)当作文本文件(text)来搜索-c仅显示找到的行数-i忽略大小写-n显示行号-v反向选择——仅列出没有“关键词”的行。grep -n 1234 koke.txtfind / -name koke 查找
2022年08月10日
225 阅读
0 评论
0 点赞