bash小总结

bash的配置文件,

按范围分:

全局配置:

/etc/profile,

/etc/profile.d/*.sh

/etc/bashrc

个人配置:

~/.bash_profile

~/.bashrc

按功能分:

profile类:为交互式登录shell提供配置

/etc/profile,

/etc/profile.d/*.sh

~/.bash_profile

1, 定义环境变量,如PATH

2,运行命令或脚本

bashrc类:为非交互登录时shell提供配置

/etc/bashrc

~/.bashrc

1,用来提供命令别名

2,定义本地变量

变量:变量名就是指针,指向变量

类型:

环境变量:当前shell及其子进程

export name=value

declare –x name=value

本地变量:仅当前进程

name = value

局部变量:当前shell进程中的某代码片段

位置变量:$1,$2

特殊变量:$?

定义方式:

bash内置变量,无需定义,可直接调用。PATH

自定义变量:

赋值方法:变量名 = 值

自增:name=”$name dddddd”

弱类型!!!默认均保存为字符型

pstree可以查询进程树

查看环境变量

env

printenv

export

撤销变量

unset name

引用变量

$name ${name}

引用符号

‘’强引用,变量替换不会发生

“”弱引用

``命令引用,引用命令的执行结果

shell登录类型:

交互式:直接终端  su - username

非交互式:图形界面 su username

登录时的作用次序

交互式:/etc/profile —> /etc/profile.d/*.sh —> ~/.bash_profile

后面执行的覆盖前面的

非交互式:~/.bashrc –> /etc/bashrc –> /etc/profile.d/*.sh

新配置如何生效:

1,重新登录

2,重读配置文件

source /PATH/TO?SOMEFILE

. /PATH/TO?SOMEFILE

实验之后再更正:

1、如何定义对所用用户都生效的别名?

/etc/bashrc我猜测是在这里修改,

2、如果仅需要PATH环境变量的修改仅对root用户生效,该如何操作

      ~/.bashrc修改root的这个文件

时间: 2024-09-29 16:52:37

bash小总结的相关文章

bash小小小脚本

1.编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小. [[email protected] scripts]# cat systeminfo.sh #!/bin/bash HostName=`uname -n` Ipv4=`ifconfig |sed -nr '2s#.*addr:(.*)  Bca.*$#\1#gp'` Cpu=`lscpu|sed -n '13p'|tr -s ' 

写了一段批量管理的bash小程序,利用了redhat 原生的expect,wget包组。

粘贴下readme: #myexpect V1.0 released #auth [email protected] #env description myexpect server requires:bash is needed ofcource expect for answer password vsftpd for client to down load scripts upload files etc. myexpect client requires:ftp for upload w

bash小技巧

Linux 下shell基本上默认是 bash, 下面是我总结的一些技巧. &  后台运行程序 ,注意退出当前shell后 程序也会退出()   使用子shell, 比如 (cd ../../commlib/; make) $()  命令替换,和 ``的作用是一样的 <(命令)  把命令的输出到一个临时文件 << HereDoc 使用举例: 比如你要在 shell 脚本中 使用 awk 脚本 awk -f <(cat <<EOF /abc/{ print $0;

bash脚本总结1:[[:not found 错误

运行shell脚本经常碰到这个坑,但是又不知道是怎么回事,总是怀疑bash版本是不是支持[[ 用法. 1.检查bash版本. bash --vserion GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu) 想来基本不是版本问题. 2.[[ 使用错误. 在交互模式下使用: xiaobai@XXX:~$ [[ 1 ]] && echo 'successful!' successful! 显然这样用是可以的. 3.那到底是哪里出了

bash脚本中出现[[:not found错误的解决方法

bash脚本中出现[[:not found错误的解决方法--bash脚本总结1 今天在写脚本的时候,发生了一个奇怪的问题:在脚本中使用[[的时候报错“[[: not found”.遇到问题自然是解决问题. 1. 使用的bash版本太低? bash --version查看bash版本信息如下 [email protected]:~$bash --version GNU bash, version 3.2.39(1)-release (i486-pc-linux-gnu) Copyright (C)

ubuntu上的sh链接到dash

最近同事写的shell脚本在ubuntu上跑时总走不对if的分支.发现ubuntu上的shell默认是bash,但sh对应的是dash,这个需要注意. 1 ubuntu上sh连到dash: [email protected]:~$ uname -a Linux hostname1 3.11.0-15-generic #25~precise1-Ubuntu SMP Thu Jan 30 17:39:31 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux [email 

游戏服务器部署

#!/bin/bash #小菜鸟 #挂机 #版本:1.0 #游戏服务器部署 #基础环境:MYSQL数据库svn客户端需部署才能运行此脚本 #################################################### if [ "$UID" = "0" ] then echo "game server install" else exit 1 fi read -p "Please create the stor

Docker容器从一知半解到入门

Docker是一个开源的.跨平台的应用容器引擎,可以让技术开发认用打包他们的应用以及一些依赖包到一个可移植的容器平台中,发布到任何流行的Linux操作系统上面,也可以在Windows和mac操作系统上面跑,容器是完全使用沙箱机制,容器相互之间不会存在任何接口.docker应用广泛.安全性好.运行快.节约资源.移植性好.自动化部署快等有点. 下面我们来看一张docker镜像基本原处理图: 我们在学习Docker镜像的时候,使用系统默认的yum源安装会非常慢,很有可能会安装失败,因为docker服务

[小技巧] 在bash中生成随机数

译至:http://d.hatena.ne.jp/anmino/20091017/1255705586 bash的SHELL参数RANDOM可以生成0-32767的随机数.想设定从1到N的随机数范围的话,可以使用:$ ( ( (RANDOM % n) + 1 )) #!/bin/sh #random_bash.sh for n in 1 2 3 4 5 6 7 8 9 10; do random=$(( (RANDOM % 10) + 1 )) echo -n "$random " d