linux中bash用法,Linux bash初识,特性,用法

一、Bash初识

Bash Shell介绍

Bash Shell是一个命令解释器,它在操作系统的最外层,负责用户程序与内核进行交互操作的一种接口,把用户输入的命令翻译给操作系统,并将处理后的结果输出至屏幕。

Bash Shell的作用

使用shell实现对linux系统的大部分管理,例如:date

文件管理

用户管理

权限管理

磁盘管理

网络管理

软件管理

应用管理

​ ...

Bash 两种方式

1.输入命令方式:

​ 效率低,适合少量工作

2. shell script (脚本方式):

​ 效率高,适合大量工作

命令方式:

[root@CentOS7 ~]# date #获取当前时间

2019年 06月 14日 星期五 15:47 CST

[root@centos7 ~]# useradd gjy #增加用户名

bash -version命令:

(GNU GPL标示,如下图)

159200.htm

用脚本方式:

例如:如果要创建100个用户,使用shell script

for n in `seq100`;do

useradd oldboy$n && \

echo "用户 oldboy$n 已创建成功"

done

[root@centos7 ~]# bash user.sh

表示100个0ldboy用户已创建成功

命令提示符

例如:[root@centos7 ~]#

[root @ centos7 ~ ]# #超级管理员

[oldboy @ centos7 ~ ]# #普通用户

#当前登录的用户 主机名 当前登录的位置

#后是注释,不执行

home/oldboy:普通用户家目录

/root:root用户的家目录

查看当前命令解释符

[root@centos7 ~]# echo $ps1

[\u@\h \w]\$

echo:在bash shell中调用变量 $

查看当前用户(whoamai:查看当前登录的用户)

[root@centos7 ~]# whoamai

root

root:超级系统用户名,也是当前系统的用户

PS1的常用参数以及含义:(了解)

\d: 代表日期,date

\H: 完整的主机名称

\h: 仅取主机名中的第一个名字

\t: 显示时间为24小时格式 如:HH:MM:SS

\T: 显示时间为12小时格式

\A: 显示时间为24小时格式:HH:MM

\u: 当前用户的账号名称

\v: BASH的版本信息

\w: 完整的工作目录名称

\W: 利用bashname取得工作目录名称,只显示最后一个目录名

\#: 下达的第几个命令

\$: 提示字符,如果是root用户,提示符为#,普通用户则为$

颜色:

30 40黑色

31 41红色

......

固定改变颜色的格式:(了解)

PS1='\[\e[32;40m\] \[[\u@\h \w \t]\$ \[\e[0m\]'

PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ "

PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\[\e[35;40m\]\h\[\e[0m\] \[\e[36;40m\]\w\[\e[0m\]]\\$ "

二、Shell的基本语法

命令 选项 参数

command [-options] [arguments] 中括号可有可无

[root@centos7 ~]# ls //命令

[root@centos7 ~]# ls -l //命令+选项

[root@centos7 ~]# ls -l /home/ //命令+选项+参数

命令:整条shell命令的主体

选项:用于调节命令的具体功能

参数:如文件、目录等

命令必须开头,选项和参数位置可以发生变化

echo:所见即所得,输出echo后面参数的内容

-e :识别换行符等特殊符号

\ :转义符

$ :调用变量

echo 'gjy'

echo -e 'gjy\n123'

三、Shell的基本特性

1.命令补全 tab

当使用windows查找一个目录层级特别多的文件时,打开的效率会非常的慢,linux查找这样文件时,可以用tab键快速补全。

命令补全

参数补全:yum install -y bash-completion

选项补全:主要是补全路径

备注:tab键可以实行命令补全,路径补全,在实际生产中tab补全用的最多,可以减少执行命令以及路径出错率,还能提高输入效率。

例如:、

[root@centos7 ~]# ifc

#按下tab键会自动补全,若按一下tab没反应,就需要按两下tab键,列出所有if开头的命令

ifcfg ifcconfig

[root@centos7 ~]# ifconfig

[root@centos7 ~]# ls /etc/sysconfig/network-scripts/ifcfg-eth0

如果无法补全选项,那么需要一个安装一个扩展包

[root@centos7 ~]# yum install -y bash-completion

-y是确定执行,不加'-y',系统会发送指令给你再确定下

2. Linux的快捷键

ctrl + a:将光标跳转到行首

ctrl + e:将光标跳转到行末

Ctrl + w:以空格为单位,将当前光标位置之前的内容删除

ctrl + u:将当前光标位置之前的内容全部删除

ctrl + l:清屏

ctrl + c:终止当前命令

ctrl + d:退出,断开当前连接(exit,logout)

ctrl + z:挂起,放后台执行

ctrl + r:搜索历史命令

ctrl + s:锁屏

ctrl + q:解锁

ctrl +左右:按照单词跳转光标

esc + . :瞬间显示出上一条命令,最后的内容,以空格分隔

3.历史命令history

历史命令的作用:追溯之前的发生情况,记录历史命令,非常重要,也就是日志审计

-w : 保存历史命令到文件中write

-d : 删除历史命令中的 第n行 delete(删除)

-c : 清空命令历史记录,不会清空文件 clear(清除)

历史命令保存到文件,当前用户的家目录下有一个隐藏文件:.bash_history

查看历史记录:

[root@gong ~]# history

清空历史记录

[root@gong ~]# history -c

指定一条历史记录删除

[root@gong ~]# history -d 23

保存历史命令

[root@gong ~]# history -w

执行上一条命令

[root@gong ~]# !!

执行上一条ls相关命令

[root@gong ~]# !ls

执行历史命令中的第23条命令

[root@gong ~]# !23

4.命令的别名alias

命令别名就是把用户经常使用的复杂命令简单化,创建出属于自己的命令别名

创建语法:alias 别名=“命令”

取消语法:unlias 别名

定义临时别名,查看网络是否可以通,ping 百度,只对当前shell 生效

[root@gong ~]# alias tong="ping baidu.com" #需用双引号,单引号输出的结果是引号内的字符串

PING baidu.com (123.125.114.144) 56(84) bytes of data.

64 bytes from 123.125.114.144: icmp_seq=1 ttl=128 time=44.2 ms

64 bytes from 123.125.114.144: icmp_seq=2 ttl=128 time=47.5 ms

64 bytes from 123.125.114.144: icmp_seq=3 ttl=128 time=46.3 ms

......

查看所有定义的别名

[root@gong ~]# alias

alias cp='cp -i'

alias l.='ls -d .* --color=auto'

alias ll='ls -l --color=auto'

alias ls='ls --color=auto'

alias mv='mv -i'

alias rm='rm -i'

alias tong='ping baidu.com'

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

取消别名

[root@gong ~]# unalias oldboy

[root@gong ~]# oldboy

-bash: tong: command not found

永久生效

[root@gong ~]# vim /etc/bashrc

alias oldboy="ping baidu.com"

5.获取命令帮助help

获取ls命令的帮助

[root@gong ~]# ls --help

用法:ls[选项]...[文件]...

ls常见选项

-a #查看目录下的所有文件,包括隐藏文件

-l #以长格式的方式显示文件的详细内容

-h #以人性化的方式显示内容,配合 -l 使用

-d #只列出目录名,不列出目录以下的内容

-t #按修改时间进行排序

-i #显示文件的inode(该文件在该分区的一个编号)

-r #倒叙

[root@gong ~]# man ls

0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值