当前位置:文档之家› shell编程入门学习

shell编程入门学习

shell编程入门学习
shell编程入门学习

1.建立和运行shell程序

什么是shell程序呢? 简单的说shell程序就是一个包含若干行shell或者linux命令的文件. 象编写高级语言的程序一样,编写一个shell程序需要一个文本编辑器.如VI等.

在文本编辑环境下,依据shell的语法规则,输入一些shell/linux命令行,形成一个完整

的程序文件.

执行shell程序文件有三种方法

(1)#chmod +x file

(2)#sh file

(3)# . file

在编写shell时,第一行一定要指明系统需要那种shell解释你的shell程序,如:#! /bin/bash, #! /bin/csh,/bin/tcsh,还是#! /bin/pdksh .

2.shell中的变量

(1)常用系统变量

$ # :保存程序命令行参数的数目

$ ? :保存前一个命令的返回码

$ 0 :保存程序名

$ * :以("$1 $2...")的形式保存所有输入的命令行参数

$ @ :以("$1""$2"...)的形式保存所有输入的命令行参数

(2)定义变量

shell语言是非类型的解释型语言,不象用C++/JAVA语言编程时需要事先声明变量.给一

个变量赋值,实际上就是定义了变量.

在linux支持的所有shell中,都可以用赋值符号(=)为变量赋值.

如:

abc=9 (bash/pdksh不能在等号两侧留下空格)

set abc = 9 (tcsh/csh)

由于shell程序的变量是无类型的,所以用户可以使用同一个变量时而存放字符时而存放

整数.

如:

name=abc (bash/pdksh)

set name = abc (tcsh)

在变量赋值之后,只需在变量前面加一个$去引用.

如:

echo $abc

(3)位置变量

当运行一个支持多个命令行参数的shell程序时,这些变量的值将分别存放在位置变量里.

其中第一个参数存放在位置变量1,第二个参数存放在位置变量2,依次类推...,shell保留

这些变量,不允许用户以令外的方式定义他们.同别的变量,用$符号引用他们.

3.shell中引号的使用方法

shell使用引号(单引号/双引号)和反斜线("\")用于向shell解释器屏蔽一些特殊字符.

反引号(")对shell则有特殊意义.

如:

abc="how are you" (bash/pdksh)

set abc = "how are you" (tcsh)

这个命令行把三个单词组成的字符串how are you作为一个整体赋值给变量abc.

abc1='@LOGNAME,how are you!' (bash/pdksh)

set abc1='$LOGNAME,how are you!' (tcsh)

abc2="$LOGNAME,how are you!" (bash/pdksh)

set abc2="$LOGNAME,how are you!" (tcsh)

LOGNAME变量是保存当前用户名的shell变量,假设他的当前值是:wang.执行完两条命令后, abc1的内容是:$LOGNAME, how are you!.而abc2的内容是;wang, how are you!.

象单引号一样,反斜线也能屏蔽所有特殊字符.但是他一次只能屏蔽一个字符.而不能屏蔽

一组字符.

反引号的功能不同于以上的三种符号.他不具有屏蔽特殊字符的功能.但是可以通过他将

一个命令的运行结果传递给另外一个命令.

如:

contents=`ls` (bash/pdksh)

set contents = `ls` (tcsh)

4.shell程序中的test命令

在bash/pdksh中,命令test用于计算一个条件表达式的值.他们经常在条件语句和循环

语句中被用来判断某些条件是否满足.

test命令的语法格式:

test expression

或者

[expression]

在test命令中,可以使用很多shell的内部操作符.这些操作符介绍如下:

(1)字符串操作符用于计算字符串表达式

test命令| 含义

-----------------------------------------

Str1 = str2 | 当str1与str2相同时,返回True

Str1! = str2| 当str1与str2不同时,返回True

Str | 当str不是空字符时,返回True

-n str | 当str的长度大于0时,返回True

-z str | 当str的长度是0时,返回True

-----------------------------------------

(2)整数操作符具有和字符操作符类似的功能.只是他们的操作是针对整数

test表达式| 含义

---------------------------------------------

Int1 -eq int2|当int1等于int2时,返回True

Int1 -ge int2|当int1大于/等于int2时,返回True

Int1 -le int2|当int1小于/等于int2时,返回True

Int1 -gt int2|当int1大于int2时,返回True

Int1 -ne int2|当int1不等于int2时,返回True

-----------------------------------------

(3)用于文件操作的操作符,他们能检查:文件是否存在,文件类型等

test表达式| 含义

------------------------------------------------

-d file |当file是一个目录时,返回True

-f file |当file是一个普通文件时,返回True

-r file |当file是一个刻读文件时,返回True

-s file |当file文件长度大于0时,返回True

-w file |当file是一个可写文件时,返回True

-x file |当file是一个可执行文件时,返回True

------------------------------------------------

(4)shell的逻辑操作符用于修饰/连接包含整数,字符串,文件操作符的表达式test表达式| 含义

----------------------------------------------------------

! expr |当expr的值是False时,返回True

Expr1 -a expr2|当expr1,expr2值同为True时,返回True

Expr1 -o expr2|当expr1,expr2的值至少有一个为True时,返回True

-----------------------------------------------------------

注意:

tcsh shell 不使用test命令,但是tcsh中的表达式同样能承担相同的功能.tcsh 支持的表达式于C中的表达式相同.通常使用在if和while命令中.

tcsh表达式| 含义

-------------------------------------------------------

Int1 = int2 |当int1大于/等于int2时,返回True

Int1 int2 |当int1大于int2时,返回True

Str1 == str2 |当str1与str2相同时,返回True

Str1 != str2 |当str1与str2不同时,返回True

-r file |当file是一个可读文件时,返回True

-w file |当file是一个可写文件时,返回True

-x file |当file是一个可执行文件时,返回True

-e file |当file存在时,返回True

-o file |当file文件的所有者是当前用户时,返回True

-z file |当file长度为0时,返回True

-f file |当file是一个普通文件时,返回True

-d file |当file是一个目录时,返回True

Exp1 || exp2 |当exp1和exp2的值至少一个为True时,返回True

Exp1 && exp2 |当exp1和exp2的值同为True时,返回True

! exp |当exp的值为False时,返回True

5.条件语句

同其他高级语言程序一样,复杂的shell程序中经常使用到分支和循环控制结构, bash,pdksh和tcsh分别都有两种不同形式的条件语句:if语句和case语句.

(1)if语句

语法格式:

bash/pdksh用法:

if [expression1]

then

commands1

elif [expression2]

commands2

else

fi

tcsh用法:

if (expression1) then

commands1

else if (expression2) then

commands2

else

commands3

endif

含义:当expression1的条件为True时,shell执行then后面的commands1命令;当

expression1的条件为false并且expression2的条件满足为True时,shell执行

commands2命令;当expression1和expressin2的条件值同为false时,shell执行

commands3命令.if语句以他的反写fi结尾.

(2)case语句

case语句要求shell将一个字符串S与一组字符串模式P1,P2,...,Pn比较,当S与

某个模式Pi想匹配时,就执行相应的那一部分程序/命令.shell的case语句中字符

模式里可以包含象*这样的通配符.

语法格式:

bash/pdksh用法:

case string1 in

str1)

commands1;;

str2)

commands2;;

*)

commands3;;

esac

tcsh用法:

switch (string1)

case str1:

statements1

breaksw

case str2:

statements2

breaksw

default:

statements3

breaksw

endsw

含义:shell将字符串string1分别和字符串模式str1和str2比较.如果string1与str1匹配,则

shell执行commands1的命令/语句;如果string11和str2匹配,则shell执行commands2的命令/ 语句.否则shell将执行commands3的那段程序/命令.其中,每个分支的程序/命令都要以两个

分号(;;)结束.

当需要重复的某些操作时,就要用到循环语句.

(1)for语句

大家知道在很多编程语言中for语句是最常见.在shell中也不例外.for语句要求shell将包含

在这个语句中的一组命令连续执行一定的次数.

语法格式:

bash/pdksh

用法1:

for var1 in list

do

commands

done

含义:在这个for语句中,对应于list中的每个值,shell将执行一次commands代表的一组命令. 在整个循环的每一次执行中,变量var1将依此取list中的不同的值.

用法2:

for var1

do

setatements

done

含义:在这个for语句中,shell针对变量var1中的每一项分别执行一次statements代表的一组命令.当使用这种形式的语句时,shell认为var1变量中包含了所有的位置变量,而位置变量中

存放着程序的命令行参数值.也就是说,他等价于下列形式:

for var1 in " $@"

do

statements

done

tcsh用法:

在tcsh中没有for这个单词,与for语句起同样功能的是foreach语句

foreach name (list)

commands

end

举例:

for file ;bash/pdksh

do

tr a-z A-Zfile.caps

done

# ;tcsh

foreach file ( $ * )

tr a-z A-Z$file.caps

end

(2)while语句

while语句是shell提供的另一种循环语句. while语句指定一个表达式和一组命令.这个

语句使得shell重复执行一组命令,直到表达式的值为False为止.

语法格式:

while expression ;bash

do

statements

done

while (expression) ;tcsh

statements

end

举例:

count=1 ;bash

while [ -n "$ *"] ***

do

echo "this is a parameter number $count $1"

shift

count=`expr $count + 1`

done

set count = 1 ;tcsh

while ( " $ * " ! = "")

echo "this is a parameter number $count $1"

shift

set count = `expr $count + 1`

end

语句中shift命令的功能是将所有的命令行参数依次相左传递.

(3)until语句

until与while语句具有类似的语法格式和功能,不同的是while中expression的值为True时, shell执行命令组;而until中当expression的值为False时,shell才执行那组命令.

语法格式:

until expression

do

commands

done

举例:

count=1

until [ -z " $ * "] ***

echo "this is a parameter number $count $1"

shift

count='expr $count + 1'

done

情注意上述例子中带***号.在while中的表达式: -n string,他的含义是当string不是空

字符串时,表达式的值为True;在until中的表达式: -z string,他的含义是当string是空

字符串时,表达式的值为True.由此可见,两个程序对条件表达式的设置恰好是相反的.

(4)shift语句

bash和tcsh都支持shift命令.shift将存放在位置变量中的命令行参数,依次向左传递.例如

位置变量当前值为:

$1=file1 $2=file2 $3=file3

执行一次shift命令后,位置变量的值为:

$1=file2 $2=file3

还可以在shift命令中指定位置变量转移的次数, 如:

shift n

例子:

while [ "$1"]

do

if [ "$1"="-i"] then

infile=" $2"

shift 2

else if [ "$1"="-o"] then

outfile="$2"

shift 2

else

echo "Program $0 does not recognize option $1"

fi

done

tr a-z A-Z$outfile

(5)select语句

select语句是pdksh提供的一个独特的循环语句.他不同于前面介绍的循环语句.他不是

反复计算一个条件表达式,并依据表达式的值决定是否执行一组命令.select的功能是自动的

生成一个简单的文本菜单.

语法格式:

select menu [in list_of_items]

do

commands

done

含义:当执行一个select语句时,pdksh分别为每个列在list_of_items中的成员建立一个菜单选项.list_of_items既可以是一个包含多个选项的变量,也可以是直接列在程序中的一组选项.如果语句中没有提供list_of_items,select语句将使用位置变量作为list_of_items.

举例:

select menuitem in pick1 pick2 pick3

do

echo "are you sure you want to pick $menuitem"

read res ;接收用户的输入,并且将输入的值存放在特定变量里.

if [ $res=" y" -o $res=" Y"]

then

break ;用于退出while,for,select等循环语句

fi

done

(6)repeat语句

repeat语句是tcsh提供的独有的循环语句.使用repeat命令要求shell对一个命令执行一定的次数.

语法格式:

repeat count command

如;

foreach num ( $ *)

repeat $num echo -n " *"

echo " "

end

7.shell中的函数

shell允许用户定义自己的函数.函数是高级语言中的重要结构.shell中的函数于C或者其他

语言中定义的函数一样.与从头开始,一行一行地写程序相比,使用函数主要好处是有利于组织

整个程序.在bash中,一个函数的语法格式如下:

fname (){

shell comands

}

定义好函数后,需要在程序中调用他们.bash中调用函数的格式:

fname [parm1 parm2 parm3...]

调用函数时,可以向函数传递任意多个参数.函数将这些参数看做是存放他的命令行参数的

位置变量.

举例:

这个程序定义了4个函数:

upper ():将传递给他的文件中的字母转换成大写,并存放到同名的结尾为.out的文件中.

lower ():将传递给他的文件里的字母转换成小写,并存放到同名的结尾为.out的文件中.

print ():输出传递给他的文件的内容.

usage_error ():输出程序的帮助信息.

程序的主模块是个case条件语句,他根据命令行中第一个参数,决定程序要完成的功能,并调用相应的函数完成这一功能.

upper (){

shift

for i

do

tr a-a A-Z$1.out

rm $1

mv $1.out $1

shift

done; }

lower () {

shift

for i

do

tr A-Z a-z$1.out

rm $1

mv $1.out $1

shift

done; }

print() {

shift

for i

do

lpr $1

shift

done; }

usage_error() {

echo " $1 syntax is $1"

echo ""

echo " where option is one of the following"

echo " p--to print frame files"

echo " u--to save as uppercase"

echo " l--to save as lowercase";}

case $1 in

p | -p)print $@;;

u | -u)upper $@;;

l | -l)lower $@;;

*) usage_error $0;;

esac

------------------------------------------------------------------------------

总结

利用shell编程是提高系统管理工作效率的重要手段,学好shell跟了解系统基本命令和管理工具的使用方法同样重要!

附:

A.bash中常用的命令

命令| 含义

-------------------------------------------------------------------------------

Alias |设置命令别名

Bg |将一个被挂起的进程在后台执行

cd |改变用户的当前目录

exit |终止一个shell

export |使作为这个命令的参数的变量及其当前值,在当前运行的shell的子进程中可见

fc |编辑当前的命令行历史列表

fg |让一个被挂起的进程在前台执行

help |显示bash内部命令的帮助信息

history |显示最近输入的一定数量的命令行

kill |终止一个进程

pwd |显示用户当前工作目录

unalias |删除命令行别名

--------------------------------------------------------------------------------

B.bash中常用的系统变量

变量| 含义

------------------------------------------------------------------------------- EDITOR,FCEDIT |Bash的fc命令的默认文本编辑器

HISTFILE |规定存放最近输入命令行文件的名字HISTSIZE |规定命令行历史文件的大小

HOME |当前用户的宿主目录

OLDPWD |用户使用的前一个目录

PATH |规定bash寻找可执行文件时搜索的路径

PS1 |命令行环境中显示第一级提示符号

PS2 |命令行环境中显示第二级提示符号

PWD |用户当前工作目录

SECONDS |当前运行的bash进程的运行时间(以秒为单位)

Shell命令

Shell Shell 就是用户与操作系统内核之间的接口,起着协调用户与系统的一致性和在用户与系统之间进行交互的作用。 4.1.1 Shell 的基本概念 1. 什么是S hell Shell 就是用户与操作系统内核之间的接口,起着协调用户与系统的一致性和在用户与系统之间进行交互的作用。Shell 在L inux 系统中具有极其重要的地位,如图4-1 所示

第 4 章 Shell 与 V i 编辑器 - 71 - diff grep vi multitasking sh gcc device hardware interface kernn e l TCP/IP stack bash utilii t es 图 4-1 Linux 系统结构组成 2. Shell 的功能 Shell 最重要的功能是命令解释,从这种意义上来说,Shell 是一个命令解释器。Linux 系统中的所有可执行文件都可以作为 Shell 命令来执行。将可执行文件作一个分类,如表 4-1 所示。 表 4-1 可执行文件的分类 部的解释器将其解释为系统功能调用并转交给内核执行;若是外部命令或实用程序就试图 在硬盘中查找该命令并将其调入内存,再将其解释为系统功能调用并转交给内核执行。在 查找该命令时分为两种情况: 用户给出了命令路径,Shell 就沿着用户给出的路径查找,若找到则调入内存,若没有 则输出提示信息; 用户没有给出命令的路径,Shell 就在环境变量 PATH 所制定的路径中依次进行查找, 若找到则调入内存,若没找到则输出提示信息。 图 4-2 描述了 S hell 是如何完成命令解释的。

ubuntu shell 使用命令大全

ubuntu shell 使用命令大全 前言 下面的命令大都需要在控制台/ 终端/ shell 下输入。 控制台, 终端, 和shell 意味着同样一件事- 一个命令行界面,他可以用来控制系统。 打开一个控制台: 应用程序--> 附件--> 终端 任何一个使用'sudo' 作为前缀的命令都需要拥有管理员(或root) 访问权限。所以你会被提示输入你自己的密码。 安装升级 查看软件xxx安装内容 dpkg -L xxx 查找软件库中的软件 apt-cache search 正则表达式 或 aptitude search 软件包 显示系统安装包的统计信息 apt-cache stats 显示系统全部可用包的名称 apt-cache pkgnames 显示包的信息 apt-cache show k3b 查找文件属于哪个包 apt-file search filename 查看已经安装了哪些包 dpkg -l 查询软件xxx依赖哪些包 apt-cache depends xxx 查询软件xxx被哪些包依赖 apt-cache rdepends xxx 增加一个光盘源 sudo apt-cdrom add 系统升级 sudo apt-get update (这一步更新包列表) sudo apt-get dist-upgrade (这一步安装所有可用更新) 或者 sudo apt-get upgrade (这一步安装应用程序更新,不安装新内核等) 清除所有已删除包的残馀配置文件 dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P 如果报如下错误,证明你的系统中没有残留配置文件了,无须担心。 dpkg: --purge needs at least one package name argument Type dpkg --help for help about installing and deinstalling packages [*]; Use `dselect' or `aptitude' for user-friendly package management; Type dpkg -Dhelp for a list of dpkg debug flag values; Type dpkg --force-help for a list of forcing options; Type dpkg-deb --help for help about manipulating *.deb files; Type dpkg --license for copyright license and lack of warranty (GNU GPL) [*]. Options marked [*] produce a lot of output - pipe it through `less' or `more' ! 编译时缺少h文件的自动处理 sudo auto-apt run ./configure 查看安装软件时下载包的临时存放目录

Linux Shell常用命令总结

1. find find pathname -options [-print -exec -ok] 让我们来看看该命令的参数: pathname find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。 -print find命令将匹配的文件输出到标准输出。 -exec find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {} \;,注意{}和\;之间的空格,同时两个{}之间没有空格, 注意一定有分号结尾。 0) -ok 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行 find . -name "datafile" -ctime -1 -exec ls -l {} \; 找到文件名为datafile*, 同时创建实际为1天之内的文件, 然后显示他们的明细. find . -name "datafile" -ctime -1 -exec rm -f {} \; 找到文件名为datafile*, 同时创建实际 为1天之内的文件, 然后删除他们. find . -name "datafile" -ctime -1 -ok ls -l {} \; 这两个例子和上面的唯一区别就是-ok会在每个文件被执行命令时提示用户, 更加安全. find . -name "datafile" -ctime -1 -ok rm -f {} \; 1) find . -name 基于文件名查找,但是文件名的大小写敏感. find . -name "datafile*" 2) find . -iname 基于文件名查找,但是文件名的大小写不敏感. find . -iname "datafile*" 3) find . -maxdepth 2 -name fred 找出文件名为fred,其中find搜索的目录深度为2(距当前目录), 其中当前目录被视为第一层. 4) find . -perm 644 -maxdepth 3 -name "datafile*" (表示权限为644的, 搜索的目录深度为3, 名字为datafile*的文件) 5) find . -path "./rw" -prune -o -name "datafile*" 列出所有不在./rw及其子目录下文件名为datafile*的文件。 find . -path "./dir*" 列出所有符合dir*的目录及其目录的文件. find . \( -path "./d1" -o -path "./d2" \) -prune -o -name "datafile*" 列出所有不在./d1和d2及其子目录下文件名为datafile*的文件。 6) find . -user ydev 找出所有属主用户为ydev的文件。 find . ! -user ydev 找出所有属主用户不为ydev的文件,注意!和-user之间的空格。 7) find . -nouser 找出所有没有属主用户的文件,换句话就是,主用户可能已经被删除。 8) find . -group ydev 找出所有属主用户组为ydev的文件。

PowerShell基本语法及常用命令

PowerShell基本语法及常用命令 Powershell常用命令 1.Get-Command 得到Powshell所有命令 2.Get-Process 获取所有进程 3.Set-Alias 给指定命令重命名如:Set-Alias aaa Get-Command 4.Set-ExecutionPolicy remotesigned 设置powershell可直接执行脚本文件一般脚本文件以.ps1结尾执行脚本文件直接输入文件地址即可执行脚本文件中只写命令即可 5.Get-Help get-* 查询以get开头的命令Get-Help *service* Get-Help Get-Command 获取Get-Command命令的基本用法 6.Get-Member 获取对象属性如: $var | Get-Memeber 访问$var属性直接$var.T oString() PS中的变量定义 不需要定义或声明数据类型 在变量前加"$" 定义变量的规则 -变量可以是数字$123 -变量可以是字符串$abc -变量可以是特殊字符${@1b} 内置的变量 -$pshome -$home

-$profile 变量赋值: $var=123 $var="aaaaaa" 取变量值: $var 变量赋值方法:Set-Variable var 100 取值方法: Get-Variable var 清空值: Clear-Variable var 删除变量Remove-Variable var 取多个变量如var1 var2 var3地值: Get-Variable var* 另一种赋值方法$var1="bbb" $var2="$var $var1" 结果$var2="aaaaaa bbb" $var2='$var $var1' 结果$var2="$var $var1" $date=Get-Date 获取当前时间 $date.AddDays(3) 当前时间加3天 排序用法 Get-Process | Sort-Object ws 根据WS值由小到大排序 Get-Process | Sort-Object | fl Get-Process | Sort-Object | Format-List 以列表形式显示数据 导入导出文件 Get-Process > c:\aa.txt

shell常用命令

目录 一、目录操作 a) ls--查看文件/目录: 常用:ls –l 查看详细文件列表 b) pwd--查看当前目录: c) cd--改变工作目录: 常用①:cd ../ 跳转到上一级目录 常用②:cd /boot/ 跳转到指定目录 d) mkdir--创建目录: 常用:mkdir 123 创建一个空文件夹 e) rm--删除文件/目录: 常用: rm -rf 123 删除目录文件夹,并且目录下的文件一并删除。 f) mv--移动文件/目录改名、移动: 移动文件: mv 1.sh ./123 → mv 目标文件移动至某目录 重名命文件:mv 1.sh 123.sh → mv 原文件欲改后文件 g) ln--建立软连接和硬连接: 软连接:ln -s 123.sh ../ → ln -s 源文件欲放置路径 硬连接:ln 123.sh ../ → ln 源文件欲放置路径 h) rmdir--删除空目录: 二、文件操作 a)cat--查看文件内容,若文件不存在,创建对应文件: 常用:cat 1.txt b)cp--拷贝文件、目录: 备份:cp 123.sh 1.sh → cp 源文件目标文件 复制至某路径:cp 123.sh ../ → cp 源文件目标路径 c)chmod--修改文件权限: 常用:chmod 777 1.sh 给1.sh最高权限 一般模式:chmod +rw 1.sh 仅当前用户下1.sh具有可读写权限 d)touch--创建文件: 常用:touch ./1.sh → touch 路径+名称 f)vim--创建并打开文件: 常用:vim ./1.sh → vim 路径+名称 g)find--在指定目录查找符合条件的文件: 以[文件名+类型]寻找:find ./ -name “*.*”→ find 路径 -nama

shell常用命令大全

一、文件目录类命令 1、查看联机帮助信息 man命令如:#man ls info命令如:#info cd 2、列出当前目录或指定目录的文件名和目录名 ls[选项]文件或目录 常用[选项]如下: -a:显示所有的文件,包括以“.”开头的隐含文件。 -l:长格式输出 -m:宽行输出 -F:以各种符号表示不同的文件类型 --color:彩色输出 -R:递归输出 3、touch 功能:修改文件的创建日期或以当前系统日期创建一个空文件。 -d:修改文件的日期。 #touch–d2*******test.txt 4、cp 功能:复制文件 用法:cp[选项]源文件或目录目标文件或目录 选项: a:该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地

拷贝目录,其作用等于dpR选项的组合。 -d拷贝时保留链接。 -f删除已经存在的目标文件而不提示。 -i和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。 -p此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。 -r若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。 5、mv 功能:给文件或目录改名或将一个文件或目录移到另一个目录 用法:mv[选项]源文件或目录目标文件或目录 -i交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。-f禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不再起作用。 6、rm 功能:删除文件或目录 用法:rm[选项]文件… -f强制删除 -r指示rm将参数中列出的全部目录和子目录均递归地删除。 -i进行交互式删除

shell常用命令详解及基本操作

Linux网络嵌入架构工程师培训班第二课 1、介绍: 文件系统和磁盘分区是Linux操作系统下非常重要的概念,文件系统是所有文件和文件夹的基础,是用户创建文件的基本的要求,磁盘是文件系统的基础,文件系统是逻辑概念,磁盘是物理概念,文件系统以磁盘为基础存储文件。 2、内容: 介绍Linux文件系统管理的基本概念。Linux可支持的文件系统有很多,其默认的文件系统为ext3。讲解Linux下文件系统的挂载mount操作,如何有效地在双操作系统下挂载Windows下分区,如何挂载光盘,移动U盘等外部设置。 Minix(只可以使用64MB的硬盘分区) Linux最早的操作系统。 Cat /etc/fstab iocharset=gb2312 rw dump ext 文件系统: ext是第一个专门为Linux使用的文件系统类型,称为扩展文件系统。它在1992年4月完成,对Linux的发展起到了重要作用。但是其在性能和兼容上存在许多缺陷,现在已经很少用了。 ext2 文件系统: ext2文件系统应该说是Linux正宗的文件系统,早期的Linux都是用ext2,但随着技术的发展,大多Linux的发行版本目前并不用这个文件系统了;比如Redhat和Fedora 大多都建议用ext3 ,ext3文件系统是由ext2发展而来的。对于Linux新手,我们还是建议您不要用ext2文件系统;ext2支持undelete(反删除),如果您误删除文件,有时是可以恢复的,但操作上比较麻烦;ext2支持大文件;ext2文件系统的官方主页是:https://www.doczj.com/doc/6915109611.html,/ext2.html ext3 文件系统: 是由ext2文件系统发展而来; ext3 is a Journalizing file system for Linux(ext3是一个用于Linux的日志文件系统),ext3支持大文件;但不支持反删除(undelete)操作;Redhat和Fedora都力挺ext3;至于ext3文件系统的更多特性,请访问《Linux 文件系统(filesystem)资源索引》; jsf 文件系统: jsf提供了基于日志的字节级文件系统,该文件系统是为了面向事务的高性能系统而开发的。在AIX上,jsf已经受住了考验。它是可靠,快速和容易使用的。2000年2月,IBM公司宣布在一个开放资源许可证下,移植Linux版的jsf文件,jsf 也是一个有大量用户安装使用的企业级文件系统,它具有可伸缩性和健壮性,与非日志文件系统相比,它的优点是其快速的重启能力。Jsf能够在几秒或几分钟内就把文件系统恢复到一致状态,虽然jsf主要为满足服务器(从单处理器系统到高级多处理器和群集系统)的高吞吐量和可靠性需求设计的,但是jsf还可用于想得到高性能和可靠性的客户机的配置,因为在系统崩溃时,jsf能提供快速的文件系统重启时间,所以它是因特网文件服务器的关键技术。使用数据库日志处理技术,

shell&vi_命令大全

Shell 系统设置: 1.tty 显示当前的终端号 2.stty 显示和设置终端参数 stty –a 附加显示参数 stty [command] ‘[key]’设置键值 3.date 显示日期 date –u MMddhhmm 修改时间到MM月dd日hh时mm分 4.time 显示时间 5.cal 显示日历 cal [month] [year] 显示X年X月日历,参数只有1个数字默认为年份 6.who 按字母顺序列出当前注册到计算机上的用户 who am i 打印当前用户的信息 who –T 附加显示用户终端状态 who –r 显示系统的运行级 7.w 显示目前在线用户以及这些用户当前工作 8.cu 连接另一台unix主机 cu –s [speed] [num] 按照传输速度连接另一台unix主机 cu –l [port] 按照制定得通讯线路连接另一台unix主机 9.finger 显示用户信息 finger –T (与who类似) 10.news 显示/usr/news目录中文件找到的系统新闻 news –a 显示所有项 news –n 只显示你没有看到的当前文件的名字 11.man [title] 查看联机手册 man [–M path] [[section]title] path为所需手册数据库的路径,section为一个数字表示的 手册分类,1代表可执行命令,2代表系统呼叫,3代表标 准函数等等 man –k [keyword] 用来将含有keyword的title列出来 12.clear 清楚终端屏幕 13.lock 给终端加锁 lock [-time] 给终端加锁多长时间 14.passwd 修改当前用户口令 15.write [username] 向其他用户发送消息,不允许应答,*以return结束 16.hello [username] unix系统普通用户使用与write相同,超级用户输入 的内 容立即出现在对方屏幕上 17.mesg [-y/-n] 控制终端是否可写 18.mail [username] 发送,阅读电子邮件,quit或exit退出

shell脚本常用命令

1.目录相关操作: cd [相对路径或绝对路径]切换目录。例:cd /var/spool/mail 将切换到/var/spool/mail 目录下去,可以使用相对路径或绝对路径,cd ..是返回上一层目录,cd ~是返回自己的主目录,cd –代表前一个工作目录 pwd显示目前所在目录 mkdir [-mp] 目录名称新建新的目录.–m配置文件案的权限,-p直接建立多层目录 rmdir [-p] 目录名称删除空的目录. –p连同上一层”空的”目录也一并删除 ls [-aAdfFhilnrRSt] 目录名称 ls [--color={never,auto,always}] 目录名称 ls [--full-time] 目录名称查看文件与目录: -a全部的文件,连同隐藏文件一起列出; -A 列出全部文件(连同隐藏文件,但不列出..和.这两个目录); -d仅列出目录本身,而不是列出目录内的文件数据; -f直接列出结果,而不进行排序; -F 根据文件、目录等信息给予附加数据结构; -h 将文件容量以易读的方式列出; -i 列出inode号码; -l 列出长数据串,包含文件的属性与权限等数据; -n列出UID与GID,而非用户与用户组的名称; -r 将排序结果反向输出; -R 连同子目录内容一起列出; -S 以文件容量大小排序,而不是用文件名排序; -t 依据时间排序,而不是文件名排序; --color=never不要依据文件特性给予颜色显示; --color=always 显示颜色; --color=auto 让系统自行依据设置来判断是否给予颜色; --full-time 以完整时间模式输出; --time={atime,ctime} 输出访问时间或改变权限属性时间而非内容改变时间;

SSH(Secure_Shell_Client)常用命令

SSH(Secure Shell Client)常用命令 一、ls 只列出文件名(相当于dir,dir也可以使用) -A:列出所有文件,包含隐藏文件。 -l:列表形式,包含文件的绝大部分属性。 -R:递归显示。 --help:此命令的帮助。 二、cd 改变目录 cd /:进入根目录 cd :回到自己的目录(用户不同则目录也不同,root为/root,xxt为/home/xxt cd ..:回到上级目录 pwd:显示当前所在的目录 三.less 文件名:查看文件内容。 tail -f 日志名:查看日志 四.q 退出打开的文件。 五.上传文件:rz 选择要传送的文件,确定。 六.下载文件:sz 指定文件名,enter敲,即下载到了secureCRT/download目录下。七:删除文件:rm 删除文件,rmdir 删除空目录。rm -rf 强行删除非空目录 八.显示最近输入的20条命令:history 20 九.获得帮助命令--help查看命令下详细参数:如:rz --help ,sz --help 。 十.cd 进入某个文件夹的命令: mkdir+文件夹名创建某个文件夹的命令 sz+文件名从服务器端向本机发送文件的命令 rz 从本机向服务器端传送文件的命令 ll 列出当前目录下的所有文件,包括每个文件的详细信息 dir 对当前文件夹 vi 打开当前文件 十一.在编辑某个文件的时候: a 切换到编辑模式 ctrl+c 退出编辑模式 dd 删除整行 :q 退出当前文件 :w 写入并保存当前文件 -f 强行xx的参数。。。

其它命令: 1.ps -ef //查看server的进程,以列表形式显示的server进程。 ps 显示当前在系统运行的进程/usr/bin/ps [选项] -e 显示每个现在运行的进程-f 生成一个完全的列表 2.ant -buildfile CMS_MainTrunk.xml //build 包 3.vi test.txt //浏览文件内容 i {insert写输入} esc 退出insert :wq! write 保存并退出vi模式 :q! 不保存退出vi模式 4、secureCRT中乱码解决:Options->SessionOptions->Appearance->font把default改成UTF-8,就可以显示中文字体了。 6.hostname:查hostname 7.ifconfig 查询主机IP 8.在S-CRT下用ctrl+c 和ctrl+v: Options---Global Options---Edit default Settings进去后点Terminal---Emulation然后点Mapped Keys,点中低部的,use windows copy and paste key,点确认。 9.进入vi的命令: vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 10.移动光标类命令: }:光标移至段落开头 {:光标移至段落结尾 nG:光标移至第n行首 n+:光标下移n行 n-:光标上移n行 n$:光标移至第n行尾 H :光标移至屏幕顶行 M :光标移至屏幕中间行 L :光标移至屏幕最后行 0:(注意是数字零)光标移至当前行首 $:光标移至当前行尾 11.屏幕翻滚类命令: Ctrl+u:向文件首翻半屏 Ctrl+d:向文件尾翻半屏 Ctrl+f:向文件尾翻一屏//好像是r Ctrl+b;向文件首翻一屏

Linux系统下Shell命令行快捷键实用技巧

Linux系统下Shell命令行快捷键实用技巧发布时间:2008.02.0206:18来源:赛迪网作者:兔儿岭 #Ctrl+A-Go to the beginning of the line you are currently typing on #Ctrl+E-Go to the end of the line you are currently typing on 切到命令行开始|结尾 #Ctrl+L-Clears the Screen,similar to the clear command 清屏,类似于clear命令 #Ctrl+U-Clears the line before the cursor position.If you are at the end of the line,clears the entire line. 清除光标以前 #Ctrl+H-Same as backspace 退格键backspace #Ctrl+R-Let’s you search through previously used commands 从命令历史中找 #Ctrl+C-Kill whatever you are running 终止命令 #Ctrl+D-Exit the current shell 退出shell #Ctrl+Z-Puts whatever you are running into a suspended background process.fg restores it. ?? #Ctrl+W-Delete the word before the cursor 清除光标之前 #Ctrl+K-Clear the line after the cursor 清除光标之后 #Ctrl+T-Swap the last two characters before the cursor #Esc+T-Swap the last two words before the cursor

Windows Shell命令大全

Windows Shell命令大全 1.命令: rundll3 2.exe shell32.dll,Control_RunDLL 功能: 显示控制面板 2.命令: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,1 功能: 显示“控制面板->辅助选项->键盘”选项视窗 3.命令: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,2 功能: 显示“控制面板->辅助选项->声音”选项视窗 4.命令: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,3 功能: 显示“控制面板->辅助选项->显示”选项视窗 5.命令: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,4 功能: 显示“控制面板->辅助选项->鼠标”选项视窗 6.命令: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,5 功能: 显示“控制面板->辅助选项->常规”选项视窗 7.命令: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @1 功能: 执行“控制面板->添加新硬件”向导。 8.命令: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter 功能: 执行“控制面板->添加新打印机”向导。 9.命令: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1 功能: 显示“控制面板->添加/删除程序->安装/卸载”面板。 10.命令: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,2 功能: 显示“控制面板->添加/删除程序->安装Windows”面板。 11.命令: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,3 功能: 显示“控制面板->添加/删除程序->启动盘”面板。 12.命令: rundll32.exe syncui.dll,Briefcase_Create 功能: 在桌面上建立一个新的“我的公文包”。 13.命令: rundll32.exe diskcopy.dll,DiskCopyRunDll 功能: 显示复制软盘视窗 14.命令: rundll32.exe apwiz.cpl,NewLinkHere %1 功能: 显示“建立快捷方式”的对话框,所建立的快捷方式的位置由%1参数决定。 15.命令: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,0

linux_Shell(脚本)编程入门_实例讲解详解

linux Shell(脚本)编程入门实例讲解详解 为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具。Shell不仅仅是命令的收集,而且是一门非常棒的编程语言。您可以通过使用shell 使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性、可维护性和便携性比效率更重要的任务。 下面,让我们一起来看看shell是如何工作的: 建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在bash的大姐,bourne shell中运行)。 如同其他语言一样,通过我们使用任意一种文字编辑器,比如nedit、kedit、emacs、vi等来编写我们的shell程序。程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。当编辑好脚本时,如果要执行该脚本,还必须使其可执行。 要使脚本可执行: chmod +x filename 然后,您可以通过输入: ./filename 来执行您的脚本。 注释 在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。我们真诚地建议您在程序中使用注释。如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚本的作用及工作原理。 变量 在其他编程语言中您必须使用变量。在shell编程中,所有的变量都由字符串组成,并且您不需要对变量进行声明。要赋值给一个变量,您可以这样写: 变量名=值 取出变量值可以加一个美元符号($)在变量前面:

Linux常用shell命令大全

第2讲 Linux常用shell命令 使用LINUX虚拟机的快照3 以下文章由影视网收集于提供https://www.doczj.com/doc/6915109611.html, 实验目的: 掌握Linux常用命令 实验步骤: 一、基本命令 1、立即关机并重启动,执行如下命令: shutdown -r now 或者reboot 2、立即关机,执行如下命令: shutdown -h now 或者poweroff 3、等待2分钟关机并重启动,执行如下命令: shutdown -r 2 4、等待2分钟关机,执行如下命令: shutdown -h 2 5、使用当前用户的历史命令,执行如下操作: history 将会显示使用过的每条命令及其序号,可利用序号重复执行该命令。 例如输入!1并回车,将会重复执行第1条历史命令。 也可用上下光标键调出某条历史命令,然后按回车键重复执行。还可用上下光标键调出某条历史命令,修改后按回车键执行。 6、清除当前用户的历史命令,执行如下命令: history -c 此时用向上光标键将会调不出任何历史命令。 7、命令提示键:输入命令开头一个或几个字母,然后按1次【Tab】键,系统会自动补全能够识别的部分;再按1次【Tab】键,系统显示出符合条件的所有命令供用户选择。 例如输入group后按两次键,将会显示以group开头的所有命令。 8、显示内核版本号,执行如下命令: uname -r 注:内核版本号不同于软件发行版本号。例如,RHEL 5.4的内核版本号是2.6.18-164.el5,软件发行版本号是5.4。 9、清除屏幕,执行如下命令: clear 10、显示操作系统时钟,执行如下命令: date 11、加载光盘到/media,执行如下命令: mount /dev/cdrom /media 12、卸载光盘,执行如下命令: umount /dev/cdrom 或者 umount /media 注意:不要在/media或其子目录中执行此命令,否则将会出现“设备忙错误”。 13、查看存储设备,执行如下命令: fdisk –l 14、加载U盘到/media

Android shell 系统命令大全

adb install filename.apk (安装filename.apk) adb install -r filename.apk (保留已设定数据,重新安装filename.apk) adb -s emulator-5554 install filename.apk (指定安装APK 套件在5554 的Android 仿真器中) # 移除APK 应用程序 adb uninstall package adb uninstall -k package (移除程序时,保留数据) 此package名称不是安装APK套装时的文件名或显示在仿真器中的应用程序名称 可以先到/data/data或data/app目录下,查询想移除的package名称 adb shell ls /data/data 或/data/app (查询package名称) exit adb uninstall package (移除查询到的Package) $adb devices (显示目前有多少个仿真器正在执行) $adb -s (指定模拟器来操作操作) adb -s emulator-5554 install email.apk $adb install apkfile (安装APK 应用程序) adb install email.apk $adb uninstall package (移除APK 应用程序) adb uninstall com.android.email $adb shell (进入android shell命令模式) $ls $dmesg (查看Android Linux Kernel 运行信息) ls - 显示文件目录 cd - 进入目录 rm - 删除文件 mv - 移动文件 mkdir - 产生目录 rmdir - 删除目录

Linux主要shell命令详解

Linux主要shell命令详解 shell是用户和Linux操作系统之间的接口。Linux中有多种shell,其中缺省使用的是Bash。本章讲述了shell的工作原理,shell的种类,shell的一般操作及Bash的特性。 什么是shell Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。 shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层。当从shell或其他程序向Linux传递命令时,内核会做出相应的反应。 shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。 有一些命令,比如改变工作目录命令cd,是包含在shell内部的。还有一些命令,例如拷贝命令cp和移动命令rm,是存在于文件系统中某个目录下的单独的程序。对用户而言,不必关心一个命令是建立在shell内部还是一个单独的程序。 shell 首先检查命令是否是内部命令,若不是再检查是否是一个应用程序(这里的应用程序可以是Linux本身的实用程序,如ls和rm,也可以是购买的商业程序,如xv,或者是自由软件,如emacs)。然后shell在搜索路径里寻找这些应用程序(搜索路径就是一个能找到可执行程序的目录列表)。如果键入的命令不是一个内部命令并且在路径里没有找到这个可执行文件,将会显示一条错误信息。如果能够成功找到命令,该内部命令或应用程序将被分解为系统调用并传给Linux内核。 shell的另一个重要特性是它自身就是一个解释型的程序设计语言,shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。shell编程语言简单易学,任何在提示符中能键入的命令都能放到一个可执行的shell程序中。 当普通用户成功登录,系统将执行一个称为shell的程序。正是shell进程提供了命令行提示符。作为默认值(TurboLinux系统默认的shell是BASH),对普通用户用“$”作提示符,对超级用户(root)用“#”作提示符。

最全Linux常用命令大全

最全Linux常用命令大全 1.Linux管理文件和目录的命令 1.1 pwd命令 该命令的英文解释为print working directory(打印工作目录)。输入pwd命令,Linux会输出当前目录。 1.2 cd命令 cd命令用来改变所在目录。 cd / 转到根目录中 cd ~ 转到/home/user用户目录下 cd /usr 转到根目录下的usr目录中-------------绝对路径 cd test 转到当前目录下的test子目录中-------相对路径 1.3 ls命令 1.4 cat命令 cat命令可以用来合并文件,也可以用来在屏幕上显示整个文件的内容。 cat snow.txt 该命令显示文件snow.txt的内容,ctrl+D退出cat。 1.5 grep命令 grep命令的最大功能是在一堆文件中查找一个特定的字符串。 grep money test.txt 以上命令在test.txt中查找money这个字符串,grep查找是区分大小写的。 1.6 touch命令 touch命令用来创建新文件,他可以创建一个空白的文件,可以在其中添加文本和数据。 touch newfile 该命令创建一个名为newfile的空白文件。 1.7 cp命令 cp命令用来拷贝文件,要复制文件,输入命令:

cp 1.8 mv命令 mv t.txt Document 把文件t.txt 移动到目录Document中。 1.9 rm命令 rm t.txt 该命令删除文件t.txt 1.10 rmdir命令 rmdir命令用来删除目录。 2有关磁盘空间的命令 2.1 mount命令 mount命令的功能是挂载文件系统,可以挂载硬盘、光盘、软盘,也可以挂载NFS网络文件系统。这个命令的标准用法如下:mount –t 设备类型存放目录

相关主题
文本预览
相关文档 最新文档