一、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
chsh -l
三、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 /$
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}因为两个文件前部分名字一致所以可以简写