CentOS自动化运维常用命令-学习笔记

合集下载

CentOS运维常用命令

CentOS运维常用命令

CentOS运维常⽤命令1、添加系统帐号[root@localhost ~]# adduser gordon[root@localhost ~]# passwd gordon //新帐号添加密码,然后输⼊密码就完成了。

修改原有帐号,直接输⼊passwd2、普通系统帐号添加root权限visudo命令是⽤vim编辑修改/etc/sudoers配置⽂件[root@localhost ~]# visudo在“root ALL=(ALL) ALL”这⼀⾏下⾯,再加⼊⼀⾏:gordon ALL=(ALL) ALL #sudo⽆需输⼊密码 将原来的:gordon ALL=(ALL) ALL 修改为:gordon ALL=(ALL) NOPASSWD:ALL3、启⽤SFTP服务、修改SSH端⼝、禁⽤root远程ssh登录(1)启⽤SFTP服务#查看OpenSSH版本是否⼤于4.8p1。

$ ssh -V (注意:V⼤写)$ sudo groupadd sftpusers(2)禁⽤root远程ssh登录修改/etc/ssh/sshd_config⽂件,将#PermitRootLogin yes修改为PermitRootLogin no(3)修改SSH端⼝$ vi /etc/ssh/sshd_config #Port 22 //这⾏下⾯添加这⼀⾏ Port 58585先开启防⽕墙:$ systemctl start firewalld#查看firewalld状态:systemctl status firewalld;#关闭防⽕墙:systemctl stop firewalld$ firewall-cmd --zone=public --add-port=58585/tcp --permanent // (permanent是保存配置,不然下次重启以后这次修改⽆效)注意-重载防⽕墙:$ firewall-cmd --reload查看添加端⼝是否成功,如果添加成功则会显⽰yes,否则no$ firewall-cmd --zone=public --query-port=58585/tcp#重启sshd服务$ sudo systemctl restart sshd.service4、java与mysql安装java安装:mysql安装: mysql远程登录: mysql>grant all privileges on *.* to root@'%' identified by "password"; mysql>GRANT SElECT ON *.* TO 'username'@'%' IDENTIFIED BY "password"; mysql旧密码验证 mysql>ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'youpassword'; mysql表情符编码 utf8mb4 utf8mb4_general_ci。

centos基础命令详解

centos基础命令详解

基础文件管理命令1、你在哪之pwd命令pwd:print working directory ,也就是显示当前所在目录的意思用法:直接敲pwd即可2、改变你所在的目录之cd命令cd:change directory,也就是切换/改变目录的意思用法:cd [相对路径或绝对路径]相对路径:不是由/ 写起:比如由/usr/share/doc 到/usr/share/man 下面时,可以写成:cd ../man绝对路径:由根目录/ 写起:比如cd /usr/local/,表示切换到/usr/local目录下面那两点:“..”代表什么意思呢?下面来说一说一些特殊的目录. :代表此层目录;.. :代表上一层目录;- :代表前一个工作目录;~ :代表“当前登陆用户身份”所在的主目录;~account :代表account这个用户的主目录(account是个账户名称)。

特别注意:在所有目录下面都会存在的两个目录,分别是“.”和“..”,分别代表此层与上层目录的意思。

4 创建一个新目录:mkdir命令mkdir:make directory,即创建目录用法:mkdir [-p] 目录名称不加参数,直接敲“mkdir 目录名称”-p:创建多层目录3 删除一个目录之rmdir命令rmdir:remove directory,即移除/删除“空”目录用法:rmdir [-p] 目录名称-p:连同上层“空的”目录也一起删除举例:刚刚在/tmp里面创建了目录,我们来把他们删除rmdir仅能删除“空的目录”;所以当我们删除test1这个目录,提示删除失败,因为它不是“空”的目录,它里面有test2这个目录。

当我们加上-p参数,首先会删除test3这个目录,test3是“空”的目录,所以成功删除,这时候test2也变成“空”的目录了,所以也删除了,然后test1也变成了“空”的目录了,所以test1也被删除。

-p ,其实就是递归操作。

linux笔记全(无图版)

linux笔记全(无图版)

linux笔记全(⽆图版)1、ls 查看当前⽬录下的所有内容⿊⾊的是⽂件,蓝⾊的是⽂件夹,也就是⽬录2、rm -f anaconda-ks. cfg 彻底删除⽂件(如不确定,则需要先保存备份,也就是快照)3、ifconfig 查看⽹卡的配置信息(ip地址等)4、ifconfig ens33 192.168.18. 201 /24(⽹络地址/⼦⽹掩码)更改ip地址5、systemctl restart network 重启⽹络服务6、桥接模式,直接可以进⾏通信(同⼀⽹段,配置ip)7、能不能通信的2个条件:在同⼀个物理⽹络内,ip地址也在同⼀⽹段内8、仅主机模式,虚拟机和物理机不能进⾏通信,相当于虚拟机和物理机进⾏了隔离与笔记本(真机)通信截图9、NAT模式,⾃动分配⽹络地址和⽹关,以及dns,可以直接上⽹可以访问互联⽹内的主机,但互联⽹内的主机不能访问本机(max特点)10、route -n 查看⽹关11、cat /etc/resolv. conf 查看dns(注意cat后⾯有⼀个空格,空格不可少)12、验证nat模式可以直接上⽹13、shell:通常指linux的字符界⾯,图形界⾯和字符界⾯都属于shell,但图形界⾯的shell常称为gui,字符界⾯的shell常称为cli14、cat /etc/shells 查看⽂件内容(linux⾥⾯提供的所有的shell)15、linux默认使⽤的shell是bash的shell16、echo $SHELL 查看当前使⽤的shell17、shell默认指的是bash,它的应⽤是最⼴泛的18、linux是彻底的多⽤户多任务,它可以直接多个⽤户同时进⾏操作19、ctrl+alt+f2-f6 对应5个shell ctrl+alt+f1 开始图形界⾯shell 作⽤:如何开始shell(也就是如何打开命令界⾯)20、虚拟终端的缩写为tty, 在字符界⾯下执⾏“tty"命令就可以显⽰⽤户⽬前所在的终端编号(终端名称)。

CentOS7常用命令大全

CentOS7常用命令大全

CentOS7常⽤命令⼤全CentOS7 常⽤命令集合这两天⼀直在对CentOS 7.2进⾏初体验,各种学习命令肿么⽤,不过其实⼤多和DOS是⼀样的,只是命令的表达上可能有点⼉不⼀样,毕竟这些都不是⼀家出来的嘛~废话不多说,直接上命令和解析!常⽤命令⽂件与⽬录操作命令解析cd /home进⼊ ‘/home’ ⽬录cd ..返回上⼀级⽬录cd ../..返回上两级⽬录cd -返回上次所在⽬录cp file1 file2将file1复制为file2cp -a dir1 dir2复制⼀个⽬录cp -a /tmp/dir1 .复制⼀个⽬录到当前⼯作⽬录(.代表当前⽬录)ls查看⽬录中的⽂件ls -a显⽰隐藏⽂件ls -l显⽰详细信息ls -lrt按时间显⽰⽂件(l表⽰详细列表,r表⽰反向排序,t表⽰按时间排序)pwd显⽰⼯作路径mkdir dir1创建 ‘dir1’ ⽬录mkdir dir1 dir2同时创建两个⽬录mkdir -p /tmp/dir1/dir2创建⼀个⽬录树mv dir1 dir2移动/重命名⼀个⽬录rm -f file1删除 ‘file1’rm -rf dir1删除 ‘dir1’ ⽬录及其⼦⽬录内容查看⽂件内容命令解析cat file1从第⼀个字节开始正向查看⽂件的内容head -2 file1查看⼀个⽂件的前两⾏more file1查看⼀个长⽂件的内容tac file1从最后⼀⾏开始反向查看⼀个⽂件的内容tail -3 file1查看⼀个⽂件的最后三⾏vi file打开并浏览⽂件⽂本内容处理命令解析grep str /tmp/test在⽂件 ‘/tmp/test’ 中查找 “str”grep ^str /tmp/test在⽂件 ‘/tmp/test’ 中查找以 “str” 开始的⾏grep [0-9] /tmp/test查找 ‘/tmp/test’ ⽂件中所有包含数字的⾏grep str -r /tmp/*在⽬录 ‘/tmp’ 及其⼦⽬录中查找 “str”diff file1 file2找出两个⽂件的不同处sdiff file1 file2以对⽐的⽅式显⽰两个⽂件的不同vi file 操作解析i进⼊编辑⽂本模式Esc退出编辑⽂本模式:w保存当前修改:q不保存退出vi:wq保存当前修改并退出vi命令解析操作解析查询操作命令解析find / -name file1从 ‘/’ 开始进⼊根⽂件系统查找⽂件和⽬录find / -user user1查找属于⽤户 ‘user1’ 的⽂件和⽬录find /home/user1 -name *.bin在⽬录 ‘/ home/user1’ 中查找以 ‘.bin’ 结尾的⽂件find /usr/bin -type f -atime +100查找在过去100天内未被使⽤过的执⾏⽂件find /usr/bin -type f -mtime -10查找在10天内被创建或者修改过的⽂件locate *.ps寻找以 ‘.ps’ 结尾的⽂件,先运⾏ ‘updatedb’ 命令find -name ‘*.[ch]’ | xargs grep -E ‘expr’在当前⽬录及其⼦⽬录所有.c和.h⽂件中查找 ‘expr’find -type f -print0 | xargs -r0 grep -F ‘expr’在当前⽬录及其⼦⽬录的常规⽂件中查找 ‘expr’find -maxdepth 1 -type f | xargs grep -F ‘expr’在当前⽬录中查找 ‘expr’压缩、解压命令解析bzip2 file1压缩 file1bunzip2 file1.bz2解压 file1.bz2gzip file1压缩 file1gzip -9 file1最⼤程度压缩 file1gunzip file1.gz解压 file1.gztar -cvf archive.tar file1把file1打包成 archive.tar(-c: 建⽴压缩档案;-v: 显⽰所有过程;-f: 使⽤档案名字,是必须的,是最后⼀个参数)tar -cvf archive.tar file1dir1把 file1,dir1 打包成 archive.tartar -tf archive.tar显⽰⼀个包中的内容tar -xvf archive.tar释放⼀个包tar -xvf archive.tar -C /tmp把压缩包释放到 /tmp⽬录下zip file1.zip file1创建⼀个zip格式的压缩包zip -r file1.zip file1 dir1把⽂件和⽬录压缩成⼀个zip格式的压缩包unzip file1.zip解压⼀个zip格式的压缩包到当前⽬录unzip test.zip -d /tmp/解压⼀个zip格式的压缩包到 /tmp ⽬录yum安装器命令解析yum -y install [package]下载并安装⼀个rpm包yum localinstall [package.rpm]安装⼀个rpm包,使⽤你⾃⼰的软件仓库解决所有依赖关系yum -y update更新当前系统中安装的所有rpm包yum update [package]更新⼀个rpm包yum remove [package]删除⼀个rpm包yum list列出当前系统中安装的所有包yum search [package]在rpm仓库中搜寻软件包yum clean [package]清除缓存⽬录(/var/cache/yum)下的软件包yum clean headers删除所有头⽂件yum clean all删除所有缓存的包和头⽂件⽹络相关命令解析ifconfig eth0显⽰⼀个以太⽹卡的配置ifconfig eth0 192.168.1.1 netmask 255.255.255.0配置⽹卡的IP地址ifdown eth0禁⽤ ‘eth0’ ⽹络设备ifup eth0启⽤ ‘eth0’ ⽹络设备iwconfig eth1显⽰⼀个⽆线⽹卡的配置iwlist scan显⽰⽆线⽹络ip addr show显⽰⽹卡的IP地址系统相关命令解析su -切换到root权限(与su有区别)shutdown -h now关机shutdown -r now重启top罗列使⽤CPU资源最多的linux任务(输⼊q退出)pstree以树状图显⽰程序man ping查看参考⼿册(例如ping 命令)passwd修改密码df -h显⽰磁盘的使⽤情况cal -3显⽰前⼀个⽉,当前⽉以及下⼀个⽉的⽉历cal 10 1988显⽰指定⽉,年的⽉历date –date ‘1970-01-01 UTC 1427888888 seconds’把⼀相对于1970-01-01 00:00的秒数转换成时间XSheel 5相关操作窗体快捷键命令解析Ctrl + u删除光标之前到⾏⾸的字符Ctrl + k删除光标之前到⾏尾的字符Ctrl + c取消当前⾏输⼊的命令,相当于Ctrl + BreakCtrl + a光标移动到⾏⾸(ahead of line),相当于通常的Home键Ctrl + e光标移动到⾏尾(end of line)Ctrl + f光标向前(forward)移动⼀个字符位置Ctrl + b光标往回(backward)移动⼀个字符位置Ctrl + l清屏,相当于执⾏clear命令Ctrl + r显⽰:号提⽰,根据⽤户输⼊查找相关历史命令(reverse-i-search)Ctrl + w删除从光标位置前到当前所处单词(word)的开头Ctrl + t交换光标位置前的两个字符Ctrl + y粘贴最后⼀次被删除的单词Ctrl + Alt + d显⽰桌⾯Alt + b光标往回(backward)移动到前⼀个单词Alt + d删除从光标位置到当前所处单词的末尾Alt + F2运⾏Alt + F4关闭当前窗⼝Alt + F9最⼩化当前窗⼝Alt + F10最⼤化当前窗⼝Alt + Tab切换窗⼝Alt + 左键移动窗⼝(或在最下⾯的任务栏滚动⿏标滑轮)操作⼩技巧⿏标中间键:粘贴突出显⽰的⽂本。

centos7常用命令

centos7常用命令

centos7常⽤命令1:linux 命令的使⽤man部分个⼈觉得这是⼀个最⽜逼的命令了,可以查看各种命令的⽤法和说明、功能。

下⾯就⽤⼀个命令举⼀个例⼦man ls 查看ls 命令的说明、功能。

(唯⼀可惜的是显⽰的是英⽂,对我这种英⽂不好的渣渣是有那么点不友好,不过勉强能看的懂个⼤概)cd部分,进⼊⽂件夹cd /⽂件夹1 进⼊⽂件夹1cd .. 返回上⼀级⽬录cd 单独⼀个cd,不管你当前⽬录在哪,只要输⼊cd 就给你跳转到根⽬录下的/root ⽂件夹cd / 回到根⽬录vi/vim 部分⽂本编辑器(vim是vi的升级版,vi修改⽂件⾥⾯没有彩⾊的,⽽vim是有彩⾊字体部分的)vi/vim ⽂件名1 进⼊到⽂件名为⽂件名1的⽂件⾥,进来之后按i进⼊到可修改状态,修改之后,要是忘记了修改哪部分的话,想要退出,那么先按esc,再按 :q!(不保存退出) 修改之后想要保存退出的话同样先按esc,再按 :wq(保存退出),进⼊⽂件后按 /可查找。

cat部分只是⽤来读取⽂件,不是⽂本编辑器,不能对⽂本内容进⾏修改,不能按上下键来进⾏滚动查看cat ⽂件名1 查看⽂件名为⽂件名1的⽂件内容less/more 12.txt 两个都是⽂本查看器,区别是more只能通过enter键来进⾏查看下⾯内容,⽽less除了enter键以外还可以通过上下键来进⾏翻页tail -n122 12.txt 查看12.txt⽂件的最后122⾏内容tail -f 12.log 运⾏项⽬是可以看项⽬的⽇志变化head -n122 12.txt 查看12.txt⽂件的前⾯122⾏内容ls,ll, ls -l 部分显⽰当前⽂件夹⾥的所有⽂件和⽂件夹ls 只显⽰当前⽂件夹的所有⽂件名字ll 显⽰当前⽂件夹的所有⽂件,包括⽂件的创建时间和⽂件⼤⼩ls -l 功能和 ll 命令⼀样mkdir,touch 部分这两个为什么放⼀起说呢,因为⼀个是创建⽂件夹的命令,⼀个是创建⽂件的命令mkdir ⽂件名1 在当前⽬录下创建⽂件名为⽂件名1的⽂件夹touch 44.txt touch命令可以创建任何后缀格式的⽂本,这句的命令是在当前⽬录下创建44.txt这个⽂件tar 部分 压缩、解压命令tar -cfvz 压缩包名字(格式:xx.tar.gz) 要压缩的⽂件名压缩命令tar -xfvz 压缩包名字 解压命令sed 部分sed 是⼀种在线编辑器,它⼀次处理⼀⾏内容。

centos运维技巧

centos运维技巧

centos运维技巧以下是一些CentOS运维的技巧:1. 更新安装包:使用`yum update`命令可以更新系统安装包到最新版本。

2. 安装EPEL存储库:EPEL存储库提供了许多额外的软件包。

使用以下命令安装EPEL存储库:```yum install epel-release```3. 安装常用工具:安装一些常用的工具可以方便系统管理。

使用以下命令安装常用工具:```yum install vim wget curl screen git```4. 配置防火墙:CentOS默认启用防火墙。

使用以下命令配置防火墙:```firewall-cmd --add-port=80/tcp --permanent # 开放80端口firewall-cmd --reload # 重载防火墙配置```5. 创建用户和组:使用以下命令创建新用户和组:```useradd username # 创建新用户passwd username # 为用户设置密码groupadd groupname # 创建新组```6. 修改主机名:使用以下命令可以修改系统的主机名:```hostnamectl set-hostname newhostname```7. 日志管理:使用`journalctl`命令查看系统日志:```journalctl -u serviceName.service # 查看指定服务的日志journalctl -u serviceName.service -f # 实时查看指定服务的日志```8. 监控系统资源:使用`top`命令可以实时监控系统的运行情况。

9. 设置定时任务:使用`crontab`命令可以设置定时任务:```crontab -e # 编辑当前用户的定时任务```10. 网络设置:使用`nmcli`命令可以管理网络设置:```nmcli device show # 查看网络设备信息nmcli connection show # 查看网络连接信息```。

CentOS Linux最常用命令及快捷键整理

CentOS Linux最常用命令及快捷键整理

CentOS Linux最常用命令及快捷键整理centoslinux最常用命令及快捷键整理最近,我一直在体验CentOS系统。

为了方便自己和他人,我整理了Linux的常用命令和快捷键。

然而,它们中的大多数与DOS相同,但命令的表达方式可能略有不同。

常见linux命令:文件和目录:#cd/home进入'/home'目录#cd..返回上一级目录#cd../..返回上两级目录#cd-返回上次所在目录#cpfile1file2将file1复制为file2#cp-adir1dir2复制一个目录#cp-a/tmp/dir1。

将目录复制到当前工作目录(表示当前目录)#ls查看目录中的文件#ls-a显示隐藏文件#ls-l显示详细信息#ls-lrt按时间显示文件(l表示详细列表,r表示反向排序,t表示按时间排序)#PWD显示工作路径#mkdir1创建'dir1'目录#mkdir1dir2同时创建两个目录#mkdir-p/TMP/dir1/dir2创建目录树#mvdir1dir2移动/重命名目录#rm-ffile1删除'file1'#rm-rfdir1删除'dir1'目录及其子目录内容查看文件内容:#Catfile1从第一个字节开始查看文件内容#head-2file1查看文件的前两行#morefile1查看长文件的内容#tacfile1从最后一行开始反向查看一个文件的内容#tail-3file1查看一个文件的最后三行文本处理:#Grepstr/TMP/test查找文件'/TMP/test'\#grep^str/tmp/test在文件'/tmp/test'中查找以\开始的行#grep[0-9]/tmp/test查找'/tmp/test'文件中所有包含数字的行#grepstr-r/tmp/*在目录'/tmp'及其子目录中查找\#difffile1file2找出两个文件的不同处#SDIFFFILE1文件2以比较的方式显示两个文件的不同查找:#find/-namefile1从'/'开始进入根文件系统查找文件和目录#Find/-user1查找属于用户“user1”的文件和目录#find/home/user1-name\\*.bin在目录'/home/user1'中查找以'.bin'结尾的文件#Find/usr/bin type f-atime+100查找过去100天内未使用的可执行文件#find/usr/bin-typef-mtime-10查找在10天内被创建或者修改过的文件#找到\\*。

CentOS7 常用命令集合

CentOS7 常用命令集合
find /home/user1 -name *.bin 在目录 ‘/ home/user1’ 中查找以 ‘.bin’ 结尾的文件
find /usr/bin -type f -atime +100 查找在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 查找在10天内被创建或者修改过的文件
yum clean headers 删除所有头文件
yum clean all 删除所有缓存的包和头文件
网络相关
命令 解析
ifconfig eth0 显示一个以太网卡的配置
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 配置网卡的IP地址
ifdown eth0 禁用 ‘eth0’ 网络设备
date –date ‘1970-01-01 UTC 1427888888 seconds’ 把一相对于1970-01-01 00:00的秒数转换成时间
XSheel 5相关操作
窗体快捷键
命令 解析
Ctrl + u 删除光标之前到行首的字符
Ctrl + k 删除光标之前到行尾的字符
Ctrl + c 取消当前行输入的命令,相当于Ctrl + Break
gunzip file1.gz 解压 file1.gz
tar -cvf archive.tar file1 把file1打包成 archive.tar(-c: 建立压缩档案;-v: 显示所有过程;-f: 使用档案名字,是必须的,是最后一个参数)
tar -cvf archive.tar file1 dir1 把 file1,dir1 打包成 archive.tar
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

否则打开vim编辑器。

5. id tom &>/dev/null && echo "Hi tom" || echo "No such user"如果id tom 执行成功,则说明用户存在,屏幕将显示Hi,tom 否则显示No such..3.3.3作业控制技巧:# vim & # jobs # fg 1 通过fg<编号>的形式将进程再次调回到前台执行;3.3.4 花括号{}的使用技巧:# echo {a,b,c} 通过花括号扩展可以生成命令行或脚本所需要的字串# echo user{1,5,8} # user1 user5 user8 # echo {0..10} #1 2 ..10# echo {0..10 ..2} # 0 2 4..10# echo a{2..-1} #a2 a1 ..a-1# mkdir /tmp/dir{1..5}#ls -ld /tmp/dir{1,2,3}#chmod 777 /tmp/dir{1,2}#kill -9 {4603,8345,11574,12257}3.4变量3.4.1自定义变量:建议统一使用大写或者首字母大写。

默认NAME的值是可以被修改的,但可以通过typeset 为这个变量添加只读属性来防止误操作,如果需要限定变量值可以设置为整数,亦可以用typeset添加属性;NAME=tomcatecho $NAMEtypeset -r NAME #添加readonly只读属性declare INT_NUMBER #预先定义一个变量,但是暂时不给赋值typeset -in INT_NUMBER #设置整数变量read P_NUMBER #回车后输入要赋值给P_NUMBER的值echo $P_NUMBERread -p "Please input a number:"P_NUMBER # set #查看当前系统中设置的所有的变量和值unset P_NUMBER #删除变量;3.4.2 变量的使用范围使用name=[value]的形式定义的变量默认仅在当前shell 中有效,子进程不会集成这样的变量.使用export 命令会将变量放入环境中,这样的进程会从父进程哪里继承环境,export 可以直接定义环境变量并赋值.TEST=passecho $TESTbash #在当前shell下开启新进程bashecho $TEST #查看变量值为空exitexport TEST #将已有用户变量添加至环境export NAME=tom # 直接定义环境变量3.4.3 环境变量Bash预设定了很多环境变量,可以直接调用这些变量;Bash手册:BASHPID 当前bash进程的进程号GROUPS 当前用户所属的组ID号HOSTNAME 当前主机的主机名称PWD 当前工作目录OLDPWD 前一个工作目录RANDOM 0 - 32767之间的随机数UID 当前用户的ID号码HISTSIZE 命令历史的记录条数HOME 当前用户的家目录PATH 命令搜索路径PS1 主命令提示符PS2 次命令提示符echo $PATH/usr/local/sbin:/usr/....#PATH=/root给PATH直接赋值/root目录, 则以后再执行ls命令会提示没有找到. 因为系统只会在/root目录下查找有没有ls命令. 但是因为修改并没有通过写入文件的方式吧修改永久保存至环境变量, 所以退出重新登录即可复原.修改PATH变量的正确方法是在原来的基础上修改,所以在赋值时需要引用旧值:#PATH=$PATH:/root #在与原有路径列表后追加目录3.4.4 位置变量test.sh#!/bin/bash#This is test script for parameter!echo "This is file name:$0"echo "This is first parameter:$1"echo "This is second parameter:$2"echo "This is the number of all parameter:$#" echo "This is the all parameter:$@"echo "This is PID:$$"#bash /tmp/test.sh a b c #允许改脚本使用3个参数注释:$0代表当前Shell程序的文件名称, $1代表允许shell 程序是的第一个参数,范围$1~$9;使用Shell位置变量有助于我们查看很多相关信息, $#代表Shell程序所以参数个数; $*和$@均代表所有参数的内容,区别是$*将所有的参数作为一个整体,而#@将所有的从参数分别作为个体看待.$$ 代表当前进程的ID号码,$? 表示程序的退出代码(一般0代表命令成功执行,非0代表命令执行失败)3.4.5Linux中一般可以使用${变量名}的形式展开变量的值 # echo ${NAME}${varname:-word} 如varname存在且非null,则返回其值,否则返回word${varname:=word} 如varname存在且非null,则返回其值,否则设置为word${varname?message} 如varname存在且非null,则返回其值,否则显示varname:message${varname:+word} 如varname存在且非null,则返回word,返回null修改变量的值输出${variable#key} 从头开始删除关键字,执行最短匹配${variable##key} 从头开始删除关键字,执行最长匹配${variable%key} 从尾开始删除关键字,执行最短匹配${variable%%key} 从尾开始删除关键字,执行最长匹配${variable/old/new} 将old替换为new,尽替换第一个出现的old${variable//old/new}将old替换为new,替换所有的old # USR=$(head -1 /etc/passwd)# echo ${USR%:*:}3.4.6 数组# B=(aa bbb cccc)# echo ${B[0]}:${B[1]}:${B[2]}# echo ${A[*]} #${name[*或@]}调用所有的数组成员.# echo ${A[@]}# echo "length of B_2 is ${#B[2]}"#${#name[subscript]}可以返回长度3.4.7 算术运算与测试# $((expression)) 算术表达式# expr arg1 + arg2 命令工具expr也可以实现算术运算使用Bash内置命令 test 可实现测试工作或者使用 [ 测试表达式 ].注意使用[ 表达式 ]记得在表达式两边都要留有空格# test -d /etc/ && echo "yes" || echo "no" # etc是目录就yes,否则no# [ -d /etc/ ] && echo "yes" || echo "no"-d file 文件文件是否存在且为目录是否存在且为目录-e file 文件是否存在文件是否存在-f file 文件是否存在,且为普通文件文件是否存在-r file 文件是否存在且可读-w file 文件是否存在且可写-x file 可执行-s 非空-h 是否为空链接-n STRING 字符串长度非0-z STRING 字符串长度为0STRING1 = STRING2 字符串相等!= 不相等INTER1 -eq INSTER2 整数1与整数2相等-ge 大于或等于-gt 大于-le 小于或等于-lt 小于-ne 不等于# [ -n $PATH ] && echo "yes" || echo "no"#PATH变量有定义,所以为非空3.5 shell引号3.5.1 反斜线\* 把 * 作为字母意义上的普通字符在命令的末尾使用 \回车后, \可以将回车的命令功能屏蔽,换行继续输入命令# echo * # 显示当前目录的所有文件列表# echo \* # 显示*字符# find / \> -name "test.txt" \> -type f \> -size +5M3.5.2 单引号单引号可以将它中间的所有任意字符还原为字面意义,实现屏蔽shell元字符的功能. 单引号必须成对出现.3.5.2 双引号类似于单引号 , 但其不会屏蔽 ' , \ 和 $ 这三个shell元字符的含义.如果需要屏蔽这些字符含义,必须前置一个 \ 符号,# echo "\$HOME"3.5.4 反引号Shell中使用反引号进行命令替换 , 是shell可以将命令字符替换为命令执行结果,$()同样结果# echo "Today is `date +%D`"# echo "Today is $(date +%D)"3.5 正则表达式Everything is file# cp /etc/passwd /tmp/# grep root /tmp/passwd #查找包含root的行查找:与0:之间包含任意两个字符的字串, 并显示该行(--color代表以颜色加亮显示匹配的内容)# grep --color :..0: /tmp/passwd查找包含至少一个0的行(第一个0必须出现,第二个0可以出现)# grep --color 00* /tmp/passwd查找包含oot或ost的行grep --color o[os]t /tmp/passwd查找包含数字0~9的行grep --color [0-9] /tmp/passwd查找包含字母f-q的行grep --color [f-q] /tmp/passwd查找以root开头的行:grep --color ^root /tmp/passwd查找以bash结尾的行grep --color bash$ /tmp/passwd查找sbin/后边不跟n的行:grep --color sbin/[^n] /tmp/passwd查找数字0出现1次, 2次的行:grep --color '0\{1,2\}' /tmp/passwd查找包含两个root的行(注:grep 在使用/(/)过滤时, 匹配条件必须使用引号);grep --color "\(root\) .*\1" /tmp/passwd查找包含以root: 开头并以 :root 结尾的字串行:grep --color "\(root\)\(:\).*\2\1" /tmp/passwd过滤文件的空白行:grep ^$ /tmp/passwd过滤文件的非空白行:grep -v ^$ /tmp/passwd3.6 Awk 操作指令1.记录与字段<1>读取输入行并输出第一个字段,第二个字段,第三个字段. echo hello the world | awk '{print $1,$2,$3}'<2>读取输入行并输出该行echo hello the world | awk '{print $0}'<3>读取输入行并输入该行的字段个数echo hello the world | awk '{print NF}'<4>读取输入行并输出该行最后一个字段echo hello the world | awk '{print $NF}'2.字段分隔符默认awk读取数据以空格或者制表符作为分隔符,但可以通过-F 或FS(field separator)变量来改变分隔符.将字段的分隔符改为冒号(:),awk -F: '{print $1}' /etc/passwdawk 'BEGIN {FS = ":"} {print $1}' /etc/passwd指定多个字段分隔符echo 'hello the:word , !'|awk 'BEGIN {FS=[:, ]"} {print $1,$2,$3,$4}'自动化运维的必要条件:1.可扩展的高并发网站集群架构F5 , A10DNS->LB4->LB7->Cache->Web->中间件->DB->存储。

相关文档
最新文档