网站后缀名,怎么优化推广自己的网站,网页ip代理,tp3企业网站开发百度云一、shell家族shell#xff1a;是一个命令解释器#xff0c;也是一门编程语言用户执行的命令#xff0c;系统的kernel#xff08;内核#xff09;是无法理解的#xff0c;看不懂#xff01;shell的作用就是将用户执行的命令翻译成内核看的懂的语言#xff0c;来执行操作…一、shell家族shell是一个命令解释器也是一门编程语言用户执行的命令系统的kernel内核是无法理解的看不懂shell的作用就是将用户执行的命令翻译成内核看的懂的语言来执行操作系统分为俩层- 用户态应用程序就是用户态的- 内核态一编写的shell脚本就是利用shell这门编程语言写的专门实现自动化操作→解释性语言低级语言汇编语言高级语言编译型语言/编译型语言编译开发的源码文件之后需要进行编译为二进制文件才能使用1. 看不到源码2. 只需要编译一次即可执行执行效率要高解释开发的源码文件之后直接执行1. 看的见源码2. 通过解释器来执行一边解释一边执行既然是命令解释器那么是不是每一个linux操作系统都有shell呢这些操作系统的shell是什么[rootrhel9 ~]# echo $SHELL/bin/bash查看当前系统支持的shell[rootrhel9 ~]# cat /etc/shells/bin/sh/bin/bash/usr/bin/sh/usr/bin/bash所以操作系统上其实只有sh和bash现在的操作系统上仅仅只有一个shell 那就是bash shell因为你看到的sh其实是bash shell的快捷方式了[rootrhel9 ~]# ll /usr/bin/shlrwxrwxrwx. 1 root root 4 11月 24 2022 /usr/bin/sh - bash[rootrhel9 ~]# ll /usr/bin/bash-rwxr-xr-x. 1 root root 1388904 11月 24 2022 /usr/bin/bash二清空历史条目[rootrhel9 ~]# history -c[rootrhel9 ~]# echo .bash_history三在shell命令中的快捷键ctrlA 把光标移动到命令行开头ctrlE把光标移动到命令行结尾ctrlC 强制终止当前的命令ctrlL 清屏相当于 clear 命令ctrlU删除或剪切光标之前的命令ctrlK 删除或剪切光标之后的内容ctrlY粘贴 ctrlU 或 ctrlK 剪切的内容ctrlR 在历史命令中搜索ctrlD 退出当前终端ctrlZ 暂停并放入后台ctrlS 暂停屏幕输出ctrlQ 恢复屏幕输出二、通配符通过不同的符号来实现对文件名的过滤通配符和正则表达式有共同的符号但是他们的作用不一样如何区分答正则表达式的符号是匹配文本内容的通配符的符号是匹配文件名称的一*表示匹配所有[rootrhel9 ~]#ls /etc/*.conf/etc/appstream.conf /etc/ld.so.conf /etc/rsyncd.conf/etc/asound.conf /etc/libaudit.conf /etc/rsyslog.conf[rootrhel9 ~]#rm -rf /tmp/*二?表示匹配任何单个字符[rootrhel9 ~]# ls ????fil1 fil2 fil3 file三[abc] 表示匹配列表中的任意单个字符[rootrhel9 ~]# ls f[a-z][a-z][a-z]file[rootrhel9 ~]# ls f[a-z][a-z][0-9]fil1 fil2 fil3四[^123]表示不匹配列表中的任意单个字符[rootrhel9 ~]# ls fil[^123]File[:alpha:]匹配字母不区分大小写[:lower:]匹配小写字母[:upper:]匹配大写字母[:digit:]匹配数字[:space:]匹配空格[:alnum:]匹配任意字母或数字[:punct:]除空格和字母、数字以外的任何可打印字符[rootrhel9 ~]# ll fil[[:digit:]]-rw-r--r--. 1 root root 0 2月 1 09:58 fil1-rw-r--r--. 1 root root 0 2月 1 09:58 fil2-rw-r--r--. 1 root root 0 2月 1 09:58 fil3三、命令扩展符号一$(command) 和command引用命令的执行结果[rootrhel9 ~]# echo $(hostname)rhel9.example.com[rootrhel9 ~]# hostnamerhel9.example.com[rootrhel9 ~]# echo $(hostname) echo rhel9.example.com[rootrhel9 ~]# llwhich useradd-rwxr-xr-x. 1 root root 141144 7月 12 2023 /usr/sbin/useradd二{ }批量重复匹配括号的内容—》快速的创建文件#连续性范围使用..[rootrhel9 opt]# touch file{1..100}#不连续使用[rootrhel9 opt]# touch file{1,b,abc,456}四、变量变量一个可以变化的量组成变量名变量值变化的是值不变化的是名字变量占据的内存中的空间所以所有的变量其实都是临时生效的一旦机器重启内存数据丢失变量失效了对于我们来说通过变量名来找到对应的值的记住一件事任何系统上的东西想要永久生效和永久保存最终一定是写入到磁盘中的文件里面的一变量的分类- 本地变量- 环境变量- 系统变量组成变量名变量值不同变量之间的区别在于这些变量的作用域不同1本地变量作用域当前shell中使用2环境变量作用域当前shell中和子shell中使用变量的定义- 变量名变量值- 变量名组成数字、下划线、字母不能够使用数字开头本地变量定义变量名变量值二查看本地变量set[rootrhel9 ~]# set | grep ^AA300A1100取消本地变量unset变量名引用变量$变量名/ ${变量名}三环境变量定义定义新的环境变量export 变量名变量值将本地变量转换为环境变量export 本地变量名查看环境变量env / set取消变量定义unset 变量名引用变量$变量名 / ${变量名}四特殊的环境变量系统变量所谓的系统变量就是系统已经定义好的变量这些变量对于系统来说具备特殊意义一般不会去随便修改1可以配置的变量PS1:提示符变量HISTSIZE: 历史记录条目数PATH:用户可执行文件所在目录例可执行文件名字/opt/exe/ex200在终端上执行ex200可以输出This is rhcsa exam用户查看的变量HOME: 用户家目录UID: 用户的i2永久定义变量变量的定义是临时生效的需要将其写入到文件中才可以永久生效具体写入到哪个文件呢1. /etc/bashrc文件2. /etc/profile文件之所以写入到这俩个文件是因为登陆用户的时候是会读取这俩个文件的内容的。如果你把变量定义在这里每次你登陆用户的时候会读取变量(所有用户登陆都会读取这俩个文件称之为全局变量文件)还有俩个文件是属于用户读取的文件。登陆对应用户的时候用户也会读取自己家目录下的这俩变量文件用户变量文件1. /.bashrc2. ~/.bash_profile不同的登陆方式读取的变量文件是不同的变量文件读取的优先级3登陆系统用户的方式分为俩类登陆shellssh、su -读取的环境变量文件/etc/bashrc /etc/profile ~/.bashrc ~/.bash_profile非登陆shellsu、图形化页面打开一个标签页读取的环境变量文件/etc/bashrc ~/.bash_rc区别在于读取的环境变量文件不一样俩者登陆的时候都会读取/etc/bashrc文件建议大家在永久定义变量的时候写入到/etc/bashrc文件中环境变量文件读取的优先级五alias别名别名就是给linux的命令起一个别名alias rmrm -ialias cpcp -ialias mvmv -i作用简化命令的执行定义别名别名是临时生效的如果要求永久定义的话需要写入到环境变量文件中1删除别名unalias 别名2查看别名aliasalias 别名执行的命令alias lsnetll /etc/sysconfig/network-scripts/unalias lsnet案例要求定义一个别名cpetc执行此命令将会把/etc目录备份到/opt目录下备份后的文件名字为/opt/etc-backup-年-月-日[rootrhel9 ~]# alias cpetccp -r /etc/ /opt/etc-backup-$(date %F)六转义字符去掉字符的特殊意义1\表示去掉后面单个字符的特殊意义[rootrhel9 ~]# echo \$500\$600$500$6002“ ”表示去掉引号内部所有字符的特殊意义 有4个字符无法去掉特殊意义称之为弱引用[rootrhel9 ~]# echo hostnamerhel9.example.com3‘ ’表示去掉引号内部所有字符的特殊意义所有的字符都可以去掉特殊意义称之为强引用[rootrhel9 ~]# echo $500$600$500$600$\!