一、Bash Shell 的简单介绍

1.什么是bash shell?

是一个命令解释器 它在操作系统的最外面

负责用户与内核进行交互的一种接口 将用户输入的命令翻译给操作系统,并将处理后的结果输出到屏幕

2.bash shell作用:

实现对linux系统进行管理,包含:

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

3.Bash shell的执行方式

命令方式 效率低 适合少量的工作

脚本方式 效率高 适合复杂的工作

4.远程连接之后的命令行:

Last login: Wed Jun 10 19:50:59 2020 from 10.0.0.1
[root@jindada ~]#

二、命令提示符的介绍

1.[root@jindada ~]#      #超级管理员命令行提示符

[ ]            #没有什么特殊的含义 就是起到一个括号的作用 把里面的内容看做是一个整体

root         #表示当前登录的用户 我是谁 root本身又是超级管理员 拥有最大的权限

@            #分隔符

jindada     #主机名 系统主机名 可以修改,但是是唯一的 所有用户的主机名都是他

~             #表示当前的所在位置 我在哪里 目录 ~ 本身表示当前用户的家目录 /root /home/xx

#             #命令行结尾提示符 # 表示是超级管理员的命令行提示符           $ 是普通用户命令行提示符

2.[user@jindada ~]$             #普通用户命令行提示符

注:Linux命令行提示符都是有PS1的变量所控制的

3.#给命令行加上颜色

[root@jindada ~]# echo 'PS1="\[\e[37;40m\][\[\e[32;1m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\[\e[32;1m\]\\$ \[\e[0m\]"' >>/etc/profile
[root@jindada ~]# source /etc/profile

三、Linux命令的组成结构

1.命令在命令行上面的操作语法:

命令     [选项]     [参数/路径]

command  options    arguments

注:中括号中的内容是可有可无的,不是必须要有的

命令     #每个命令都有自己的功能 你要干什么 你要针对谁做些什么 最主要的,是整条命令的主体


选项     #表示命令的其他的扩展功能 单独指定的命令的其他功能 实现命令的具体功能


参数     #文件 目录 你要对谁操作 文件或者目录都是用路径来表示的


示例:

[root@jindada ~]# ls      #命令 没有指定参数时,默认针对是当前所在目录
anaconda-ks.cfg

[root@jindada ~]# ls -l     #命令+选项
total 4
-rw-------. 1 root root 1497 Jun 9 20:00 anaconda-ks.cfg

[root@jindada ~]# ls -l /root    #命令+选项+参数
total 4
-rw-------. 1 root root 1497 Jun 9 20:00 anaconda-ks.cfg

[root@jindada ~]# ls /root     #命令+参数
anaconda-ks.cfg

#选项:

以短横岗 “-” 短格式选项 单个字符 例如: -l

以长横岗 “--” 长格式选项 多个一组字符 例如: --all 这组字符串是一个整体 有些特殊含义

多个短横岗 指定多个功能 -a -l -i ==== -ali 使用一个短横岗

注意:

1. 中括号表示可选,命令的选项和参数是可选的,不是必须要有的

2. 选项表示的是命令的不同功能

3. 参数是命令要操作的对象,这个对象可以是文件或者目录

4. 命令、选项、参数两两之间至少要有一个空格,一个完整的命令或者选项和参数不能有空格的

5. 命令必须要放在开头,选项和参数在有些命令的时候,位置是可以发生变化的


2.执行命令的时候报错

[root@jindada ~]# l s
-bash: l: command not found #命令找不到

#命令写错了,根本没有这个命令

#系统中没有安装这个命令,需要安装才能使用

[root@jindada ~]# ls /roo
ls: cannot access /roo: No such file or directory   #没有这个文件或者目录

#文件或者目录名写错了

#路径写错了

#相信电脑,电脑是不会出错的,如果电脑的出现结果跟你想象的不一样,那么一定是你错了,不要那么固执认为自己就是对的

三、bash shell 特性

1. Tab键补全

命令补全

[root@jindada ~]# user
useradd userdel usermod usernetctl users

[root@jindada ~]# s
Display all 220 possibilities? (y or n) #有很多命令,一页显示不全

选项补全 #需要安装一个特定软件

参数补全 路径补全

[root@jindada ~]# ls /r
root/run/

2.命令行常用快捷键

命令行常用快捷键 特殊含义
Ctrl键 + c #取消当前的操作
Ctrl键 + d #退出当前用户的登录
Ctrl键 + a #把光标从当前位置移动到命令行的行首
Ctrl键 + e #把光标从当前位置移动到命令行的行尾
Ctrl键 + u #把光标从当前位置到行首的内容进行剪切或者删除
Ctrl键 + k #把光标从当前位置到行尾的内容进行剪切或者删除
Ctrl键 + y #粘贴你所剪切的内容
delete键 #从前往后删除一个字符
Ctrl键 + w #删除当前位置至上一个空格的字符 删除一组字符串
Ctrl键 + 左方向键 #向左移动一组单词 以空格或者特殊字符作为分隔符
Ctrl键 + 右方向键 #向右移动一组单词
Ctrl键 + l #清屏 clear 清除当前的窗口内容
Ctrl键 + r #查找历史命令 搜索最近的一次命令
Ctrl键 + s #锁屏 锁屏之后,也是可以继续输入命令和操作命令,只是你看不到
Ctrl键 + q #解锁
Esc键 + . #获取上一条命令最后的参数 或者最后面的内容 以空格分隔符
!! #执行上一条执行过的命令
!ls #执行最近一次以ls开头的命令

3. 历史记录

history #显示所有执行过的命令

!id #历史记录中某个命令的历史ID 执行这个id所对应的命令

选项:

-d ID    #删除指定的ID信息

-w    #将你当前shell窗口执行的命令保存到默认的文件 ~/.bash_history

-c    #清除所有命令的历史记录

4. 命令别名

#系统自带的别名

[root@jindada ~]# 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 rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

ll == ls -l

#如何设置别名

别名的名称不能跟系统中命令名称有冲突

[root@jindada ~]# alias network='ping -c1 baidu.com'

#检查别名

[root@sh-qls ~]# 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 network='ping -c1 baidu.com'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

#验证别名

[root@jindada ~]# network
PING baidu.com (39.156.69.79) 56(84) bytes of data.
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=1 ttl=128 time=31.2 ms

--- baidu.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 31.235/31.235/31.235/0.000 ms
[root@jindada ~]#

#取消别名

[root@jindada ~]# unalias network
[root@jindada ~]# network
-bash: network: command not found

四、常用获取命令帮助

获取命令  
man 获取指定命令的帮助
help 只能查看系统内置命令
命令 +‘--help' 获取命令选项的帮助
info  

六、互联网模式查找命令

1.https://man.linuxde.net/


2.https://liunx.web3.xin/


3.http://linux.51yip.com/

最新文章

  1. 对c++ public、protected、private关键字的理解
  2. Java 单测 回滚
  3. [未完成]关于SQL语句的总结
  4. php陷阱:字符串和数字比较
  5. MVVM Light 一个窗口承载两个视图
  6. 哈希表(hashtable)的javascript简单实现
  7. eclipse中删除多余的工作空间记录
  8. Net开源网络爬虫
  9. Virtualbox以及VWare在Win10下的不兼容
  10. dig请求和回应中的参数解释
  11. Linux虚拟机搭建本地yum源
  12. 进阶路上有你我-相互相持篇之ES6里箭头函数里的this指向问题
  13. Maven 下载和配置环境
  14. Maven的下载与安装(Windows版本)
  15. Java判断多个时间段是否重叠(重叠区间个数)
  16. [UE4]C 语言动态数组
  17. 【LOJ】#2046. 「CQOI2016」路由表
  18. Jenkins 插件升级时跳过 update site 的签名验证
  19. 洛谷P2236 HNOI2002 彩票 [暴搜]
  20. makefile之强制目标

热门文章

  1. [IDEA]Java:“程序包XXX不存在”问题的三种解决方案
  2. SSM获取SqlSessionFactory
  3. python中的运动控制函数
  4. Alibaba内部SpringCloud参考笔记,在GitHub一天就标星81.6k?
  5. Vulkan在Android使用Compute shader
  6. 浅谈 ArrayList 及其扩容机制
  7. Win10 搭建FTP环境,并使用Java实现上传,下载,删除
  8. day58:Linux:BashShell&linux文件管理&linux文件下载上传
  9. Git的使用--码云
  10. SpringBoot+RabbitMQ 方式收发消息