初识Linux Bash Shell

简介: 一、SHEEL技术​ 1.shell特性​ 2.shell变量​ 3.shell条件测试​ 4.shell数值运算​ 5.流程控制、循环​ if​ case​ for​ until​ while​ break​ continue​ exit​ shift​ array​ funiction用户级别的几个重要文件​ ~/.bash_profile 用户环境变量配置文件​ ~/.bashrc 用户登录系统后执行的命令​ ~/.bash_logout 用户退出系统后执行的命令​ ~/.bash_history 用户历史

一、SHEEL技术

1.shell特性


2.shell变量


3.shell条件测试


4.shell数值运算


5.流程控制、循环


if


case


for


until


while


break


continue


exit


shift


array


funiction


用户级别的几个重要文件


~/.bash_profile 用户环境变量配置文件


~/.bashrc 用户登录系统后执行的命令


~/.bash_logout 用户退出系统后执行的命令


~/.bash_history 用户历史执行命令的保存位置


系统级别的几个重要文件


/etc/profile 系统全局环境变量


/etc/bashrc 系统启动后执行的命令列表


二、shell命令解释器

shell命令 cp ls date


Linux支持的shell


cat /etc/shells

image.png


chsh -l

image.png


三、GNU/bash shell特点

1.命令和文件自动补齐

2.命令历史记忆功能

上下键、!number(可以使用history命令查看历史命令序号然后使用!num进行执行)、!string(可以根据历史命令的前几个字符例如!vim)!$(上条命令的最后一个参数)、!!(上条命令)、ctrl+R (根据历史命令包含的某些关键字进行搜索)


3.别名功能

alias命令可以看系统中的别名命令


alias命令格式:alias ls=‘ls -l’


取消别名功能:unalias ls


设置永久别名则在~/.bashrc文件中将命令写入即可


4.快捷键

^R ^D ^A ^E ^L ^U ^K ^S ^Q


5.前后台作业控制

&(后台执行)、 nohup(后台执行,默认将输出输入到当前目录中的nohup.out文件中)、^C 、 ^Z、bg、fg(将命令从后台恢复到前台) kill %3、screen


screen 命令如何使用


screen -S install_lnpt


将会进入新的终端,进行其他任务操作,即使当前终端断开了连接,再次连接服务器后使用


screen -list即可看到对应的进程任务


screen -r 20105即可切回之前的操作模式,如果之前的终端没有断开则不会回到终端操作模式


6.输入输出重定向

0(键盘输入),1(屏幕输出),2(错误输出) >(重定向输出) >>(追加) 2> (错误重定向) 2>>(错误重定向追加) 2>&1(将错误输出重定向到标准输出中也就是将错误内容和正确内容同时输出到一个文件中) &>(前面的输出都输出到同一个文件中)


7.管道 | tee

tee管道表示将某一部分截留,比如将df命令先保存到某个文件中,然后在grep过滤出想要的内容,tee -a表示追加到某个文件


df | tee /root/aa.txt | grep /$


image.png


8.命令排序

;不具备逻辑判断,之前完第一个命令则执行第二个命令,例如ls;cd /dev


&& || 具备逻辑判断,&&前面的命令必须成功才会执行后面的命令,例如./configure && make && make install,||这个表示第一个命令如果失败第二个命令才会执行,例如ls /data/111 || mkdir -p /data/111


9.通配符(元字符)


* 匹配任意多个字符 ls in* rm -rf * rm -rf .pdf find / -iname " *-eth0"


? 匹配任意一个字符 touch love loove live l7ve; || l?ve


[] 匹配括号中任意一个字符[abc] [a-z] [0-9] [a-zA-Z0-9] [^a-zA-Z0-9] ,例如ls l[a-z]ove


() 在子shell中执行(cd /boot;ls)(umask 077;touch file10000)


{} 集合 例如批量创建十个文件touch file{1…9}


mkdir /home/{111,222} mkdir -pv /home/{333/{aaa,bbb},444}


此命令会在home下面创建111,222两个目录,然后在创建333,444两个目录并且在333目录中创建aaa,bbb子目录


cp -r /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.old


使用集合将命令缩短


cp -r /etc/sysconfig/network-scripys/{ifcfg-eth0,ifcfg-eth0.old} 因为两个文件都在同一个路径下所有可以写一个路径即可


cp -r /etc/sysconfig/network-scripts/ifcfg-eth0{,.old}因为两个文件前部分名字一致所以可以简写



目录
相关文章
|
2月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
1月前
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
65 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
|
23天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
2月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
2月前
|
Unix Shell Windows
随笔:What is Bash? What is shell?
随笔:What is Bash? What is shell?
|
2月前
|
Oracle Java 关系型数据库
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
如果遇到"exec format error"问题,文章建议先检查Linux操作系统是32位还是64位,并确保安装了与系统匹配的JDK版本。如果系统是64位的,但出现了错误,可能是因为下载了错误的JDK版本。文章提供了一个链接,指向Oracle官网上的JDK 17 Linux版本下载页面,并附有截图说明。
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
|
2月前
|
人工智能 监控 Shell
常用的 55 个 Linux Shell 脚本(包括基础案例、文件操作、实用工具、图形化、sed、gawk)
这篇文章提供了55个常用的Linux Shell脚本实例,涵盖基础案例、文件操作、实用工具、图形化界面及sed、gawk的使用。
488 2
|
1月前
|
存储 Shell Linux
【Linux】shell基础,shell脚本
Shell脚本是Linux系统管理和自动化任务的重要工具,掌握其基础及进阶用法能显著提升工作效率。从简单的命令序列到复杂的逻辑控制和功能封装,Shell脚本展现了强大的灵活性和实用性。不断实践和探索,将使您更加熟练地运用Shell脚本解决各种实际问题
27 0
|
2月前
|
Shell Linux 开发工具
linux shell 脚本调试技巧
【9月更文挑战第3天】在Linux中调试shell脚本可采用多种技巧:使用`-x`选项显示每行命令及变量扩展情况;通过`read`或`trap`设置断点;利用`echo`检查变量值,`set`显示所有变量;检查退出状态码 `$?` 进行错误处理;使用`bashdb`等调试工具实现更复杂调试功能。
|
3月前
|
Unix Shell Linux
在Linux中,什么是 BASH?
在Linux中,什么是 BASH?