⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 认识bash shell.txt

📁 linux shell bash 编程
💻 TXT
📖 第 1 页 / 共 4 页
字号:
  

  

根据上面的案例你可以试试看!就可以了解变数的设定啰!这个是很重要的呦!请勤加练习!!

bash shell 的设定档案: alias(设定命令别名), history, !command, source, 

终于来到 bash 的设定档案啰!这部份我们预计分成『系统设定值』与『一般各人喜好设定值』来说明,除非您是 root ,并且对于大家的喜好有共同的认知,否则只要设定您的『个人设定值』(在每个人的家目录内)也就可以啰!

· 系统设定值: 

所谓的系统设定值,也就是说每个使用者进入到 bash shell 之后,会先读取的设定档案!预设的设定档案有下列几个:

o /etc/profile:这个档案设定了几个重要的变数,例如:『PATH、USER、MAIL、HOSTNAME、HISTSIZE』等等,也同时规划出 inputrc 这个档案的资料内容,你可以在这里设定总体的 PATH 等等的资讯!同时,这个 file 也规划出 /etc/profile.d 及 /etc/inputrc 这两个档案,其中, inputrc 是用在 history (历史指令)的作用上的!总之,你可以了解到刚刚我们学会的变数设定方式,在这个档案中也可以设定呢!但是设定上需要特别小心,因为所有的使用者皆会使用到这个档案的资讯。注:通常我都喜欢将 /usr/local/bin 这个路径加成最前面,这是因为通常自己安装的套件自己最喜欢,所以当然是最先收寻啰! ^_^!此外,请注意一下,可以将 HISTSIZE 的大小改变一下,改成 50 就可以啦!比较安全! 

o /etc/bashrc:这个档案在规划 umask 的功能,也同时规划出提示字元的内容(就是里头那个 PS1 啦!)。 

o /etc/man.config:这个档案或许跟 bash shell 较没相关性,但是对于系统管理员来说,却也是很重要的一个档案!这的档案的内容『规范了使用 man 的时候, man page 的路径到哪里去寻找!』所以说的简单一点,这个档案规定了下达 man 的时候,该去哪里查看资料的路径设定!那么什么时候要来修改这个档案呢?如果你是以 tarball 的方式来安装你的资料,那么你的 man page(指令说明档案)可能会放置在 /usr/local/softpackage/man 里头,那个 softpackage 是你的套件名称,这个时候你就得以手动的方式将该路径加到 /etc/man.config 里头,否则使用 man 的时候就会找不到相关的说明档啰! 

这就是系统在设定的时候常常会使用的档案!需要特别留意的是,通常设定完了这几个档案之后,都需要先 logout 在 login 之后才会将设定整个启动起来!

· 个人设定值 

那么个人的喜好设定在哪里?嘿嘿嘿嘿!那就是在个人家目录的几个隐藏档当中啰!分别会使用到底下的几个档案啦!(注意!都是隐藏档,需要使用 ls -al 方能显示出来),另外,注意一下啰!底下那个『 ~ 』代表的是『家目录』的意思!

o ~/.bash_profile:里面定义了个人化的路径(PATH)与环境变数的档案名称!你可以在这里修改你的个人路径呦!当然啰!也可以在 ~/.bashrc 这个个人设定的变数里头修改! 

o ~/.bashrc:这个档案对于个人喜好的 bash 设定来说,是最重要的啦!因为我都是在这里设定我的个人化变数!例如命令别名的设定!路径的重新定义等等,都是在这里完成的!底下我们再仔细的讨论一下如何设定命令别名吧! 

o ~/.bash_history:这个档案的用途在于将你曾经使用过的命令记录下来,而当你再次的以上下键搜寻或者直接以 history 搜寻的时候,就可以找到曾经使用过的指令啰!需要注意的是: 

1. 在这一次的执行过程中的指令,将在你离开 shell 之后才会被纪录到这个档案中,否则将只会先被写到暂存记忆体中(Cache); 

2. 可以藉由 history 这个指令来将里头的纪录搜寻出来; 

3. 这个档案的指令记录笔数,与 HISTFILE 有关,你可以自行在 ~/.bashrc 里头设定,或者直接由 root 在 /etc/profile 里面统一设定大小! 

o ~/.bash_logout:这个档案则是在『你登出 shell 的时候, BASH 会为你所做的事情!』通常预设是只有 clear 这件事情而已,不过,你也可以将一些备份或者是其他你认为重要的工作写在这个档案中(例如清空暂存档),那么当你离开 Linux 的时候,就可以解决一些烦人的事情啰! 

大致上的个人设定就是如同上面说的!不过,我个人觉得比较重要的是 ~/.bashrc 这一个档案!我喜欢将自己的相关设定写在里头!这样可以很轻易的将个人的设定写好!尤其是命令别名与变数的设定等等!底下我们先来谈一谈『命令别名』与『历史指令记录』这两个东西,然后再来谈 ~/.bashrc 这个档案的一般各人喜好设定!

·命令别名: 

命令别名是一个很有趣的东西,特别是你的惯用指令特别长的时候!还有,预防一些不小心误杀档案的情况发生的时候!举个例子来说,如果你要查询隐藏档,并且需要长的列出与一页一页翻看,那么需要下达『 ls -al | more 』这个指令,我是觉得很烦啦!要输入好几个单字!那可不可以使用 lm 来简化呢?!当然可以,你可以在命令列下面下达: 

[test @tset test]# alias lm='ls -al | more'

要注意的是:『alias 的定义规则与变数定义规则几乎相同』,所以你只要在 alias 后面加上你的{『别名』='指令 参数' },以后你只要输入 lm 就相当于输入了 ls -al|more 这一串指令!很方便吧!另外,我们知道 root 可以移除( rm )任何资料!所以当你以 root 的身份在进行工作时,需要特别小心,但是总有失手的时候,那么 rm 提供了一个参数来让我们确认是否要移除该档案,那就是 -i 这个参数!所以,你可以这样做:

[test @tset test]# alias rm='rm -i'

嘿嘿!那么以后使用 rm 的时候,就不用太担心会有错误删除的情况了!这也是命令别名的优点啰!那么如何知道目前有哪些的命令别名呢?就使用 alias 呀!

[test @tset test]# alias 

alias l.='ls -d .[a-zA-Z]* --color=tty' 

alias ll='ls -l' 

alias lm='ls -al' 

alias ls='ls --color=tty' 

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

· 至于如果要取消命令别名的话,那么就使用 unalias 吧!

· 历史指令记录资料: 

前面我们提过 bash 有提供指令历史的服务!那么如何查询我们曾经下达过的指令呢?就使用 history 啰!

o history, !command 

显示历史指令记录内容, 下达历史纪录中的指令 

语法: 

  

说明: 

基本上 history 的用途很大的!但是需要小心安全的问题!尤其是 root 的历史纪录档案,这是 Cracker 的最爱!因为不小心的 root 会将很多的重要资料在执行的过程中会被纪录在 ~/.bash_history 当中,如果这个档案被解析的话.....而使用『 ! 』配合曾经使用过的指令下达是很有效率的一个指令方法!

鸟哥的常用的个人喜好设定值: 

底下是 VBird 最喜欢的设定值啰!大家可以随意的参考看看就好了! 

[test @test test]# vi .bashrc 

# .bashrc 

# User specific aliases and functions 

PATH="/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/sbin:/usr/bin:$PATH" <==常用! 

export PATH 

alias rm='rm -i' 

alias cp='cp -i' 

alias mv='mv -i' 

alias ll='ls -l' 

alias lm='ls -al|more' <==常用! 

alias h='history'<==常用! 

# Source global definitions 

if [ -f /etc/bashrc ]; then 

. /etc/bashrc 

fi 

[test @test test]# source ~/.bashrc<==將剛剛改的資料直接讀入這一次的程序當中!不需登出!

· 当然还有一些个人比较常用的变数,这里就不列出来了!那么改写完毕之后。此外,通常我们改写的这些设定,必须要登出再登入才能被启用!但是我们可以使用 source 来直接的启用他!这也是很多朋友为了因应不同的软体或者是其他的执行环境,而写了不同的环境设定档案(不一定是 .bashrc 这个档案),然后在需要的时候再以 source 来将设定读出来即可!这个指令可也是相当重要的呦!

万用字元与特殊符号 

由于在 bash 当中常会使用到一些万用字元,与搭配特殊符号来将指令做更好的利用(例如最常提到的正规表示法 Regulare Express )!底下我们列出一些常用的万用字元与特殊符号! 

  

上面的万用字元当中,最常用的就属 *, ?, [] 及 ` 了!我们提几个简单的例子:

[test @test test]# ls test* <==那個 * 代表後面不論接幾個字元都予以接受(沒有字元也接受!) 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -