侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

20170207--forlinux-系统初始化

2023-11-27 星期一 / 0 评论 / 0 点赞 / 61 阅读 / 6414 字

系统初始化 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就是超级用户。


目录和文件的权限有什么不一样?


 

广告 广告

评论区