bash shell

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• set: • 语法:#set • 功能:列出当前shell下的所有环境变量和 用户自定义变量
更改命令行提示符
• • • • 通过设置PS1变量 PS1变量默认值:PS1='[\u@\h \W]\$ ‘ PS1赋值参数: \d :代表日期,格式为 Weekday Month Date,例如 "Mon Aug 1" \H :完整的主机名称。linux.gdcp.cn \h :仅取主机名称的第一个名字。以上述 来讲,就是 linux 而已. \t :显示时间,为 24 小时格式,如: HH:MM:SS \T :显示时间,12 小时的时间格式
wc命令
• 例二:使用 last 可以输出登录用户,但是 last 最后两行并非账号内容, • 如何以一行命令串取得本月登录系统的总数? • # last | grep ‘[a-z][a-z]*’ | grep v 'wtmp' | wc -l
管道
• 管道:将一个命令的输出传送给另一个命令, 作为另一个命令的输入 • 使用方法: • # 命令1|命令2|命令3„„|命令n • 例子: • $ ls -Rl /etc |more • $ cat /etc/passwd | more • $ cat /etc/passwd | grep root • $ dmesg | grep eth0
SHELL中的命令通配符的使用
• • • • • • • • 例如: $ ls *.c $ ls n*.conf $ ls test? $ ls test??? $ ls [abc]* $ ls [!abc]* $ ls [a-zA-Z]* • $ cp *[A-Z]* /tmp • 只要文件名里面含有至少一个 大写字符 • $ ls -lda /etc/*[0-9]* • 找出在 /etc/ 底下所有含有 数字的文件 • $ls -lda /etc/*[35]* • 找出含有 3 或 5 的文件名或 目录名 • ls -lda /etc/[!a-z]* • 不想要有小写字符为开头的文 件
环境变量配置文件
• 总结: • 用户登录时,会读取和用户相关的一系列文 件: • 1. 先读取 /etc/profile ,再根据 /etc/profile 的内容去读取其它额外的配 置文件,例如 /etc/profile.d 与 /etc/inputrc 等等配置文件; • 2. 根据不同的用户,到用户家目录去读取 ~/.bash_profile 或 ~/.bash_login 或 ~/.profile 等配置文件; • 3. 根据不同用户,到他家目录去读取 ~/.bashrc 。
wc命令
• • • • • • # wc [-lwm] [file] 参数: -l :仅列出行; -w :仅列出多少字(英文单字); -m :多少字符; 例一:/etc/man.config 里面到底有多少 字、行、字符数? • # cat /etc/man.config | wc • 138 709 4506 • # 输出的三个数字中,分别代表: 『行、 字数、字符数』
• • • • • •
alias命令与unalias命令
• 功能:设置命令的别名。 • 语法:#alias [别名]=‘[命令名称]’ • 参数:若不加任何参数,则列出当前所有的 别名设置 • 取消别名设置:#unalias alias_name • 例子: • # alias • # alias type='cat' • unalias功能:取消别名 • 语法:unalias 别名 • # unalias type
重定向
重定向
• 重定向:就是不使用系统的标准输入设备、 标准输出设备或标准错误设备,而进行重 新指定。 • 重定向分为输出重定向、输入重定向和错误 重定向。 输入重定向:不使用标准输入作为数据的输 入,而是使用其它设备或文件获得输入数据 输出重定向:不使用标准输出作为数据的输 出,而是使用其它设备或文件作为数据输出 错误重定向:不使用标准错误作为错误的输 出,而是使用其它设备或文件作为错误输出
环境变量配置文件
• 用户主目录下的.bash_profile设置为每次 登录时执行, • 而.bashrc则被设置为在每次打开新的终端 时执行。 • 如果用户需要添加或修改某个环境变量,使 其每次登录时都会存在和具有用户指定的值, 则需要修改该用户主目录下的.bashrc文件. • 但是以其它用户身份登录后,则不会有这个 环境变量的存在,这是因为,在上面修改的仅 仅是前面用户私有的shell环境配置文件. • 如果需要使这个环境变量的修改对所有的用 户都有效,只需要以root的身份修改 /etc/profile文件.
type命令
• • • • 测试命令是shell内置命令还是外置命令 # type [-pa] name 参数: :不加任何参数时,则 type 会显示出那 个 name 是外部命令,还是bash的内部命令! -p :显示完整路径信息; -a :显示所有命令源,包含别名命令 例: #type ls ; type cd #type -a ls #type -p ls #type -p /usr/bin/passwd
echo命令
• • • • • • • 功能:取得系统(环境)变量的值 语法:#echo $变量名 # echo $PATH # echo ${PATH} 例一:请显示出环境变量 HOME 与 MAIL # echo $HOME # echo $MAIL
env命令与set命令
• env: • 语法:#env • 功能:列出当前linux系统下的所有环境变 量与其内容。
重定向
• 重定向符 输入重定向 < <<! !是键盘文字的输入结束符 输出重定向 > >> 错误重定向 2> 2>> &> 将标准输出和错误输出同时送 到同一文件中
重定向
• • • • • • • • • • • 使用举例 $ ls –l /tmp >mydir $ ls –l /etc >>mydir $ wc < /etc/passwd $ echo “Please call me : 62228899”>message $ myprogram 2> err_file $ cat > catfile testing cat file test <==这里按下 [ctrl]+d 结束输入来离开! $ cat > catfile < somefile
重定向
• 方法1: • $ find /home -name testing &> list • 方法2: • $ find /home -name testing > list 2>&1 <==正确写法 • $ find /home -name testing > list 2> list <==错误写法
shell对命令的解释过程
• 搜索路径: • 变量PATH指出 以相对路径形 式执行的命令 的搜索目录次 序。 • 查看PATH: #echo $PATH
shell对命令的解释过程
• linux系统中可执行文件的分类 • 1、内置命令 • 出于效率的考虑,将一些常用命令的解释程序 构造在Shell内部 • 2、外置命令 • A、系统命令 • 存放在/bin、/sbin目录下的命令 • B、实用程序 • 存放在/usr/bin、/usr/sbin、/usr/share、 /usr/local/bin等目录下的实用程序或工具 • C、用户程序 • 用户程序经过编译生成可执行文件后,也可作 为Shell命令运行 • D、Shell脚本 • 由Shell语言编写的批处理文件
bash shell
shell对命令的解释过程
• 什么是Shell • Shell是系统的用户界面,提供了用户与内 核进行交互操作的一种接口(命令解释器) • 有一些命令(比如改变工 作目录命令cd)是包含在 Shell内部的。 • 还有一些命令(例如复制 命令cp和移动命令mv)是 存在于文件系统中某个目 录下的单独的程序。
命令置换
• 功能:命令参数可以由另一个命令执行的结 果来替代。 • 使用方法: • $ cmd1 `cmd2 arguments` • 或 • $ cmd1 $(cmd2 arguments) • 例子: • $ echo “The present time is `date`” • # cd /lib/modules/$(unamer)/kernel/fs
关于减号 - 的用途
• 在管道命令中,常会使用前一个命令的 stdout作为后继命令的stdin,某些命令需 要用到文件名称 (例如 tar) 来进行处理 时,该stdin与stdout可以利用减号 “-” 来代替,举例来说: • # tar -cvf - /home | tar -xvf • # cp -a /home .
• • • • • •
切换Shell: #sh #bash #ksh #tcsh 退出当前 Shell: • #exit
wenku.baidu.com
SHELL中的命令通配符的使用
• 1、什么是通配符? • 字符串的模式匹配。通配符主要用于用 户方便描述目录或文件。 • 2、常用的通配符 *:匹配任何字符和任何数目的字符 ?:匹配单一数目的任何字符,一定有一个 [ ]:匹配[ ]之内的任意一个字符 []内可包含“-”,表示范围字符,如[a-z] [! ]:匹配除了[! ]之外的任意一个字 符,!表示非的意思 “*”不能匹配首字符是“.”的文件或目录 名。
更改命令行提示符
• 假设我想要有类似下面的提示字符: • [root@linux /home/test 16:50 #12]# • 则:[root@linux home]# PS1='[\u@\h \w \A #\#]\$ '
环境变量配置文件
• 通常情况下,用户登录系统时,bash首先执行 /etc/profile配置文件和/etc/profile.d/目录 下的配置文件,这些配置文件对系统的所有用户 都有效,它们设置了普遍性的环境变量. • 然后,bash会执行登录用户主目录下的.bashrc 和.bash_profile文件,通过这两个配置文件设置 用户个性化的环境变量,并且可以重复设置前面 配置文件中设置的选项,覆盖它们的设置值. • 用户主目录下面的.bash_profile 里面会调 用 .bashrc • 用户主目录下面的.bashrc文件会执行 /etc/bashrc文件来完成环境变量的设置.
• •
• •
更改命令行提示符
• • • • \A :显示时间,24 小时格式, HH:MM \u :目前用户的账号名称; \v :BASH 的版本信息; \w :完整的工作目录名称。家目录会以 ~ 取代; • \W :利用 basename命令取得工作目录名 称,所以仅会列出最后一个目录名。 • \# :下达的第几个命令。 • \$ :提示字符,如果是 root 时,提示字 符为 # ,否则就是 $
重定向
• $ cat <<! >mytext • > This text forms the content of the heredocument , • > which continues until the end of text delimiter • > ! • $ find /home -name testing > list_right 2> /dev/null • 如果我要将数据都写到同一个文件中呢?
shell的主要版本
• 1、Bourne shell (包括 sh, ksh, and bash) • A、Bourne shell ( sh) • B、Korn shell ( ksh) • C、Bourne Again shell (bash, • Linux使用的默认Shell) • 2、C shell (包括 csh and tcsh) • A、C shell ( csh) • B、TENEX/TOPS C shell ( tcsh) • Bash是大多数Linux系统的默认Shell。 • 查询Shell环境变量即可知道当前所用 shell:#echo $SHELL
相关文档
最新文档