tcsh 基本命令

shell 是一种命令行程序, linux 用户可以通过 shell 与操作系统内核进行交互。

shell 分为好几种:sh,bash,csh,tcsh, 其中 tcsh 是 csh 的增强版,常用的两种 shell 就是 bash 和 tcsh。

一般linux 默认shell 是 bash,但是IC公司用的较多的是 tcsh,二者的语法和内建命令相差较大,关于bash,网上资料非常多,这里主要记录 tcsh 的语法和基本命令。

具体使用哪个shell 可以在脚本第一行定义: #! /bin/bash 或者 #! /bin/tcsh

查看当前默认shell 可以看环境变量 echo $SHELL

tcsh 基本语法:

  1. 创建字符串变量: set var = hello; set var01 = “hello world” ;echo $var # 注意等于号

    创建数值变量: @ num = 101 ; @ n01 = $num * 2 ; echo $n01 # 注意用 @ 开头,且@与变量之间需留空格

  2. 控制流(if while foreach )

(a). if (condition) then # 注意 if 和 then 必须写在同一行,if 条件用小括号

cmd01

cmd02 # 可以写很多行命令

else

cmd03

endif # 一定要有这个 endif 结束

(b). while ( condition )

cmd01

end

©. foreach var ( var-list )

cmd01

end

  1. 测试表达式

if ( -e file01 ) then # 检测文件 file01 是否存在

cmd01

end

常用检测命令:

-e file01 检测文件 file01 是否存在,存在则返回 1, 否则返回 0

-f file01 检测文件 file01 是否是普通文件

-d file01 检测文件 file01 是否是目录

-w file01 检测文件 file01 是否可写

  1. 命令置换

如果要将一个shell命令的执行结果作为另一个命令的输出,可以用 cmd,注意这里的 ` 不是单引号,而是键盘 ESC 下方那个键,比如:

echo stage_date #(而在 tcl 语言中,引用shell命令的格式是 echo stage_[sh date] )

echo " the stage finish at date " # 双引号中的大部分特殊字符都会失去其特殊意义,但是有三种字符除外:变量置换符、命令置换符、转义字符,即 " $ ` \ "

单引号中所有特殊字符都会变成普通字符,适合用在 alias 中

  1. 连续执行

如果需要在一行命令中连续执行多条shell命令,有以下几种写法:

1) cmd1 ; cmd2 ; cmd3 # 按顺序执行三个 cmd,不管是否成功执行

2) cmd1 && cmd2 && cmd3 # 顺序执行三个 cmd,只有前边的 cmd 执行成功,才会继续执行

3) cmd1 || cmd2 || cmd3 # 如果 cmd1 执行成功,就不执行之后的 cmd。

  1. 其他命令

setenv var value # 设置环境变量 var ,全局可用,注意这里没有等于号

printenv env_name # 显示环境变量,如果没参数,就显示所有环境变量

umask 022 # 设置新建文件默认属性, 022 是八进制,且表示取消掉权限,所以等价于 chmod 755

  1. 几个 tcsh 实例

1). 每隔半小时检测一次 flag 文件是否存在,不存在就继续等待,若存在就执行make run

文件名 auto_run.sh :

shell 是一种命令行程序, linux 用户可以通过 shell 与操作系统内核进行交互。

shell 分为好几种:sh,bash,csh,tcsh, 其中 tcsh 是 csh 的增强版,常用的两种 shell 就是 bash 和 tcsh。

一般linux 默认shell 是 bash,但是IC公司用的较多的是 tcsh,二者的语法和内建命令相差较大,关于bash,网上资料非常多,这里主要记录 tcsh 的语法和基本命令。

具体使用哪个shell 可以在脚本第一行定义: #! /bin/bash 或者 #! /bin/tcsh

查看当前默认shell 可以看环境变量 echo $SHELL

tcsh 基本语法:

  1. 创建字符串变量: set var = hello; set var01 = “hello world” ;echo $var # 注意等于号

    创建数值变量: @ num = 101 ; @ n01 = $num * 2 ; echo $n01 # 注意用 @ 开头,且@与变量之间需留空格

  2. 控制流(if while foreach )

(a). if (condition) then # 注意 if 和 then 必须写在同一行,if 条件用小括号

cmd01

cmd02 # 可以写很多行命令

else

cmd03

endif # 一定要有这个 endif 结束

(b). while ( condition )

cmd01

end

©. foreach var ( var-list )

cmd01

end

  1. 测试表达式

if ( -e file01 ) then # 检测文件 file01 是否存在

cmd01

end

常用检测命令:

-e file01 检测文件 file01 是否存在,存在则返回 1, 否则返回 0

-f file01 检测文件 file01 是否是普通文件

-d file01 检测文件 file01 是否是目录

-w file01 检测文件 file01 是否可写

  1. 命令置换

如果要将一个shell命令的执行结果作为另一个命令的输出,可以用 cmd,注意这里的 ` 不是单引号,而是键盘 ESC 下方那个键,比如:

echo stage_date #(而在 tcl 语言中,引用shell命令的格式是 echo stage_[sh date] )

echo " the stage finish at date " # 双引号中的大部分特殊字符都会失去其特殊意义,但是有三种字符除外:变量置换符、命令置换符、转义字符,即 " $ ` \ "

单引号中所有特殊字符都会变成普通字符,适合用在 alias 中

  1. 连续执行

如果需要在一行命令中连续执行多条shell命令,有以下几种写法:

1) cmd1 ; cmd2 ; cmd3 # 按顺序执行三个 cmd,不管是否成功执行

2) cmd1 && cmd2 && cmd3 # 顺序执行三个 cmd,只有前边的 cmd 执行成功,才会继续执行

3) cmd1 || cmd2 || cmd3 # 如果 cmd1 执行成功,就不执行之后的 cmd。

  1. 其他命令

setenv var value # 设置环境变量 var ,全局可用,注意这里没有等于号

printenv env_name # 显示环境变量,如果没参数,就显示所有环境变量

umask 022 # 设置新建文件默认属性, 022 是八进制,且表示取消掉权限,所以等价于 chmod 755

  1. 几个 tcsh 实例
    在这里插入图片描述

1). 每隔半小时检测一次 flag 文件是否存在,不存在就继续等待,若存在就执行make run

文件名 auto_run.sh :

https://www.cnblogs.com/xiaoxie2014/p/11475568.html

Linux 命令行工具是基于 Unix 内核的一种交互式命令操作环境,其基本原理主要围绕以下几个方面: 1. **命令解释器(Shell)**:如 Bash、Zsh 或者 Tcsh 等,是用户和 Linux 内核之间的接口。当用户输入命令时,Shell 解释并执行这些命令。 2. **目录结构(File System)**:Linux 使用文件系统组织文件和目录,例如文件夹、链接等。用户通过路径定位到所需的文件或程序。 3. **命令执行**:每个命令都是一个可执行文件(通常是 ELF 格式),操作系统根据命令名(也叫"路径")找到并运行它。例如,`ls` 命令实际上是 `/bin/ls` 这样的路径下的程序。 4. **管道(Pipeline)**:多个命令可以串联起来形成一个管道,这样命令的输出会作为下一个命令的输入,实现了数据流的处理。 5. **标准输入、输出和错误(stdin, stdout, stderr)**:用户可以通过管道、重定向或标准输入(键盘)与命令进行交互,标准输出通常显示在终端,而标准错误用于报告可能的问题。 6. **权限管理(Permissions)**:Linux 采用严格的权限系统,确保用户只能访问他们有权限的文件和执行相应的操作。 7. **命令历史和自动补全**:许多 shell 提供了命令历史记录和自动补全功能,方便用户快速输入常用命令。 相关问题: 1. Linux 命令行中,如何使用重定向来操作文件? 2. 如何查看当前用户的权限设置? 3. 什么是 Linux 中的脚本语言(如 Bash 或者 Python)?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值