`
Element&lina
  • 浏览: 10327 次
  • 性别: Icon_minigender_1
  • 来自: 目前杭州
社区版块
存档分类
最新评论

1.beginning bash 《bashcookbook》

阅读更多
1.beginning bash

1.1 解码提示符
problem

我们必须熟悉shell展示给我们的一切,比如提示符。

solution

shell里面的命令输入提示符在不同的系统(不同的版本),不同的shell版本里有不同的表现形式。

在bournn系列的shell中提示符结尾的$通常表示用户是普通帐号,而#表示用户是root帐号,通常root帐号拥有最高的权限。

这是一个标准的shell提示符

       jp@adams:~$

jp表示用户名,adams表示机器名,~表示当前的路径是用户的根目录,可以输入pwd得到准确的路径,比如是: /home/jp,$表

示这个是一个普通的用户。

我们再来看看这个提示符

     jp@adams:/tmp$

这个表示用户路径变成了/tmp

discussion

shell提示符样式是可以配置的,我们需要修改PS1这个变量,另外在用普通用户登录的时候我们可以使用sudo,su去执行root
才能执行的指令(关于su,sudo的区别请参考:http://blog.chinaunix.net/u/9465/showart_184729.html)。
一般来说,root代表了系统的最高权限,但是在有些系统中存在强制访问控制系统(mandatory access control),比如NAS
的SELinux,类似这样的MAC系统可以近一步保证我们的系统安全。

1.2 想知道你在哪吗
problem

你真的知道自己在哪吗?

solution

   1. 通过pwd我们可以自己在哪bash-2.03$ pwd
      /tmp
   2. 如果你的默认提示符没有显示你所在的问题,我们可以修改PS1
      bash-2.03$ export PS1='[\u@\h \w]$ '
      [jp@solaris8 /tmp]$

discussion

   如果你所在的路径是一个软链接,你可以使用pwd -P得到真实的物理地址

1.3 找到你想要的命令
Problem

你想在bash下找到某个命令并执行。

Solution

试试type,which,apropos,locate,slocate,find,ls等命令。

Discussion

bash通过$PATH环境变量保存的路径去查找可以执行的命令.
type命令不仅可以从$PATH中查找命令,并且还可以查找别名,而which指令只能在$PATH路径下查找,它们都有个-a参数可以列出
所有查找到的命令.例如:
$ type which
which is hashed (/usr/bin/which)
$ type ls
ls is aliased to `ls -F -h'
$ type -a ls
ls is aliased to `ls -F -h'
ls is /bin/ls
$ which which
/usr/bin/which
我们可以通过man指令去查看命令的说明文档,有些程序也提供了内建的帮助,通常你需要在命令后面加上 h或者-help,如果你不清楚
命令的具体名称及作用,你可以用apropos查询,该命令同man -k作用一样,例如:
$ apropos music
cms (4) - Creative Music System device driver
$ man -k music
cms (4) - Creative Music System device driver

locate,slocate命令是用来查找文件的,通过一个定时任务建立索引文件,在查询时我们就能很快找到某个文件,slocate只会显示用户
拥有访问权限的结果路径,对于刚刚建立的文件来说,locate应该是找不到的,另外有些系统默认locate就是slocate的一个软链接.如果
你要执行的指令不在$PATH路径下,你可以用./command执行你的指令,因为默认情况下bash不会把你当前的工作目录添加到$PATH,这个
主要是出于安全考虑.

1.4获取文件信息
Problem

你需要获得更多的文件信息,比如它是什么?拥有者是谁,是否可以执行,有多少个链接指向这个文件,最后的修改时间是什么时候.
Solution

使用ls,stat,file,find,touch命令.
delbert@delbert-desktop:~$ ll myinitlog
rw-rw-rw 1 delbert delbert 3896 2009-07-09 09:46 myinitlog
delbert@delbert-desktop:~$ touch myinitlog
delbert@delbert-desktop:~$ ll myinitlog
rw-rw-rw 1 delbert delbert 3896 2009-07-09 17:33 myinitlog

$ ls /tmp/sample_file
/tmp/sample_file
$ ls -l /tmp/sample_file
rw-rr- 1 jp jp 0 Dec 18 15:03 /tmp/sample_file
$ stat /tmp/sample_file
File: "/tmp/sample_file"
Size: 0 Blocks: 0 IO Block: 4096 Regular File
Device: 303h/771d Inode: 2310201 Links: 1
Access: (0644/rw-rr-) Uid: ( 501/ jp) Gid: ( 501/ jp)
Access: Sun Dec 18 15:03:35 2005
Modify: Sun Dec 18 15:03:35 2005
Change: Sun Dec 18 15:03:42 2005
$ file /tmp/sample_file
/tmp/sample_file: empty
$ file -b /tmp/sample_file
empty
$ echo '#!/bin/bash -' > /tmp/sample_file
$ file /tmp/sample_file
/tmp/sample_file: Bourne-Again shell script text executable
$ file -b /tmp/sample_file
Bourne-Again shell script text executable
0
0
分享到:
评论

相关推荐

    rehl4.X,5.X,6.X bash升级包 针对漏洞CEV-2014-6271

    每个相应版本对应bash rpm两个一个64位一个32位 官网下载 可以对照MD5 软件列表: bash-3.0-27.el4.i386.rpm bash-3.0-27.el4.x86_64.rpm bash-3.2-33.el5_11.4.i386.rpm bash-3.2-33.el5_11.4.x86_64.rpm bash-...

    Jenkins脚本..bash_aliases

    Jenkins脚本..bash_aliases

    .git-completion.bash

    .git-completion.bash

    linux bash远程执行代码漏洞的补丁

    redhat bash漏洞补丁包含文件:bash-4.1.2-15.el6_5.2.i686.rpmbash-4.1.2-15.el6_5.2.x86_64.rpmbash-3.0-27.el4.i386.rpmbash-3.0-27.el4.x86_64.rpmbash-3.2-33.el5_11.4.i386.r... redhat bash漏洞补丁 包含文件...

    bash补丁包.zip

    1、rhel 4.x 32位 bash-3.0-27.0.3.el4.i386.rpm bash-debuginfo-3.0-27.el4.4.i386.rpm 2、rhel 4.x 64位 bash-3.0-27.el4.x86_64.rpm bash-debuginfo-3.0-27.el4.4.x86_64.rpm 3、centos5.x_32 bash-3.2-33.el5.1....

    oracle用户下.bash_profile文件修改

    安装Oracle之后,需要为oracle用户配置环境变量,这些环境变量存储在用户的.bash_profile文件中。.bash_profile文件位于用户的主目录下,用于设置环境变量和启动程序。本文档即为在安装Oracle时,对oracle用户下的....

    bash漏洞 v4/v5/v6补丁包

    1、rhel 4.x 32位 bash-3.0-27.0.3.el4.i386.rpm bash-debuginfo-3.0-27.el4.4.i386.rpm 2、rhel 4.x 64位 bash-3.0-27.el4.x86_64.rpm bash-debuginfo-3.0-27.el4.4.x86_64.rpm 3、centos5.x_32 bash-3.2-33.el5.1....

    redhat5.X、6.X BASH漏洞RPM补丁包(含教程)

    1. **验证系统**:首先,需要确认系统是否受到Bash漏洞的影响,可以通过运行特定的命令检查Bash版本。 2. **下载补丁**:从提供的链接或附件中下载相应的RPM补丁包。 3. **安装补丁**:使用`rpm`命令安装补丁,例如...

    Bash参考手册.pdf

    1. Bash简介 Bash是GNU项目的一部分,是自由软件基金会(Free Software Foundation)维护的一个 Unix shell。Bash是Unix shell的免费实现,兼容 Unix shell的所有功能,并且添加了一些新的功能。 2. Shell是什么? ...

    bash.acp&bash.stx

    在这个场景中,我们关注的是与Bash shell相关的配置文件——"bash.acp"和"bash.stx",这些文件是专门为EditPlus定制的,目的是增强在编辑Bash脚本时的用户体验。 `bash.acp` 文件是EditPlus的语法规则配置文件,...

    .cbash:具有vim和纯别名的bash配置

    .cbash 具有vim和纯净别名的bash配置 别名是指可以使用不同名称访问相同存储位置的情况。 例如: 之前: cd /home/user 创建别名: alias home='cd /home/user' 之后: home 平台类 macOS和Linux 安装 运行curl...

    .bash_profile和.bashrc的什么区别

    ".bash_profile和.bashrc的区别" .bash_profile和.bashrc是两个非常重要的配置文件,在Linux系统中扮演着非常关键的角色。这两个文件都是 Bash shell 的配置文件,但是它们之间存在着很大的区别。 首先,让我们...

    Bash补丁.rpm redhat v5.0&6.0

    RedHat5 X86:bash-3.2-33.el5_11.4.i386.rpm RedHat5 X86_64:bash-3.2-33.el5_11.4.x86_64.rpm bash-debuginfo-3.2-33.el5_11.4.x86_64.rpm RedHat6 X86:bash-4.1.2-15.el6_5.2.i686.rpm RedHat6 X86_64:bash-4.1.2...

    让bash下git命令自动完成的文件

    下载本附件,放到你的用户主目录,在你的.bash_profile或者.bashrc,或者.profile里加入: if [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bash fi 然后source一下或者重新登录,你的git就支持自动...

    git-completion.bash

    git是一种版本管理,强大之处毋庸置疑,但mac用户在配置好git环境后,发现我们无法使用table按键来进行补全,我猜你们是缺少这个文件

    bash.bash_logout777

    bash.bash_logout888

    bash 漏洞 linux

    redhat 5和6的bash漏洞补丁 bash-3.2-33.el5_11.4.i386.rpm bash-3.2-33.el5_11.4.x86_64.rpm bash-4.1.2-15.el6_5.2.i686.rpm bash-4.1.2-15.el6_5.2.x86_64.rpm

Global site tag (gtag.js) - Google Analytics