Linux Shell Syntax

一、单词:常用命令

  • useradd testuser  创建用户testuser
  • passwd testuser  给已创建的用户testuser设置密码
  • sudo   切换用户    https://www.runoob.com/linux/linux-comm-sudo.html    vi /etc/sudoers    append  your_user_name ALL=(ALL)   ALL  添加用户,有sudo权限
  • curl     服务器调试tomcat restfull 服务
  • yum       在linux上安装软件、插件     https://www.cnblogs.com/chuncn/archive/2010/10/17/1853915.html
  • sz          下载文件
  • rz           上传文件
  • scp        拷贝文件
  • cat   concatenate[kɒn’kætɪneɪt] 把 (一系列事件、事情等)联系起来    输入内容到文本中       CTRL + D 结束输入
  • sync    将数据写入硬盘
  • echo  取用变量, 前面必须要加上钱字号『 $ 』,echo $path
  • env 观察环境变量与常见环境变量说明
  • set 观察所有变量 (含环境变量与自定义变量)
  • export: 自定义变量转成环境变量

查看性能

  • systemctl     启动服务   systemctl start tomcat
    * systemctl status tomcat   查看tomcat服务的情况
  • netstat -a   查看网络的联机状态
  • ps -aux      查看后台执行的程序
  • shutdown     关机命令
  • reboot,halt,poweroff    重启,关机

二、语法:Shell 脚本

数据重定向

9dc5e13217e4a713e0528c15aacd0d51.jpeg

 ll     /home   >>    ~/rootfile

>   覆盖文件原内容
>> 延续文件原内容<   cat > catfile < FileName        把FileName文件的内容写入catfile 文件中 <<  结束的输入字符     cat > catfile << “eof”       『 我要用 cat 直接将输入的信息输出到 catfile 中, 且当由键盘输入 eof 时,该次输入就结束』

命令运行的判断依据: ; ,&&, ||

  • ; 不考虑命令相关性的连续命令下达
  • &&    
     1. 若 cmd1 运行完毕且正确运行($?=0),则开始运行 cmd2。         
     2. 若 cmd1 运行完毕且为错误 ($?≠0),则 cmd2 不运行。
  • ||            1 . 若 cmd1 运行完毕且正确运行($?=0),则 cmd2 不运行。          2. 若 cmd1 运行完毕且为错误 ($?≠0),则开始运行 cmd2。

问题:

分析 ls /tmp/vbirding || echo “not exist” && echo “exist”        为什么会同时显示 not exist,exist ,

[root@www ~] # ls /tmp/abc || mkdir /tmp/abc && touch /tmp/abc/hehe

由于Linux 底下的命令都是由左往右运行的,所以范例三有几种结果我们来分析一下:

(1)若 /tmp/abc 不存在故回传 $?≠0,则 (2)因为 || 遇到非为 0 的 $? 故开始 mkdir /tmp/abc,由于 mkdir /tmp/abc 会成功进行,所以回传 $?=0 (3)因为 && 遇到 $?=0 故会运行 touch /tmp/abc/hehe,最终 hehe 就被创建了;(1)若 /tmp/abc 存在故回传 $?=0,则 (2)因为 || 遇到 0 的 $? 不会进行,此时 $?=0 继续向后传,故 (3)因为 && 遇到 $?=0 就开始创建 /tmp/abc/hehe 了!最终 /tmp/abc/hehe 被创建起来。

command1 && command2 || command3  若command 1为真则执行command 2,若不存在,则执行command 3

管道命令 |

撷取命令: cut    grep   
排序命令:sort, wc, uniq
双向重导向: tee
字符转换命令: tr, col, join, paste, expand
参数代换: xargs  

13.shell脚本

test命令  判断符号[]      默认变量$0,命令行带参数
条件判断if…then   && ||
case…
esac
function 函数功能
loop循环


Posted

in

by

Tags:

Comments

One response to “Linux Shell Syntax”

  1. Don Avatar
    Don

    Nice

Leave a Reply

Your email address will not be published. Required fields are marked *