Bash初识

66 篇文章 1 订阅
29 篇文章 0 订阅

Bash初识
1.简介:
一.什么是shell?
用过计算机的人知道,我只要点点鼠标计算机就能按照我们的要求来进行相应的操作,那么,你有没有想过计算机为什么能够识别我们的操作呢?俗话说,人有人语,机有机语,人说的话机器怎么会懂呢?不懂改咋办?找翻译啊!对了,shell就是充当人与计算机之间的翻译官。

因为在Linux中图形界面不是很强,一般都只是直接通过命令窗口来进行系统控制的,所以shell就显得特别重要。你也可以简单的将shell理解为命令行,与之相关的还有shell脚本,就是shell能识别的一连串命令行。说了那么多,来看个官方定义:

Unix shell:一种壳层与命令行界面,是Unix操作系统下传统的用户和计算机的交互界面。普通意义上的shell就是可以接受用户输入命令的程序。它之所以被称作shell是因为它隐藏了操作系统低层的细节。Unix操作系统下的shell既是用户交互的界面,也是控制系统的脚本语言。

二、什么是bash?
bash是shell的一种,在早年的UNIX年代,发展者众多,所以就有许多不同的版本,例如Bourne shell(sh),这也是必然的,每种shell都有其应用的需求,很难说孰好孰坏。而在Linux中默认的shell就是Bourne-Again shell(简称bash),所以学习linux就必须要掌握bash的用法。另外一个是伯克利分校比尔▪乔伊写的C Shell(csh),因为类似C语言,故此得名。而由这两种又发展出很多其它的版本,不过根基都在这里。

三、总结
shell是一种语言名称, 充当人与计算机之间沟通的桥梁。具体的语法则遵循bash或csh的规定. 而具体的bash又有很多的语法,就像是一门编程语言.

2.Bash shell的作用:
使用shell实现对Linux系统的大部分管理,例如:

文件管理
权限管理
用户管理
磁盘管理
网络管理
软件管理
应用管理
…等等管理

3.如何使用Bash shell
执行方式:
#一.输入命令方式 ===> 效率低 ===>适合少量工作
eg:获取当前时间:
[root@localhost ~]# date
Wed Mar 16 22:43:13 CST 2022
创建用户:
[root@localhost ~]# useradd lw

#二.shell script(脚本) ===> 效率高 ===>适合复杂的工作
 eg:创建100个用户:
for n in `seq 100`;do
        useradd lw && \
        echo "用户 lw 已创建成功"
done

shell提示符

‘$’=普通用户
‘#’=root用户(超级管理员)

#查看当前用户
[root@localhost ~]# whoami
root

#查看当前命令提示符
[root@lw ~]# echo $PS1
[\u@\h \W]$
‘root:当前系统用户 lw:当前系统主机名 ~:当前所在位置’
PS1的常用参数以及含义

\d :代表日期,格式为weekday month date,例如:“Mon Aug 1”

\H :完整的主机名称

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

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

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

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

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

\v :BASH的版本信息

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

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

# :下达的第几个命令

$ :提示字符,如果是root用户,提示符为 # ,普通用户则为 $
  
  
#颜色
30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色
{1

基础语法

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

[root@lw ~]# ls //命令
[root@lw ~]# ls -l //命令+选项
[root@lw ~]# ls -l /home/ //命令+选项+参数
#命令:整条shell命令的主体
#选项:用于调节命令的具体功能
#以’-‘引导段个事选项(单个字符),例如”-a“
#以’–'引导长格式选项(多个字符),例如”–all“
#多个短格式选项可以卸载一起,只用一个”-“引导,例如”-la“
#参数:命令操作与偶的对象,如文件、目名等
#命令必须开头,选项和参数位置可以发生变化
命令快捷键

Ctrl + a #光标跳转至正在输入的命令行的首部
Ctrl + e #光标跳转至正在输入的命令行的尾部
Ctrl + w #按照空格来删除bash内容
Ctrl + c #终止前台运行的程序
Ctrl + d #在shell中,ctrl-d表示退出当前shell。(logout、exit)
Ctrl + z #将任务暂停,挂至后台
Ctrl + l #清屏,和clear命令等效。
Ctrl + k #删除从光标到行末的所有字符
Ctrl + u #删除从光标到行首的所有字符
Ctrl + r #搜索历史命令, 利用关键字
Ctrl + s #锁屏
Ctrl + q #解锁
Ctrl + 左右 #按照单词快速跳转光标(Xshell提供的)
ESC + . #获取最后的指令
#在命令行前加面加 “#” 则该命令不会被执行
历史命令

在linux系统使用的时候,我们往往进行很多命令的输入,有时需要重复输入历史命令

-w:保存命令历史到文件 write
-c:清空命令历史记录,不会清空文件 clear
-d:删除命令历史的第N行 delete
#查看历史记录
[root@lw ~]# history

#清空历史记录
[root@lw ~]# history -c

#指定一条历史记录删除
[root@lw ~]# history -d 110

#保存历史命令
[root@lw ~]# history -w

#执行上一条命令
[root@lw ~]# !!

#执行上一条ls相关命令
[root@lw ~]# !ls
ls /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth0

#执行历史命令中的第74条命令
[root@lw ~]# !74

命令的别名

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

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

取消语法: unalias 别名

获取命令帮助

#获取ls命令的帮助
[root@db04 ~]# ls --help
用法:ls [选项]… [文件]…

#ls常见选项
-a //查看目录下的所有文件,包括隐藏文件
-l //以长格式的方式显示文件的详细内容
-h //以人性化的方式显示内容,配合-l使用
-d //只列出目录名,不列出目录以下的内容
-t //按修改时间进行排序
-i //显示文件的inode(该文件在该分区的一个编号)
-r //倒叙

[root@db04 ~]# man ls
命令执行的流程

判断命令是否通过绝对路径执行
判断命令是否存在别名
判断用户输入的是内部命令还是外部命令
内部命令直接执行,外部命令检测是否存在缓存
检测PATH路径,有执行,无报错
内部命令:shell程序自带的命令

外部命令:在系统PATH变量的某个路径下的可执行程序

使用type命令检测用户输入的命令属于内部命令还是外部命令。
#cd命令属于shell内部命令
[root@db04 ~]# type -a cd
cd is a shell builtin
cd is /usr/bin/cd

#ping属于外部命令, 同时会打印当前命令路径
[root@db04 ~]# type -a  ping
ping is /bin/ping

修改命令提示符的步骤:

编辑文件: vi .bashrc
进入编辑模式: 按i键进入insert编辑模式
保存文件:按住Shift+ZZ
立即生效: source.bashrc

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值