一、Bash初识

Bash Shell介绍

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

Bash Shell的作用

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

  1. 文件管理

  2. 用户管理

  3. 权限管理

  4. 磁盘管理

  5. 网络管理

  6. 软件管理

  7. 应用管理

​ ...

Bash 两种方式

1.输入命令方式:

​ 效率低,适合少量工作

2. shell script (脚本方式):

​ 效率高,适合大量工作

命令方式:
[root@centos7 ~]# date #获取当前时间
2019年 06月 14日 星期五 15:47 CST [root@centos7 ~]# useradd gjy #增加用户名

bash -version命令:

(GNU GPL标示,如下图)

用脚本方式:
例如:如果要创建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键快速补全。

  1. 命令补全

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

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

备注: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

查看Linux命令的网站:

http://linux.51yip.com/

bash初识,特性,用法/网站的更多相关文章

  1. Linux系统入门-Bash初识

    目录 Linux系统入门-Bash初识 Bash Shell介绍 Bash Shell的作用 Bash的两种使用方式 命令提示符 shell的基础语法 shell的基本特性 命令补全 linux快捷键 ...

  2. bash及其特性(笔记)

    bash及其特性:shell: 外壳GUI:Gnome, KDE, XfceCLI: sh, csh, ksh, bash, tcsh, zsh root, student程序:进程 进程:在每个进程 ...

  3. Shell中bash的特性小结

    Shell: 用户与操作系统之间完成交互式操作的一个接口程序,为用户提供简化了的操作:上世纪的70年代中期在贝尔实验室,Bourne位Unix开发了一个shell程序Bourne Shell,简称sh ...

  4. linux bash基本特性

    一.bash 基础特性 (1)命令历史的功能 history: 环境变量 HISTSIZE:命令历史记录的条数 HISTFILE: ~/.bash_history 每个用户都有自己独立的命令历史文件 ...

  5. 2-1 bash基本特性

    bash基本特性 bash基本介绍 bash是shell的一种,shell是计算机与用户交互的主要接口,狭义上的shell指的是CLI(command line interface命令行接口),用户输 ...

  6. Bash的特性

    Bash的特性 1. tab补全 #命令补全 [root@clf ~]# user  #命令补全useradd     userdel     usermod     usernetctl  user ...

  7. linux文件系统及bash基础特性

    linux文件系统 一.根文件系统 linux被识别的第一个被称为根之间关联的文件系统叫做根文件系统(rootfs),其他分区要想被读到,需要挂载到根目录的某个挂载点(根的子目录)上.根文件系统至关重 ...

  8. 【Linux相识相知】bash的特性

    命令历史 shell进程会记录用户提交执行过的命令 可以是用history查看: [root@localhost dev]# history ss -tnl ifconfig vi /etc/sysc ...

  9. Bash 基础特性

    命令别名  alias 显示当前shell中定义的所有别名  alias 别名='原始命令'  unalias 别名 取消定义的别名在命令前加\使用命令本身,而不是别名(或者使用绝对路径执行命令使用命 ...

随机推荐

  1. JSP | 基础 | 中文字符的传递

    设置传递格式: request.setCharacterEncoding("utf-8"); 中文字符解码: import java.net.URLDecoder; String ...

  2. C# 面向对象之封装

    封装是指将类的内部数据隐藏起来不让对象实例直接对其操作,C#中提供了属性机制来对类内部的状态进行操作. 在C#中封装可以通过public.private.protected和internal等关键字来 ...

  3. queue模块

    queue队列 :使用import queue,用法与进程Queue一样 queue is especially useful in threaded programming when informa ...

  4. Spark Mllib里数据集如何取前M行(图文详解)

    不多说,直接上干货! 见具体, Hadoop+Spark大数据巨量分析与机器学习整合开发实战的第13章 使用决策树二元分类算法来预测分类StumbleUpon数据集 见具体 Hadoop+Spark大 ...

  5. Oracle 恢复数据后,数据库中中文变成问号解决方法

    1.右击---我的电脑---环境变量 2.新增环境变量 变量名:LANG=zh_CN.GBK NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK 3.重启PLSQL或 ...

  6. C# 连接 Oracle,读取Blob字段数据,存到文件中去,包括pdf等等

    代码如下,记得引入Oracle的dll using System; using System.Collections.Generic; using System.ComponentModel; usi ...

  7. CentOS远程监控

    近日,因工作需要,学习了CentOS远程监控的水平有限,多指教. 远程访问CentOS,包括三种方式ssh,telnet,vnc. 本例涉及的是以vnc远程访问CentOS.指令在root下操作.注意 ...

  8. 登录界面点击登录后如何延迟提示成功的div的显示时间并跳转

    需求: 在登录页面点击sign in跳转到下个页面之前,我需要显示成功的窗口2秒然后自动关闭 那我们来研究下setTimeout: 关于这个setTimeout首先下面的代码实现的是两秒之后再显示Su ...

  9. Flask应用运行流程

    当我们运行项目后,Flask内部都经历了什么 1.app.run()启动项目,ctrl点进源码 app.py: 1)执行了run_simple() 2)注意第三个参数,这里是Flask实例化的对象,在 ...

  10. (WWWWWWWWWW)codevs 3305 水果姐逛水果街Ⅱ

    写这么长了不A有点舍不得.. 想A又调不出来.. 于是乎就存一下.. 屠龙宝刀点击就送 #include <cstdio> #include <vector> #define ...