shell:概述、脚本编写、变量的简单基础
for i in {1..5}do
#######################################################
vncviewer 172.40.50.118:8
######################################################
top 大写的P 按CPU排序 #
M 按内存排序 #
######################################################
uptime CPU
free 内存
#######################
small [有点:快,漏洞少bug]
【缺点:功能少,依赖关系】
yum-config-manager
createrepo/opt/libreoffice/
#####################################################
执行脚本:
1.绝对路径 /root/*.sh
2.相对路径 ./*.sh
3.bash 脚本名(不需赋予权限)
4.source 脚本名(特例)
1.2.3种都是开子进程
4不开子进程
子进程:用pstree查看进程,-sshd-sshd-bash-pstree
pstree这个命令是bash的子进程
开子进程:若bash是当前命令的窗口,那么脚本在pstree里执行
不开子进程:就在bash里执行
source是特例,比如:脚本里写个exit,开子进程执行就会在pstree里执行exit然后跳出到bash里,不开子进程执行,跳到sshd里,远程断了!
脚本写在/bin目录下就不要写.sh
##########################################################
PS1:1级提示符
PS2:2级提示符
修改提示符(临时):PS1=XXX
#!/bin/bash
#准备yum源
echo "准备配置yum源..."
#清空之前的yum配置文件
rm -rf /etc/yum.repos.d/*
#写入yum配置信息,并导入到/etc/yum.repos.d/dvd.repo文件当中
echo "
name=dvd
baseurl=http://192.168.4.254/rhel7
enabled=1
gpgcheck=0" > /etc/yum.repos.d/dvd.repo
#清空yum缓存
yum clean all &> /dev/null
#列出可用软件包
echo -e "\033[35m yum repolist | grep "repolist" \033[0m"
#建立缓存文件
echo -e "\033[36m yum makecache \033[0m"
echo "yum仓库建立成功"
# 安装FTP服务
yum -y install vsftpd >/dev/null 2>error.log
# 启动FTP服务
systemctl restart vsftpd >/dev/null 2>error.log
# 设置FTP服务开机自启动
systemctl enable vsftpd
# 提示是否成功
systemctl is-enabled vsftpd | grep enabled && echo "设置开机自启成功"
echo "请去测试是否成功ftp"
##############################################################
a=1
b=2
#echo $a$b
12
#echo ${a}${b}
12
###############################################
02.
#!/bin/bash
echo $0 脚本名
echo $1 第一个参数
echo $2 第二个参数
echo $3 第三个参数
echo $* 所有参数
echo $# 共几个参数
##########################################################
单引号'':界定一个整体,并且实现屏蔽特殊字符号
# a=24
# echo $a
24
# echo "$a"
24
# echo '$a'
$a
# echo 11'$a'
11$a
# echo 11$a
1124
# echo 11"$a"
1124
双引号"" :界定一个整体
"ab" != ab #两者不相等
"ab"== ab #两者相等
touch "a b" #创建一个文件为"a b",而不是a和b两个
rm a b
双引和单引的区别:有无特殊符号
无特殊符号就相等
echo "ab"==echo 'ab'
echo "$ab" !=echo '$ab'
反引号`` $()
$(cat /etc/passwd)引用()内可执行的命令
`cat /etc/passwd` 优先级提高
# tar -jpcv log-$(date +%F).tar.gz/var/log
tar -czf后面没指定路径则指定当前路径下的log。。。
每周五备份一个/var/log,使用tar,备份到root
crontab -e
03 03 * * 5 tar -czf /root/log-.tar/var/log
变量:
局部变量(自定义默认)
全局变量(系统变量) 要想改为全局变量 加个export
常见linux系统预设变量:
$USER(用户名变量) $UID(用户ID)
$PATH(命令搜索路径) $HOME(用户家目录)
$SHELL(当前使用的shell) $PWD(当前工作目录)
# export bb=88
# echo $bb
88
# bash
# echo $bb
88
删除变量名:unset 变量名
stty-echo:关闭回显,在键盘上敲命令不显示
stty echo:打开回显
页:
[1]