您好,欢迎来到易榕旅网。
搜索
您的当前位置:首页Linux命令及Shell脚本使用

Linux命令及Shell脚本使用

来源:易榕旅网
1.cp命令拷贝整个目录下的文件

cp sample/* asmpl1

cp -i mm.c mm1.c /*如果mm1.c已经存在,则会给出提示*/

2、mv的作用:

(1)给文件重新命名:mv mm.c mm1.c /*将mm.c文件重新命名*/ (2)将文件移到其他目录下

3、cd ~ /*切换到登陆目录*/

4、less rr.c /*分屏显示rr.c的命令,按空格键,显示下一屏;按PgOn和PgUp分别回

到上一屏和下一屏;按下/可以查找所需内容,再按n可以到查找到的下一个内容*/

5、grep

-i 不区分大小写

-v 把没有的行显示出来

-c 统计满足条件的行并显示出来

grep -ivc max rr.c 统计出不带有不区分大小写max的行

6、wc(word count)

7、cat >rr.c 创建一个新文件rr.c,若文件存在则覆盖原来文件的内容 cat >> rr.c 若文件rr.c已经存在,则在文件rr.c末尾中添加新内容;如果rr.c文件不存在,则创建新文件

cat rr1.c rr2.c > rr.c 将rr1.c和rr.c文件的内容合并到rr.c中 8、sort 对即将输入的内容进行排序

sort rr.c 对rr.c的文件进行排序并输出

sort < rr.c> list 将文件rr.c进行排序,将排序的内容输出到list文件中 9、who | wc -l 统计登陆的用户数量 10、帮助命令

(1)man wc 显示wc的完整信息

(2)whatis wc 显示wc的一行功能描述

11、apropos copy 查找与copy(拷贝)有关的所有命令,这中间我们可以找到相关的命令,例如cp命令 12、“&” : 命令行尾输入,表示将命令的执行过程放到后台处理 例如:cc rr.c &

13、nohup:在退出系统后保持后台作业活动

一般的,如果退出系统,正在运行的后台作业就会终端,但是使用nohup命令就可以在退出系统后让作业继续运行,如:

$nohup find . –name “*.old” –print>old_file 2>find.err&

二、shell

1、shell变量

在shell程序中,或者是shell命令中,使用操作符$来对shell变量进行访问。例如,要显示某个变量时,可以输入:

$ echo $LOGNAME (系统将会显示当前用户名) 在某些场合下,为了明确表示对shell变量的引用,可以用花括弧{}或者双引号将变量括起来,例如:

$ echo ${LOGNAME}

$ echo ${LOGNAME}Aaaaaa

$ echo “$ LOGNAME” is very good

2、shell中引号的说明

单引号‘’、 双引号“”、 反引号`

(a)单引号’ :使用单引号时,shell将一对单引号之间的内容看成是纯粹的字符串信息,一对单引号之间可以包含更多的单引号。 you=”kkk”

echo ‘this is just a ‘test’, can $you tell me the time ?’ 将会显示this is just a ‘test’, can $you tell me the time ?, 它不会将$you替换成“kkk“, 同时‘test’也是作为字符串内容来处理的。

(b)双引号“ : 它将双引号之间的特殊字符作为shell中的含义来解释。 $ file=unixshell

$ echo “the content of `date` is in $file”

这个例子将会显示 the content of wed Aug 16 16:20:12 is in unixshell,这个例子中,’date’被解释成了当前时间的返回值,$file被解释成了unixshell字符串

(c)反引号` 用它来赋值时,表示变量中保存的是执行对应命令的结果。 name=`whoami` echo $name

这个时候显示的不是字符串whoami,而是执行字符串whoami的返回结果,当然,要先保证字符串是一个合法的命令。

3、变量的定义域

同其他的编程语言如C,pascal一样,shell的变量也有局部变量和全局变量的区别。通常在一个shell程序中,通过形如var1=abc方式定义的都是局部变量,只能在该shell程序的进程中起作用,要定义全局变量,需要在局部变量定义之后使用export 命令来将这个变量声明为全局的: export $var1

以下面的例子var.sh,我们来说明全局变量和局部变量的区别和使用

$ var1=csu

$ echo $var1 $ sh $ echo $var1 $ exit $ echo $var1 $ export $var1 $ sh

$ echo $var1

4、Shell预定义变量和环境变量

UNIX系统中,在shell中除了用户可以定义变量外,还存在一些系统变量,称为预定义变量和环境变量。在B-shell中,用set对这些变量进行赋值,而在csh中,用setenv这个命令 5、Shell

中命令的位置变量

CShell变量 变量的作用 $#argv $status $$ 位置参数的个数 表示参数列表 前一个命令返回的状态值 最近访问的后台进程pid值 当前shell进程的pid值 Bshell变量 $# $* $? $! $$ 6、shell中的变量替换

在shell编程中,有时候会遇到这种情况,一个变量在尚未赋值的时候,就被程序进行了输出处理,这样输出的变量将会得到一个空字符串的结果。为了避免这种情况的发生,shell中引入了变量替换的概念,在变量没有赋值的时候可以用一个预先定义的字符串来替换。 替换的形式有三种,列举如下:

$ {var:-word}

表示如果var已经被赋值,则取它的值;否则取word的值,但下面程序中var不改变。

$ {var:=word}

表示如果var已经被赋值,则取它的值,否则取word的值;同时将word赋给 var,下面程序中就用这个值。

$ {var:+word}

表示如果var已经被赋值,则取它的值,否则var变量置为空。

7、test命令的使用 8、shell程序的调试

shell程序可以使用 -v -x 选项对shell程序进行跟踪

(1)-v

当读入shell输入行时把它们显示出来,完成详细跟踪。Shell程序在完成这段程序执行时首先逐行读入执行的命令,并在标准输出上显示该命令要执行的实际内容,然后执行该命令。如果没有语法错误,执行将一直进行下去直到完成shell的执行。

假设有这么一个简单的shell,叫test1.sh date

echo $PATH

我们用-v参数来调试, 执行sh -v test1.sh那么输出就应该是: date

Mon Sep 8 9:55:01 Linux9 2003 echo $PATH

/usr/bin:/usr/ucb/bin:/home/user1

shell在执行date前先显示该命令然后显示date的执行结果,接着显示echo $PATH以及它的执行结果。

(2)-x

执行命令前先把命令和它们的参数显示出来 如果用-x参数来执行这个shell,执行 sh -x test1.sh则系统的输出将是: +date

Mon Sep 8 9:55:01 Linux9 2003

+echo /usr/bin:/usr/ucb/bin:/home/user1 /usr/bin:/usr/ucb/bin:/home/user1 date这一行没有参数,所以只显示命令

echo这一行有参数$path,被直接替换成了参数的值。

(3)长程序段的调试

在调试一个比较大的shell时,没有必要对整个shell程序都进行跟踪,

可以只对其中较为负责的部分进行跟踪,这时可以通过

set –v „„„ set +v或者set –x „„„„set +x来把需要跟踪的部分包含进来。 you=\"mi youyu\"

echo ${you:+mmu} echo $you

set -x data set +x

执行结果: mmu

mi youyu + data

./mm.sh: line 8: data: command not found

9、read

当Bsh遇到一个read语句时,在标准输入文件中读取数据直到一个换行符。此时Shell在解释输入行时,不进行文件名或变量的替换,只是简单地删除多余的空格。然后Shell将输入行的第一个字的内容给变量1,第二个给变量2,直到所有变量都赋上值或是输入行为空。若输入行中字的个数超过变量个数,Shell将把输入行中剩余的所有字的内容都赋给最后一个变量。当变量个数多于输入行字的个数时候,多于的变量将赋一个空值。输入行的每一个字是由空格分隔的一个字母和数字组成的字符串。可以通过重定向的方式从文件中读字符串。

10、tty

用于显示正在使用的终端名称

11、script

用于记录一个交互式会话

12、uname

uname –n :显示机器名称 uname –s:显示操作系统 uname –r:显示软件版本 uname –n:显示全部信息

13、bc

计算命令:要启动计算器,只需简单键入bc命令,要结束时键入文件结束

指令ctr+D

(1)简单计算: $bc 4+5 9

(2)浮点运算: $bc

19/3 /*运算结果默认为整数*/ 6

scale=3 /*设置运算结果保留3位小数*/ 19/3 6.33

scale=6 /*设置运算结果保留6位小数*/ 19/3 6.333333

scale=0 /*设置运算结果为整数*/ 19/3 6

(3)算数数制运算

14、cal

显示日历;如果没有参数,显示的是当前月份的日历,而不是当前年份的日

历;如果只提供一个参数,则该参数被当做年份;cal 9 1999;显示1999年9月的月历

15、groups

确定用户的用户组。如果键入不带用户id(登陆用户名)的groups命

令,则系统以您的用户组作响应;如果输入带用户id的groups命令,则返回该用户的用户组。

$groups staff

$groups elink1 elink1:staff

16、chmod:修改权限

(1)符号代码方式:存在三组权限,用户权限、用户组权限和其他用户权限。每一组使用第一个字符作为助记标识符,u代表用户,g代表用户组,o代表其他用户。若想同时设置三组权限,则使用一组表示全部的a

chmod u=rwx,g+x,o-x filename

备注:chmod命令中的符号代码的采用支持用户设置、添加或删除单个权限 (2)八进制代码方式:所有权限被完全重置 chmod 767 filename

(3)chmod命令包含一个递归选项-R,从当前目录开始,它修改位于该目录的全部文件和目录的权限。然后它进入子目录并递归的改变他们的全部的权限。

17、默认权限的设置

掩码最初是由系统管理员创建用户时设定的,在该用户创建一个目录或文件时,将从默认权限中去掉此设置

当一个新文件或目录被创建时,掩码中的数字被用于设置默认权限。目

录的默认权限是777,文件的默认权限是666 使用不带参数的umask命令,显示当前的用户掩码设置;使用带新掩码设置的umask命令,可以设置新的掩码,当在一个会话中设置用户掩码,只会在该会话期间暂时有效,退出系统,则设置返回默认值,要想让他永久化,则必须将它加入登陆文件

守护进程模式和系统的守护进程有区别吗?

登陆文件

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrd.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务