Linux bash shell基础

什么是bash shell

bash shell就是一个命令解释器,它是用户的翻译官,它可以把用户输入的命令翻译给我们的Linux内核,并将其处理后的结果输出至屏幕。

bash shell 能做什么

它可以实现对Linux系统的大部分管理:例如:

  1. 文件管理
  2. 权限管理
  3. 用户管理
  4. 磁盘管理
  5. 网络管理
  6. 软件管理
    …等等

我们如何使用bash shell

使用bash shell 的方法如下:

  1. 输入命令:效率低,适合少量的工作;;
  2. 使用Shell Script:效率高,适合重复性的工作
    例如:要创建100个用户的创建

bash shell的登陆提示符

[root@oldboy ~]#

上图中的root表示当前用户
oldboy当前表示主机名称,
~表示当前用户的家目录,该位置表示当前所在的用户
#所在的位置表示用户权限,这里有两种,分别是 $ 和#,$ 表示普通用户,#表示超级管理员用户

bash shell 的基础语法

命令 选项 参数
[command] [-options] [arguments]

  1. 命令:shell命令的主体
  2. 选项:调节命令输出展示的结果
    以-引导段格式选项,例如:-r;
    以–引导唱歌时选项,例如:–help;
    多个短格式选项可以卸载一起,例如:-rf
  3. 参数:命令操作的对象,如文件、目录等。
    命令必须开头,选项和参数位置可以发生 变化,命令、选项、参数之间必须有空格。

bash shell基本特性

  1. 命令补全:使用Linux查找一个目录层级很多的时候,可以使用tab键补齐目录,也可以用tab键补全命令,在安装特殊的软件包以后还可以进行参数补全。
    如果按一次tab键没有补全,那么只有两种可能,要么是自己操作错误,要么就是有同名的文件,再按一下tab可以进行甄别。
  2. 快捷键:bash shell中,系统提供了以下的快捷键来帮助用户更高效的输入命令:
    (1) ctrl+a: 将光标移动到行首
    (2) ctrl+e: 将光标移动到行尾
    (3) ctrl+l: 清屏
    (4) ctrl+k: 删除光标后的所有内容
    (5) ctrl+u: 删除光标前的所有内容
    (6) ctrl+r: 搜索历史执行过的命令(关键字搜索)
    (7) ctrl+c: 终止当前正在bash前台运行的进程
    (8) ctrl+d: 退出当前用户的登陆
    (9) ctrl+w: 删除光标前的内容,按照单词逐个删除
    等等…
  3. 别名:(alias unalias)
    它可以将我们很长的命令,做成一个很短的命令,便于我们快速调用。
    3.1 起别名
    alias 别名名= ‘要起别名的命令’
    例:alias aa='ls /'
    3.2 删除别名
    unalias 别名名
    例:unalias aa
    3.3 查看别名库
    alias
    3.4 以上的修改别名的方法是临时的,只在当前会话有效,如果要永久设置需要输入如下命令:
[root@oldboy ~]# vim .bashrc

之后会进入如下文件:
在这里插入图片描述
之后将别名写到
Source global definitions 上面,例如上图中的oldboy就是我所新建的永久别名。设置完成后保存退出即可
其本质相当于把修改别名的操作放置到bash的启动文件中,这样就可以在bash shell启动时,这项操作便会被系统自动启动。所以本质上把这条命令放置到任何一个bash shell的启动文件中都是可以的。
5. 历史记录(history)
使用history命令可以查看历史命令,执行结果如下:

    1  ip addr
    2  ip addr 10.0.0.110 255.255.255.0
    3  ip addr help
    4  ip addr 10.0.0.101
    5  ip addr 
    6  yum install ifconfig
    7  yum whatprovides ifconfig
    8  ifconfig
    9  yum install net-tools
   10  ifconfig
   11  ifconfig add 10.0.0.101
   12  ifconfig add 10.0.0.101 255.255.255.0
   13  ip add 10.0.0.100
   14  ifconfig
   15  ifconfig ens32 10.0.0.100
   16  ifconfig 
   17  service network restart
   18  ifconfig
   19  ifconfig ens32 10.0.0.200
   20  service network stop
   21  selinux 0
   22  pwd
   23  ls
   24  ls -a
   25  ls -al
   26  ls --help
   27  ls -h
   28  ls /etc/passwd
   29  cd /etc/passwd
   30  cd /etc/sysconfig/network-scripts
   31  ls
   32  vim ifcfg-ens32 
   33  yum install vim
   34  yum install net-tools
   35  ifconfig
   36  ls -l /etc/sysconfig/network-scripts/ifcfg-ens32 
   37  vim .bashrc 
   38  oldboy
   39  ls -l /
   40  vim .bashrc 
   41  alias 
   42  vim ~./.bashrc
   43  vim .bashrc
   44  ls
   45  ifconfig
   46  ping 0.0.0.0
   47  ping www.baidu.com
   48  alias aa = 'ls /' 
   49  alias aa='ls /' 
   50  alias
   51  unalias aa
   52  alias
   53  history
   

如果想要执行其中的某一条命令,在下面输入!加上所要执行的命令的行号即可。
例如:!50
输出结果为:

alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias net='cat /etc/sysconfig/network-scripts/ifcfg-ens32'
alias oldboy='ls -l /'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

可以使用!!来快速执行上一条执行过的命令
esc+.可以快速调取上一条命令的参数

  1. bash帮助
    有这样两种方式获得帮助信息:
    6.1 --help
    例如:ls --help
    6.2 man
    例如:man ls
  2. 命令大全的网站(中文)
    http://man.linuxde.net/
    http://linux.51yip.com/
    我们可以通过以上两个网站来对命令的功能与用法进行查询。
发布了39 篇原创文章 · 获赞 4 · 访问量 1213

猜你喜欢

转载自blog.csdn.net/zwj1834787/article/details/104608092