第13章   学习 shell脚本之前的基础知识

1. 设置环境变量 HISTSIZE , 使其能够保存10000条命令历史。
  vim /etc/profile  
把 HISTSIZE=1000 改为 HISTSIZE=10000

2. 为什么如果这样设置PS1 (PS1="[\[email protected]\h \W]\$ ")  显示的结果和我们预想的不一样,那要如何设置才能恢复原来默认的?
  应该是 PS1=‘[\[email protected]\h \W]$  ‘     (要用单引号)

3. 想办法把当前目录下的文件的文件名中的小写字母全部替换为大写字母。
 for f in `ls`; do if echo $f |grep -q ‘[a-z]‘;then mv $f `echo $f|tr ‘[a-z]‘ ‘[A-Z]‘`;fi;done

4. 使用sort以":"为分隔符,对/etc/passwd文件的第5段排序。
  sort -t: -k5 /etc/passwd

5. 使用cut以":"为分隔符,截出/etc/passwd的第三段字符。
  cut -d: -f 3 /etc/passwd

6. 简述这几个文件的作用: /etc/profile, /etc/bashrc, .bashrc, .bash_profile.
a、   /etc/profile :  设置系统全局环境变量和启动程序,当用户登录Linux时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置。预设的系统全局变量包括PATH、USER、LOGNAME、MAIL、INPUTRC、HOSTNAME、HISTSIZE、umask等。
b、   /etc/bashrc : 为每一个运行bash shell的用户执行此文件。当bash shell被打开时,该文件被读取。默认情况下,这个文件主要预设umask以及PS1等。
c、    .bash_profile : 定义用户专有的环境变量和启动程序。当用户登录时,该文件仅仅执行一次。 默认情况下,它设置了一些环境变量,执行用户的.bashrc文件。
d、    .bashrc :该文件包含专用于用户的shell的bash信息,当用户登录时以及每次打开新的shell时,该该文件被读取。可以将用户自定义的alias和变量写到这个文件中。

7. export 的作用是什么?
   export 用来全局声明变量,可以使声明的变量在子shell中生效

8. linux下自定义变量要符合什么样的规则呢?  
(1) 设定变量的格式为“a=b”, 其中a为变量名,b为变量的内容,等号两边不能有空格;
(2)变量名只能由英、数字以及下划线组成,而且不能以数字开头;
(3)当变量内容带有特殊字符(如空格)时,需要加上单引号,变量内容中本身带有单引号的情况则使用双引号;
(4)如果变量内容中需要用到其他命令运行结果则可以使用反引号;
(5)变量内容可以累加其他变量的内容,需要加双引号。

9. 如何把要运行的命令丢到后台跑?又如何把后台跑的进程给调到前台?
a、要将运行的命令丢到后台,可以先按CTRL+Z让其暂停,然后使用bg命令将其丢到后台运行;或者执行命令时添加&后台标识,格式为“命令+空格+&”。

b、将后台运行的进程调到前台,可以输入fg快捷键。

10.  列出当前目录下以"test"开头的文件和目录。
  ls -d  test*
11.  如何把一个命令的输出内容不仅打印到屏幕上而且还可以重定向到一个文件内?
   使用tee命令,如 cat /etc/passwd |tee 2.txt

12. 假如有个命令很长,我们如何使用一个简单的字符串代替这个复杂的命令呢?请举例说明。
   使用alias  如 alias abc="/usr/local/apache/bin/apachectl -t"

13. 我如何实现这样的功能,把一条命令丢到后台运行,而且把其正确输出和错误输出同时重定向到一个文件内?
    vmstat 1  > /tmp/1.log 2>&1 &

14. 如何按照大小(假如按照10M)分隔一个大文件,又如何按照行数(假如10000行)分隔?
    split -b 10M  file   ;

split -l 10000 file

15. 做实验,搞明白 ; && || 这三个符号的含义。
 ;  只是用来分割多个命令,各条命令相互独立运行,没有任何关联性。
&&   只有前面的命令成功执行后,后面的命令才会执行。如果前面的命令执行失败,则忽略后面的命令。
||   多条命令中只要一条命令执行成功,则忽略后面的命令,否则运行后面的命令。

16. 如果只想让某个用户使用某个变量如何做?
 vim  /home/username/.bashrc  增加一行  export  abc=123
然后再 source  /home/username/.bashrc    
17. 使用哪个命令会把系统当中所有的变量以及当前用户定义的自定义变量列出来?
    set

扩展阅读:

Linux环境变量之“PS1" http://www.lishiming.net/thread-5364-1-1.html

Linux支持中文 http://www.lishiming.net/thread-5360-1-1.html

让命令历史永久保存并加时间戳 http://www.lishiming.net/thread-283-1-1.html

linux 下/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 干啥的 http://www.lishiming.net/thread-909-1-1.html

时间: 2024-10-27 14:07:20

第13章   学习 shell脚本之前的基础知识的相关文章

学习 shell脚本之前的基础知识

转载自:http://www.92csz.com/study/linux/12.htm  学习 shell脚本之前的基础知识 日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员.目前很多单位在招聘linux系统管理员时,shell脚本的编写是必考的项目.有的单位甚至用shell脚本的编写能力来衡量这个linux系统管理员的经验是否丰富.笔者讲这些的目的只有一个,那就是让你认真对待shell脚本,从一开始就要把基础知识掌握牢固,然后要

学习shell脚本之前的基础知识(一)(学习记录帖)

记录命令历史:我们敲过的命令,linux会有记录,保存在家目录的.bash_history文件中.(备注:只有用户正常退出当前shell时,当前命令才会保存在.bash_history文件中) “  !”的常见应用:(1)!!表示执行上一条支流:(2)!n  (n表示数字),表示执行历史记录中的第n条命令:(3)!字符串   例如 !ta 表示执行命令历史中最近的已ta开头的命令: 支流和文件名补全:按tab键可帮助补充指令.路径或文件名:连按两次tab键,系统可列出所有的指令或文件: 别名:a

shell 脚本执行和基础知识

当我们给予shell脚本执行的权限后,就可以测试程序了,假设shell脚本文件为hello.sh放在/root目录下.下面介绍几种在终端执行shell脚本的方法:1.切换到shell脚本所在的目录,执行: [[email protected] home]# cd /root/[[email protected] ~]# ./hello.shhello guys!welcome to my Blog:linuxboy.org! 2.以绝对路径的方式执行: [[email protected] ~]

第13章 学习shell script

第一个script [[email protected] script]# cat -n sh01.sh 1 #!/bin/bash 2 #Program: 3 #This program shows "Hello World!" in your screen. 4 PATH=/usr/local/java/jdk1.8.0_91/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin:~/b

学习shell脚本之前要掌握的知识

学习SHELL脚本之前的知识 1)记录命令历史 我们敲过的命令,linux是会有记录的,预设可以记录1000条历史命令.这些命令保存在用户的家目录中的.bash_history文件中.有一点需要你知道的是,只有当用户正常退出当前shell时,在当前shell中运行的命令才会保存至.bash_history文件中. 与命令历史有关的有一个有意思的字符那就是"!"了.常用的有这么几个应用:(1)!! (连续两个"!"),表示执行上一条指令:(2)!n(这里的n是数字),

第一章、shell脚本基础

shell的作用:人和机器交互的工具-->其实是一个程序. shell里比较好用的程序是bash 默认情况下几乎所有的linux系统默认的shell都是bash ==== c语言为什么要编译.c语言是人认识的语言,根据某种编码进行翻译叫编译. shell脚本编程的优势. 查看当前shell [[email protected] ~]$ echo $SHELL /bin/bash [[email protected] ~]$  shell课程体系 Shell脚本编程 Shell基础 变量的使用 算

第九章、shell脚本编程基础

第九章.shell脚本编程基础 本章内容 编程基础 脚本基本格式 变量 运算 条件测试 配置用户环境 编程基础 程序:指令+数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 程序的执行方式 计算机:运行二进制指令 编程语言: 低级:汇编 高级: 编译:高级语言-->编译器-->目标代码 java,C# 解释:高级语言-->解释器-->机器代码 shell, perl, python (系统后台

学习shell脚本笔记

1.if 是单分支语句,使用格式如下: if condition ; then statement -.. fi 2.if - else 是双分支语句,使用格式如下: if condition ; then statement -. else statement -. fi 3.if -elif-elif-else 是多分支语句,使用格式如下: if condition ; then statement -. elif condition ; then statement -.. elif co

第9章:Shell脚本进程管理

第9章:Shell脚本进程管理 9.1.进程概念 理解进程概念需要先简单了解指令和程序这两个概念,进程跟指令和程序是相关联的. 什么叫指令? 指令是指示计算机执行某种操作的命令,它由一串二进制数码组成. 什么叫程序? 程序(Program)是实现计算机执行一个或多个操作,或执行某一任务,按序设计的计算机指令的集合. 什么叫进程? 进程是正在运行的程序的实例,进程也是执行程序的具体实现过程. 指令.程序和进程三者之间的关系? 计算机实际上可以做的事情实质上非常简单,比如计算两个数的和,再比如在内存