系统初始化 ifconfig eth0 192.168.30.5/24 up //临时设置网卡,开机不生效 vi /etc/selinux/config setenforce 0 getenforc
系统初始化
ifconfig eth0 192.168.30.5/24 up //临时设置网卡,开机不生效
vi /etc/selinux/config
setenforce 0
getenforce
vi /etc/sysconfig/nework //永久修改主机名
bash 脚本编程 ---不同的shell语法不同
bash 是shell 的一种
/etc/passwd 后面表示的是shell /sbin/nolog 也是一种shell
posix 是可移动操作系统接口标准,在此之下的
cat /etc/shells 为当前环境可以使用的所有shell
[root@apache ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
在当前环境中打开的另外一个shell为当前shell的子shell
普通变量 :在子shell中不能够生效
环境变量 : 可以在子shell中生效
如果要永久支持,可以放到环境变量的文件
全局
/etc/profile
/etc/bashrc
每个用户的家目录下
~/.bashrc
~/.bash_profile
echo $a 父shell在子shell中引用变量
子shell中的变量不可以在父shell中获取
export a //将a设置为环境变量,在子shell中的修改不会在父shell中生效
bash 特性:
1.tab 补齐
单独写路径,以为是在写命令,所以不能被当作命令补全
bash 补全的控制命令文件 /etc/bash_completion.d
. /etc/bash_completion.d/yum.bash //让yum 命令可以自动补齐
2.后台任务
ctrl+z 放到后台暂停
bg %1 让编号为1的任务到后台运行
fg %1 让任务回到前台
任务 & 让任务在后台运行
kill %1 //
kill 进程号
kill -9 进程号 //尽量不要使用,会调用操作系统的接口,直接暴力结束进程,会有数据损坏
kill -l
kill -15 进程号 //应用程序准备好后自己退出
3.历史命令 history
history 10 //列出最近10条
!jo //执行以jo开头的历史命令
! 编号 //历史命令的编号
~/.bash_history //历史命令默认保存在这个目录下
4.管道 ---进程和进程之间的通信
ls /etc/ | wc -l
5.set -o vi //将系统的输入设置为vi模式,和vi 的操作命令一模一样
6.支持变量
7.支持脚本编程语言,脚本编程语言需要解释器
. bash命令的内建命令 builtin 相当于source
type 命令 //可以查看是内部还是外部命令
bash 脚本的用途 awk sed 用好
1.语句批量执行
2.添加计划任务
3.实现自动化运维脚本
bash 的解释
#!/bin/bash ----指定解释器
# 注释
#author:
#date:
#
........ 代码块..........
; 前面一条不管成不成功都会执行后面一条
&& 前面一条成功了才执行后面一条
date %w 显示周几
date %Y%m%d 显示当前年月日
export a //输出为环境变量
unset a //取消变量
echo $a
echo ${a} //为标准写法
echo ${abc}123 //输出abc变量的值+123
source/. echo.sh //将echo.sh中的内容在当前shell中执行
bash 执行脚本会忽略#!/bin/bash 解释器这一行
./source 执行脚本不会忽略解释器那一行,一般用来读取配置文件,将脚本里的内容放到当前环境执行
env 列出所有环境变量
set 列出所有变量
PS1 PS2 一、二级提示符
判断学生的成绩
1.输入 read
read -p "请输入你的成绩 :" num
read -p 提示符 varname
read -p 提示符 varname -s //-s 选项将不会把用户输入的内容显示出来
2.判断
[ "$num" -ge 0 -a "$num" -lt 60 ] && echo "你的成绩差" //-a 与 -o 或
if [ "$num" -ge 60 -a "$num" -lt 80 ] ;then
echo "你的成绩为良"
else
echo "你的成绩为优"
fi
退出状态嘛 echo $?
退出状态码为0则为正常退出
退出状态码为非0 则为退出失败
echo $$ 返回程序的PID
echo $0 代表运行的脚本的名字
echo $1 代表运行脚本后接的第一个参数
echo $2 代表运行脚本后接的第二个参数
echo ${10}
echo $*
echo $@ 代表所有参数
echo $? 执行成功则返回0 ,执行失败则返回非0值
[kate@china shell]$ bash example01.sh 3 52586example01.sh3583 53 50[kate@china shell]$ ./example01.sh 2 72587./example01.sh2792 72 70[kate@china shell]$ cat example01.sh #!/bin/bash# $符号的测验#echo $$echo $0 echo $1echo $2echo $(($1+$2))echo $*echo $@echo $?[kate@china shell]$
test 测试命令,属于内建命令
test 命令可以用 [ ] 代替
[ "$a" -lt "$b" ] //test 里面凡是引用变量的地方都加上引号,可以避免很多错误。
bash 中的缩进不是必须的,python中的缩进是必须的
shell中exit 99 可以指定退出状态码为99
[root@up12 shell]# echo 'upl00king' |grep --color '[^0-9]'
upl00king
[root@up12 shell]# echo 'upl00king' | tr -d '[0-9]'
uplking
aa='date' //将date 赋值给aa 相当于aa=$(date) ' ‘相当于是$()的简写。 ‘’ 里的命令将会被执行后赋值给变量。
echo "59.55" |cut -d "." -f 2 | tr -d '/n' | wc -c
[root@up12 for-linux]# echo "59.55" |cut -d "." -f 2 | tr -d '/n' | wc -c
2
//根据小数点进行分隔,取小数点右边的数,去掉换行符,统计右边一共有几位
比较两个文件是否相同 ---一般用来生成补丁
diff txt1 txt2
vimdiff txt1 txt2 //更加方便好用
unix系统中超级用户是UID为0的用户,不一定是root,只要UID的值为0就是超级用户。
目录和文件的权限有什么不一样?