1、shell基本参数
#cat /etc/shells 系统提供的shell位置
#bsh、csh、ksh、bash 改变root用户的shell环境
#chsh 改变普通用户的shell环境
#more /etc/passwd 查看所有用户的shell环境
#cat /etc/shells 系统提供的shell位置
#bsh、csh、ksh、bash 改变root用户的shell环境
#chsh 改变普通用户的shell环境
#more /etc/passwd 查看所有用户的shell环境
2、shell变量
2.1、环境变量
#set | more 查看环境变量
#set | more 查看环境变量
2.2、常用环境变量介绍
#echo $USER 显示当前用户登录名
#echo $UID 显示当前用户的用户号
#echo $SHELL 显示当前用户的登陆Shell
#echo $HOME 显示当前用户的宿主目录
#echo $PWD 显示当前用户所在的目录
#echo $PATH 表示当前用户的命令搜索路径
#echo $PS1 显示当前用户的主提示符
#echo $PS2 显示当前用户的辅助提示符
#echo $USER 显示当前用户登录名
#echo $UID 显示当前用户的用户号
#echo $SHELL 显示当前用户的登陆Shell
#echo $HOME 显示当前用户的宿主目录
#echo $PWD 显示当前用户所在的目录
#echo $PATH 表示当前用户的命令搜索路径
#echo $PS1 显示当前用户的主提示符
#echo $PS2 显示当前用户的辅助提示符
2.3、环境变量配置文件
#ls -l /etc/bashrc /etc/profile 显示环境变量的全局配置文件
"bashrc"文件用于定义全局的函数和别名,文件的内容除了为系统中所有登录用户提供设置外,也适用于非交互Shell和非登录Shell
"profile"文件负责设置全局的环境,并应用于所有的用户登录Shell
#ls -l /etc/bashrc /etc/profile 显示环境变量的全局配置文件
"bashrc"文件用于定义全局的函数和别名,文件的内容除了为系统中所有登录用户提供设置外,也适用于非交互Shell和非登录Shell
"profile"文件负责设置全局的环境,并应用于所有的用户登录Shell
#ls -l /home/username/.bash_profile /home/username/.bashrc 显示用户username的配置文件
#cd /etc/skel 进入初始的用户配置文件
#cp .bash_logout .bash_profile .bashrc .emacs .gtkrc /home/username 复制用户的初始配置文件到用户username的宿主目录下(当用户对自己的配置文件设置出错时使用)
#cd /etc/skel 进入初始的用户配置文件
#cp .bash_logout .bash_profile .bashrc .emacs .gtkrc /home/username 复制用户的初始配置文件到用户username的宿主目录下(当用户对自己的配置文件设置出错时使用)
2.4、位置变量
格式:$n n从1到9
单引号(''):不进行任何的变量替换,保持字符串的原始值
双引号(""):以变量的值来替换,并作为字符串的一部分
反引号(``):用于进行命令替换,引号中命令的执行结果将替换命令本身作为字符串
格式:$n n从1到9
单引号(''):不进行任何的变量替换,保持字符串的原始值
双引号(""):以变量的值来替换,并作为字符串的一部分
反引号(``):用于进行命令替换,引号中命令的执行结果将替换命令本身作为字符串
2.5、预定义变量
#echo $# 表示位置参数的变量
#echo $* 表示位置参数的内容
#echo $? 表示命令执行后返回的状态,用于检查一个命令的执行是否正确;在Linux中,命令退出状态为0表示命令正确执行,任何非0值表示命令执行错误
#echo $$ 表示当前进程的进程号
#echo $! 表示后台运行的最后一个进程号
#echo $0 表示当前执行的进程名
#echo $# 表示位置参数的变量
#echo $* 表示位置参数的内容
#echo $? 表示命令执行后返回的状态,用于检查一个命令的执行是否正确;在Linux中,命令退出状态为0表示命令正确执行,任何非0值表示命令执行错误
#echo $$ 表示当前进程的进程号
#echo $! 表示后台运行的最后一个进程号
#echo $0 表示当前执行的进程名
2.6、用户自定义变量
#变量名=变量值 DAY=Sunday
#echo $变量名 echo $DAY
#unset -f -v name
#变量名=变量值 DAY=Sunday
#echo $变量名 echo $DAY
#unset -f -v name
2.7、Bash常用功能
#history 历史命令查看
#history -c 命令历史清除
#history 历史命令查看
#history -c 命令历史清除
2.8、命令别名
#alias 命令='新命令' alias ll='ls -l' 使用ll别名更换ls -l命令
#unalias -a name 取消命令别名
#cd /etc/profile.d/ 查看系统别名定义文件
#alias 命令='新命令' alias ll='ls -l' 使用ll别名更换ls -l命令
#unalias -a name 取消命令别名
#cd /etc/profile.d/ 查看系统别名定义文件
3、管道与重定向
3.1、输入重定向
#wc /etc/passwd 计算文件/etc/passwd中的字符数、单词数和行数
#wc < /etc/passwd 将"/etc/passwd"文件中的内容输入重定向到WC命令中
#wc /etc/passwd 计算文件/etc/passwd中的字符数、单词数和行数
#wc < /etc/passwd 将"/etc/passwd"文件中的内容输入重定向到WC命令中
3.2、输出重定向
#cat /etc/passwd >file 将/ect/passwd下的内容覆盖到file中
#cat /etc/passwd >>file 将/etc/passwd下的内容追加到file中
#aaa 2>errfile 将aaa命令显示的错误结果输入到errfile中
#ls afile bfile &>allfile 将标准输出和错误输出重定向到同一个文件
#ls /etc/passwd/ | head -5 显示passwd中前5行内容
#cat /etc/passwd >file 将/ect/passwd下的内容覆盖到file中
#cat /etc/passwd >>file 将/etc/passwd下的内容追加到file中
#aaa 2>errfile 将aaa命令显示的错误结果输入到errfile中
#ls afile bfile &>allfile 将标准输出和错误输出重定向到同一个文件
#ls /etc/passwd/ | head -5 显示passwd中前5行内容
4、Shell脚本
#ls -l /etc/init.d/目录中存在着数量相当多的系统服务启动程序,这些程序全部都是Shell脚本文件,可以使用file命令查询这些文件的类型
#bash *.sh 使用shell命令执行脚本
#. /home/techer/filename.sh 执行filename.sh
#ls -l /etc/init.d/目录中存在着数量相当多的系统服务启动程序,这些程序全部都是Shell脚本文件,可以使用file命令查询这些文件的类型
#bash *.sh 使用shell命令执行脚本
#. /home/techer/filename.sh 执行filename.sh
本文转自凌激冰51CTO博客,原文链接:http://blog.51cto.com/dreamfire/159512,如需转载请自行联系原作者