kshell打开某个文件

kshell打开某个文件,第1张

/etc/profile 在登录时首先自动执行。

$HOME/.profile 在登录时第二个自动执行。

$ENV 在创建一个新的 KShell时指定要读的一个文件。

文件名元字符

* 匹配有零或零个以上字符的字符串

? 匹配任何单个字符

[abc…] 匹配括号内任何一个字符,也可用连字符指定一个范围(例如, a-z,A-Z,0-9)

[!abc…] 匹配任何不包括在括号内的字符

?(pattern) 匹配模式的零个或一个实例

*(pattern) 匹配指定模式的零个或多个实例

+ (pattern) 匹配指定模式的一个或多个实例

@ (pattern) 只匹配指定模式的一个实例

! (pattern) 匹配任何不匹配模式的字符串

\n 匹配与 (…)中的第 n个子模式匹配的文本。

~ 当前用户的主目录

~ name 用户 name的主目录

这个模式 pattern可能是由分隔符“ |”或“&”分隔的模式的序列,

例: pr !(*.o|core) | lp

引用

命令分隔符

& 后台执行

( ) 命令分组

| 管道

<>& 重定向符号

* ? [ ] ~ + - @ ! 文件名元字符

““ 中间的字符会逐字引用,除了 `` 替换命令和 $ 替换变量 .

‘’ 中间的所有字符都会逐字引用

\ 在其后的字符会按其原来的意义逐字采用 .如在 ””中使用 \”,\`,\$

\a 警告, \b退格 ,\f 换页 ,\n 换行 ,\r 回车 ,\ 制表符 ,\v 垂直制表符 ,

\nnn 八进制值 ,\xnn 十六进制值 ,\’ 单引号 ,\” 双引号 ,\\ 反斜线 ,

`` 命令的替换

$ 变量的替换

命令形式

Cmd & 在后台执行

Cmd1cmd2 命令序列,依次执行

{cmd1cmd2} 将命令做为一组来执行

(cmd1cmd2) 在子 shell中,将命令做为一组执行

Cmd1|cmd2 管道 将 cmd1的输出作为 cmd2的输入

Cmd1 `cmd2` 命令替换 用 cmd2的输出作为 cmd1的参数

Cmd1$(cmd2) 命令替换,可以嵌套

Cmd$((expression)) 运算替换。用表达式结果作为参数

Cmd1&&cmd2 逻辑与。如果 cmd1成功才执行 cmd2

Cmd1||cmd2 逻辑或。如果 cmd1成功则不会执行 cmd2

重定向形式

文件描述符:

0 标准输入 stdin 默认为键盘

1 标准输出 stdout

2 标准错误 stderr

Cmd >file 将 cmd的结果输出到 file(覆盖 )

Cmd >>file 将 cmd的结果输出到 file(追加 )

Cmd <file 从 file中获取 cmd 的输入

Cmd <<text 将 shell脚本的内容(直到遇见一个和 text一样的标记为止)作为 cmd的输入

Cmd <>file 在标准输入上打开文件以便读写

Cmd >&n 将输出发送到文件描述符 n。 ll >&1

Cmd m>&n 将本来输出的 m中的内容转发到 n中。 Ll 3>&2

Cmd >&- 关闭标准输出

Cmd <&n 获取输入

Cmd m<&n

Cmd <&- 关闭标准输入

在文件描述符和一个重定向符号间不允许有空格。

Cmd 2>file 将标准错误发到 file中

Cmd >file 2>&1 将标准错误和标准输出都发到 file

Cmd >f1 2>f2 将标准输出发到 f1,标准错误发到 f2

Cmd | tee files 将输出发送到标准输出和 files中

Cmd 2>&1 | tee files 将输出和错误同时发到标准输出和 files中

2.变量

变量替换

下列表达式中不允许使用空格。冒号是可选的,如果用冒号那么变量必须是非空的并设置了初始值。

Var=value… 将变量 var 设为 value

${var} 使用变量 var的值 如果变量和其后面的文本是分开的则可以不加大括号。

${var:-value} 如果变量 var已设置则使用它,否则使用值 value

${var:=value} 如果变量 var已设置则使用它,否则使用值 value并将 value赋给变量 var

${var:+value} 如果变量 var已设置则使用 value,否则什么也不使用

例 :echo ${u-$d}echo ${tmp-`date`}如果没设 tmp,则执行 date

内置变量

$# 命令行参数的个数

$? 上一条命令执行后返回的值

$$ 当前进程的进程号 (PID), 通常用于在 shell脚本中创建临时文件的名称

$0 第一个参数即命令名

$n 命令行上的第 n个参数

$* 将命令行上所有参数作为一个字符串

$@ 命令行上所有参数,但每个参数都被引号引起来

LINENO 脚本或函数内正在执行的命令的行号

OLDPWD 前一个工作目录(由 CD设置)

PPID当前 SHELL的父进程的进程号

PWD 当前工作目录(由 CD设置)

RANDOM[=n] 每次引用时产生一个随机数,如果给定 n则以整数 n开始

SECONDS 这个整型变量的值是指从这个 shell会话启动算起所过去的秒数。但它更有用的是用脚本中的计时。

例: start=$SECONDS

read answer

finish=$SECONDS

TMOUT 如果设置了该变量,则在没有输入的情况下经过 TMOUT变量所指定的秒数后, shell退出。值为 0时无效。

CDPATH

允许用户使用简单文件名作为 CD的参数,从而快速改变目录。设置方法与 PATH类似,通常在启动文件中设置。如果 CD的参数是一个绝对路径,则不会查询 CDPATH.

例: CDPATH=:/u1/nr:/u1/progs:

export CDPATH

cd nr

就会进到 nr中去。

注意:变量必须大写,定义后必须导出 .

数组

Kshell支持一维数组,最多支持 1024个元素。第一个元素为0。

Set –A name value0 value1 …

声明数组,指定的值就成为 name的元素。

${name[i]}  i为 0至 1023的值,可以是表达式。返回数组元素 i

${name} 返回数组元素0

${name[*]},${name[@]} 返回所有元素

下标 [*]和 [@]都可以提取整个数组的内容。但当它们在引号中使用时其行为是不同的。使用 @可生成一个数组,这个数组是原始数组的副本,而使用 *,则生成的仅仅是具有单一元素的数组 (或者是一个普通变量 )。

例: set -A a "${names[*]}"

set -A b "${names[@]}"

set|head -5

a[0]='alex helen jenny scott'

b[0]=alex

b[1]=helen

b[2]=jenny

b[3]=scott

${#name[*]} 返回数组元素个数

运算符

Kshell使用 C语言中的运算符。

+ 加 - 减 ! 逻辑非 ~ 按进制取反 * 乘 / 除 % 求余 <<左移 >>右移 <= 小于等于 >= 大于等于 <小于

>大于 == 相等 != 不等 &&逻辑与 || 逻辑或

3.内置命令

# 注释后面的一行

Break [n] 从 for while select until循环中退出或从 n次循环中退出

Case value in

Pattern1) cmds1

Pattern2) cmds2

Esac

类似于 select case.例 :

Case $<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />1 in

No|yea) response=1

break

-[tT]) table=TRUE

*) echo “unknown option”exit 1

Esac

Continue [n] 在 for while select until循环中跳过余下的命令,继续下一次循环 (或跳过 n次循环 )

Eval args args是一行包含 shell变量的代码 .eval首先进行变量扩展,并且运行由此产生的命令。在 shell变量包括了重定向符号,别名或其他变量时是有用的。

例 :

For option

Do

Case “$option” in

Save) out=’ >$newfile’

Show) out=’ | more’

Esac

Done

Eval sort $file $out

Exit [n] 退出脚本,退出状态为 n.

Export [name=[value]…]

定义全局变量,让其它 shell脚本也可以使用。无参数时输出当前定义的全局变量。

For x [in list]

Do

Commands

Done

使变量 x(在可选的值列表中 )执行 commands,省略时假定为 ”$@”位置参数

例 :

For item in `cat program_list`

Do

Grep –c “$item.[co]” chap*

Done

Function name{commands} 定义一个函数

If condition1

Then commands1

[elif condition2

Then commands2]

[else commands3]

Fi

条件执行语句。

Let expressions 执行一个或多个表达式。表达式中的变量前不必有 $.如果表达式中包含了空格或其他特殊字符,则必须引起来。

例: let “I = I + 1”或 let i=i+1

Read [var1[?string]] [var2 …] 从标准输入读入一行给相应的变量,并把剩余的单词给最后一个变量。 String为相应的提示信息 .无参时只等待一次输入。

Readonly [var1[=value] var2[=value] …] 设置只读变量 ,无参时显示所有只读变量

Return [n] 用于一个函数里面返回状态

repeat word

do

commands

done

指定一个命令序列执行的次数。

例:

repeat 3

do

echo "bye"

done

Select x [in list]

Do

Commands

Done

显示一列按 list中顺序编号的菜单项。让用户键入行号选择或按 return重新显示。

例 :

Ps3=”select thd item number:”

Select event in format page view exit

Do

Case “event” in

Format) nroff $file | lp

Page) pr $file | lp

View) more $file

Exit) exit 0

*)echo “invalid selection”

Esac

Done

输出为 :

1. format

2. page

3. view

4. exit

select the item number:

set [options arg1 arg2 …] 无参时输出所有已知变量的值。

Shift [n] 交换位置参数(如将 $2变为 $1) .如果给出 n,则向左移动 n个位置。通常用于在 while循环中迭代命令行参数。 N可以是一个整数表达式。

Sleep [n] 睡眠 n秒钟

Test condition 或 [ condition ] 判断条件,为真返回 0,否则返回非 0.

文件:

-a filename 如果该文件存在而为真

-d filename 如果该文件存在且为一个目录,则为真

-f filename 如果该文件存在且为一个常规文件,则为真

-L filename 如果该文件存在且为一个符号链接,为真

-r filename 如果该文件存在且用户对其有读取权限,真

-s filename 如果该文件存在且包含信息 (大于 0字节 ),真

-w filename 如果该文件存在且对其有写入权,真

-x filename 如果该文件存在且对其有执行权,真

File1 -nt file2 如果 file1存在且在 file2后修改则值为真 (指修改时间 )

File1 -ot file2 如果 file1存在且在 file2前修改则值为真 (指修改时间 )

字符串:

string 如果 string不为空字符串则值为真

-n string 如果 string字符长度大于 0则值为真

-z string 如果 string字符长度等于 0则值为真

string1=sting2 如果 string1等于 string2则值为真

string1!=string2如果 string1不等于 string2则值为真

string2可以是通配符模式。

整数比较:

-gt 大于; -ge 大于或等于; -eq 等于; -ne 不等于 -le 小于或等于 -lt 小于

组合:

! condition 如果 condition为假则为真

condition1 –a condition2 如果两个条件都为真则为真

condition1 –o condition2 如果两个条件有一个为真则为真

trap [[commands] signals] 如果接收到任何的信号 signals则执行命令 commands.如果完全忽略 commands则会重新设置由默认行为处理指定的信号。

例:

Trap “” 2 忽略信号 2(中断,通常是 ctrl+c)

Trap 2 恢复中断 2

Trap “rm –f $tmpexit” 0 1 2 15 当 shell程序退出,用户退出,按 ctrl+c或执行 kill时删除 $tmp.

Typeset [options] [var [var]…]设置变量属性

-u 将变量值中所有字母全部转换成大写

-l 将变量值中所有字母全部转换成小写

-i 将变量值设为整数类型 .-ix x为相应的进制,表示时为 x#变量值,可用于进制转换。

例: typeset -i2 vv vv=2echo $vv2#10

typeset -i 相当于 integer

-L width 在 width宽度之内左对齐

-R width 在 width宽度之内右对齐,前面空位用空格填充

-Z width 在 width宽度之内右对齐,变量如果是数字,则前面空位用零填充

如果忽略 width,将使用赋给这个变量的第一个值的宽度。

-x 设置一个变量全局。 typeset -x 相当于 export

-r 设置一个变量具有只读属性,在设置的同时或之前,要先给这些变量赋值。

例: typeset -r PATH FPATH=/usr/local/funcs

typeset -r 相当于 readonly

不带参数的 typeset可以列出变量和变量的属性。查看指定的变量属性可用 type|grep day

使用带有某一选项的 typeset来看看哪一个变量具有特定的属性: typeset -z

Unset var 删除一个变量,将它置为空

Until condition

Do

Commands

Done

执行命令 command直到满足条件 condition.

While condition

Do

Commands

Done

如果满足条件 condition则执行 commands

转载于:https://blog.51cto.com/gobdle/128601

相关资源:Kshell基础_kshell-Linux文档类资源-CSDN文库

原文链接:http://blog.51cto.com/gobdle/128601

文章知识点与官方知识档案匹配

C技能树首页概览

115478 人正在系统学习中

点击阅读全文

打开CSDN APP,看更多技术内容

社团检测之K-Shell算法_梦家的博客_k-shell算法

K-shell 方法递归地剥离网络中度数小于或等于 k 的节点,具体划分过程如下: 假设网络中不存在度数为 0 的孤立节点。从度指标的角度分析,度数为 1的节点是网络中最不重要的节点,因此首先将度数为 1 的节点及其连边从网络中删除。删除...

继续访问

...复杂网络中有影响力的重要节点_7:45am的博客_kshell...

改进的k-shell指标通过考虑从目标节点到网络核心的最短距离,该网络核心被定义为具有最高k-shell值的节点集。拥有相同k-shell数量的节点影响力被定义为: 其中,k s m a x ks_{max}ksmax​是最大的k-shell,S c S_cSc​是拥...

继续访问

K shell基础

K shell 精简教程,立马上手,让你发现k shell 如此简单

(python)改进的重力kshell的关键节点识别算法(KSGC)复现

一.算法介绍 KSGC是一种基于重力公式的关键节点识别方法(三步) 1.计算系数 2.重力公式 3.整体算法 二.代码 import networkx as nx import math def kshell(G): graph = G.copy() importance_dict={} level=1 while len(graph.degree): importance_dict[level]=[] while True:

继续访问

python实现k-shell复杂网络_10大必知的顶级python库_weixin_39867708的博...

作为数据科学和机器学习相关的研究和开发人员,大家每天都要用到 python。在本文中,我们将讨论一些 python 中的顶级库,开发人员可以使用这些库在现有的应用程序中应用、清洗和表示数据,并进行机器学习研究。我们将讨论以下 10 个库:...

继续访问

(python)改进的k-shell算法来识别关键节点 The improved k-shell...

k-shell算法中很多节点的kshell值相同,无法区分它们的重要性,因此对k-shell算法进行了改进,提出了IKS算法 二.算法思路 熵是用来表示信息的不确定性,熵越大表示信息的不确定性越大。 这篇文章将熵扩展到了复杂网络中,称为节点信息熵...

继续访问

解释 kshell语法中 双引号“”单引号 ‘’ 和反斜杠\ 的作用以及执行规则

解释 1.双引号““,使包含在里边的字符串失去意义,不起作用,除了四个字符$ ` " 和\外。 2.单引号 ` `,使包含在里边的字符串失去意义,不起作用。 3.反斜杠 \,使紧跟在 \后面的字符正常显示,转义符。 1.Example $ s=“hello” # assign a value to a variable $ print “$s” # output the value

继续访问

K-shell算法的简单实现(python)

k-shell的基本思想:K-shell 方法递归地剥离网络中度数等于 k 的节点,我们让k值为1,不断地让节点的度数值与其相比较,如果等于那么我们就将该节点从网络中剥离出去,然后继续重复比较和剥离的过程,直到度数值都不等于k,这就意味着我们需要将k增大,然后再 重复比较剥离和k值增大的过程。简单实现:# ks代表了一个简单的网络,里面由三个节点‘1’,‘2’,‘4’ ks={'1':['3','...

继续访问

K-Core, K-Shell &K-Crust傻傻分不清楚_siyan985的博客_k核...

而K-Shell由属于k-core但不属于(k+1)-core的结点和连边组成。比如,0-core就是整个图,因为每个结点的度都至少大于01-core就是把所有孤立结点丢掉,这样图中结点度都大于等于1. 0-shell就是那些孤立的结点组成的子图。

继续访问

(python编程)k-shell的实现

实现k-shell代码 def kshell(graph): importance_dict = {} ks = 1 while graph.nodes(): temp = [] node_degrees_dict = {} for i in G.degree(): node_degrees_dict[i[0]]=i[1] kks = min(node_degrees_dict.values.

继续访问

复杂网络K-Shell算法及其Python实现

The rest of the world may follow the rules,but i must follow my heart! 随心所欲即使其他人随波逐流。 K-Shell算法基本思想K-shell 方法递归地剥离网络中度数小于或等于 k 的节点,具体划分过程如下: 假设网络中不存在度数为 0 的孤立节点。从度指标的角度分析,度数为 1的节点是网络中最不重要的节点,因此首先将

继续访问

k-shell分解算法

K-shell 分解方法给出了节点重要性的一种粗粒化的划分。 其基本思想如下,假设边缘节点的 K-shell值为 1,然后往内一层层进入网络的核心,先去除网络 中度值等于 1 的所有节点以及连边。 若剩下的节点里面,仍有度值等于 1 的节点,则重复上述 *** 作,即去除这些节点和连边,直至所有节点的度值都大于 1,把这些去除的节点的 K-shell 值记为 1,也就是说这些节点均处于 ks 值为 1 的层。 然后依次去除度值小于或等于k 的节点及连边(k 为整数,k≥2),直到所有的节点都有对应的 ks 值为止。

shell脚本 read file

echo "" >$3 while read srcline d...

继续访问

shell使用中用到得参数详解(包括if中参数)(20200604更新)

1.shell脚本if判断变量介绍 [ -a FILE ] 如果 FILE 存在则为真 [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真 [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真 [ -e FILE ] 如果 FILE 存在则为真 [ -f FILE ] 如果 FILE 存在且是一个普通文件则为真 [ -g FILE ] 如果 FILE 存在且已经设置了SGID则为真 [ -h FILE ] 如果 FILE 存在且是一个符号连接则为真 [ -k FILE ]

继续访问

最新发布 Shell编程语法

shell编程的语法

继续访问

怎么写第一个kshell 以及如何执行kshell

如何写一个标准的kshell #cat helloworld.ksh #!/bin/usr/ksh print "hello world ,kshell" 如何执行shell #ksh helloworld.ksh hello world,kshell 或者 #./helloworld.ksh #需要执行权限x 如何查看执行结果 #print "$?" #打印出执行

继续访问

R语言-关键节点问题-方案四-K-shell分解法

K-shell分解法,O(N) step 1 查找网络中所有度为1的节点,并将这些节点及连接的边去掉。 step 2 经过步骤1后,网络中可能会出现新的度为1的节点,循环执行步骤1,直至所剩的网络中没有度为1的节点为止。 step 3 去掉网络中剩余度为2的节点,一次类推,重复循环执行。 step 4 重复以上 *** 作,直至网络中没有节点为

继续访问

热门推荐 shell脚本基本语法详解

编写shell脚本的时候,最前面要加上一行:#!/bin/bash,因为linux里面不仅仅只有bash一个解析器,还有其它的,它们之间的语法会有一些不同,所以最好加上这一句话,告诉系统要用这个解析器。一.shell变量shell变量和一些编程语言不同,一般shell的变量赋值的时候不用带“$”,而使用或者输出的时候要带“$”。加减乘除的时候要加两层小括号。括号外面要有一个“$”,括号里面的变量可以

继续访问

k-shell的python实现

import networkx as nx import matplotlib.pyplot as plt def get_K_sehll(G): # 为了不改变原图 graph = G.copy() k_shells = [] # k从最小度开始 degrees = (graph.degree[n] for n in graph.nodes()) k = min(degrees) while nx.number_of_nodes(graph)

继续访问

shell 中 '>' 与‘>>’ 的区别

在shell中 '>' 为创建: echo “hello shell” >out.txt '>>' 为追加:echo “hello shell” >>out.txt 当out.txt 文本不存在时,'>'与‘>>’都会默认创建out.txt文本,并将hello shell 字符串保存到out.txt中 当out.txt文本存在...

继续访问

这是我见过最牛逼的Shell脚本!

#!/bin/bash APP_NAME=&quot${0##*[\\/]}&quotAPP_VERSION=&quot1.0&quot#颜色定义 iSumColor=7 #颜色总数 cRed=1 #红色 cGreen=2 #绿色 cYellow=3 #黄色 cBlue=4 #蓝色 cFuchsia=5 #紫红色 cCyan=6 #青色(蓝绿色) cWhite=7

继续访问

k-core与k-shell的区别

一、问题描述: 在文章中看到k-core与k-shell的概念,将全局图中分成2-core与1-shell的概念? 结论: 图可以说明一切,如图所示: 1、2-core是包含蓝色与绿色的点,3-core会包含全部的点 2、1-shell指的是黄色的点 3、推断:任何一个图均可以分成k-core图与(k-1)-shell ...

继续访问

Shell脚本中$0、$?、$!、$$、$*、$#、$@等的意义

变量说明 $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 $@ 所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2"

继续访问

【shell脚本】shell脚本的三个小练习

1.利用shell脚本编写一个进度条 先介绍一下shell中printf命令的使用方法,与C语言风格类似,只不过在shell中是一个命令,所以不能通过圆括号传参,所有的参数用双引号括起来,第一个参数是格式控制,与C一致,参数之间不能用逗号,像命令传参一样,用空格隔开。 为了进度条能稍微美观一点,我们可以设置字体的颜色和背景色。在shell中,怎么做到呢? 颜色是通过添加专

继续访问

Shell脚本学习(一)Shell命令基础

Shell脚本学习(一)Shell命令基础

继续访问

k shell

shell

c/c++

K-shell 方法递归地剥离网络中度数等于 k 的节点,我们让k值为1,不断地让节点的度数值与其相比较,如果等于那么我们就将该节点从网络中剥离出去,然后继续重复比较和剥离的过程,直到度数值都不等于k,这就意味着我们需要将k增大,然后再 重复比较剥离和k值增大的过程。

简单实现:

# ks代表了一个简单的网络,里面由三个节点‘1’,‘2’,‘4’

ks={'1':['3','4'],'2':['1'],'4':['2','1']}

#ks1暂时存储我们的查询结果

ks1=[]

#k值的初始值为s=1

s=1

while ks:

#根据度数值是否和s相等,将找到的节点存入ks1

for k,v in ks.items():

if len(v)==s:

ks1.append(k)

#判断是否ks1是否含有值,如果含有即代表s不用增加,否则是s+1

if ks1!=None:

for k2 in ks1:

#如果记录的节点在网络中,则删除

if k2 in ks:

ks.pop(k2)

#删除的那个节点不应该出现在网络节点的度数中,所以我们要移除

for v in ks.values():

if k2 in v:

v.remove(k2)

else:

s+=1

#每一次进行完上面的代码都要进行一次清空 ,为下次判断是否为None做好条件

ks1.clear()

print(s)

1、Shell是命令解释器,所执行的文件有两种,一种是基于ELF文件格式的可执行文件,一种是基于Shell脚本格式的脚本文件。

2、不管是可执行文件还是shell脚本,如果存在于PATH变量所指明的路径中,shell会自动寻找相应的可执行文件,用户只需要输入可执行文件名或者脚本名即可执行。

3、如果可执行文件或者Shell脚本的存放位置不在PATH变量所指明的路径中,则需要通过".”来执行,比如下面的C语言写的hello world程序,需要输入./t才可以被shell运行。

要使用PowerShell命令打开一个exe文件,可以使用以下命令:

codeStart-Process "path-to-exe-file"

将 "path-to-exe-file" 替换为要打开的exe文件的完整路径。例如,如果要打开位于C:\Program Files\example\example.exe的exe文件,可以使用以下命令:

codeStart-Process "C:\Program Files\example\example.exe"

该命令将启动exe文件并打开相关的应用程序。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11787488.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存