文档库 最新最全的文档下载
当前位置:文档库 › linux笔记

linux笔记

★%ftp 主机名/IP /*登录ftp服务器,会提示输入用户名和密码*/

匿名登录:用户名输入:anonymous 密码输入:一个邮箱格式的任意字符串

FTP>ascii: 设定以ASCII方式传送文件(缺省值)

FTP>bell: 每完成一次文件传送,报警提示.

FTP>binary: 设定以二进制方式传送文件.

FTP>bye: 终止主机FTP进程,并退出FTP管理方式.

FTP>case: 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母. FTP>cd: 同UNIX的CD命令.

FTP>cdup: 返回上一级目录.

FTP>chmod: 改变远端主机的文件权限.

FTP>close: 终止远端的FTP进程,返回到FTP命令状态, 所有的宏定义都被删除.

FTP>delete: 删除远端主机中的文件.

FTP>dir [remote-directory] [local-file] 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件.

FTP>get [remote-file] [local-file] 从远端主机中传送至本地主机中.

FTP>help [command] 输出命令的解释.

FTP>lcd: 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录.

FTP>ls [remote-directory] [local-file] 同DIR.

FTP>macdef: 定义宏命令.

FTP>mdelete [remote-files] 删除一批文件.

FTP>mget [remote-files] 从远端主机接收一批文件至本地主机.

FTP>mkdir directory-name 在远端主机中建立目录.

FTP>mput local-files 将本地主机中一批文件传送至远端主机.

FTP>open host [port] 重新建立一个新的连接.

FTP>prompt: 交互提示模式.

FTP>put local-file [remote-file] 将本地一个文件传送至远端主机中.

FTP>pwd: 列出当前远端主机目录.

FTP>quit: 同BYE.

FTP>recv remote-file [local-file] 同GET.

FTP>rename [from] [to] 改变远端主机中的文件名.

FTP>rmdir directory-name 删除远端主机中的目录.

FTP>send local-file [remote-file] 同PUT.

FTP>status: 显示当前FTP的状态.

FTP>system: 显示远端主机系统类型.

FTP>user user-name [password] [account] 重新以别的用户名登录远端主机.

FTP>epsv4 off:EPSV4 命令的兼容性可能导致一些问题,解决方法就是将他关掉FTP>? [command]: 同HELP. [command]指定需要帮助的命令名称。如果没有指定command,ftp 将显示全部命令的列表。

FTP>! 从ftp 子系统退出到外壳。

目前我们在linux上缺省的ftp client基本上都是lukemftp,我看了一下suse, debian都是这个今天在登录f5的ftp server的时候遇到了兼容问题

比较老的linux系统的ftp client可以正常列目录,可是用lukemftp client就不能列目录,表现为PASV/PORT模式都无法连接

经过仔细比较发现不同点:

较老的linux系统的ftp client在进入PASV模式的时候如下:

227 Entering Passive Mode (xxx,xxx,xxx,xxx,xxx,xxx)

lukemftp client在进入PASV模式的时候如下:

229 Entering Extended Passive Mode (|||40862|)

经过检查发现是EPSV4 命令的兼容性所致:

epsv4

Toggle the use of the extended EPSV and EPRT commands on IPv4 connections;

first try EPSV / EPRT, and then PASV / PORT. This is enabled by default.

If an extended command fails then this option will be temporarily disabled

for the duration of the current connection, or until epsv4 is executed again.

有些较老的ftp对EPSV / EPRT 支持存在问题,因此需要执行epsv4关闭这两个命令,

使用老命令PASV / PORT 访问。

★tail命令用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。

注意:如果表示字节或行数的N值之前有一个”+”号,则从文件开头的第N项开始显示,而不是显示文件的最后N项。N值后面可以有后缀:b表示512,k表示1024,m表示1 048576(1M)。

语法

tail(选项)(参数)

选项

--retry:即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用;

-c或——bytes=:输出文件尾部的N(N为整数)个字节内容;

-f或;--follow:显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效;

-F:与选项“-follow=name”和“--retry"连用时功能相同;

-n或——line=:输出文件的尾部N(N位数字)行内容。

--pid=<进程号>:与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令;

-q或——quiet或——silent:当有多个文件参数时,不输出各个文件名;

-s<秒数>或——sleep-interal=<秒数>:与“-f”选项连用,指定监视文件变化时间隔的秒数;

-v或——verbose:当有多个文件参数时,总是输出各个文件名;

--help:显示指令的帮助信息;

--version:显示指令的版本信息。

参数

文件列表:指定要显示尾部内容的文件列表。

实例

tail file(显示文件file的最后10行)

tail +20 file (显示文件file的内容,从第20行至文件末尾)

tail -c 10 file (显示文件file的最后10个字符)

★.文件名

引入文件中内容,通常把共通函数的函数定义定义到里面,相当于java的import ★shell中if语句的使用

bash中如何实现条件判断?

条件测试类型:

整数测试

字符测试

文件测试

一、条件测试的表达式:

[ expression ] 括号两端必须要有空格

[[ expression ]] 括号两端必须要有空格

test expression

组合测试条件:

?-a: and

?-o: or

?!: 非

二、整数比较:

?-eq 测试两个整数是否相等

?-ne 测试两个整数是否不等

?-gt 测试一个数是否大于另一个数

?-lt 测试一个数是否小于另一个数

?-ge 大于或等于

?-le 小于或等于

命令间的逻辑关系

?逻辑与:&&

第一个条件为假第二个条件不用在判断,最总结果已经有第一个条件为真,第二个条件必须得判断

?逻辑或:||

三、字符串比较

?== 等于两边要有空格

?!= 不等

?> 大于

?< 小于

四、文件测试

?-z string 测试指定字符是否为空,空着真,非空为假

?-n string 测试指定字符串是否为不空,空为假非空为真

?-e FILE 测试文件是否存在

?-f file 测试文件是否为普通文件

?-d file 测试指定路径是否为目录

?-r file 测试文件对当前用户是否可读

?-w file 测试文件对当前用户是否可写

?-x file 测试文件对当前用户是都可执行

?-z 是否为空为空则为真

?-a 是否不空

五、if语法

if 判断条件 0为真其他都为假

?.单分支if语句

if判断条件;then

statement1

statement2

.......

fi

?.双分支的if语句:

if判断条件;then

statement1

statement2

.....

else

statement3

statement4

fi

Note:

if语句进行判断是否为空

等同于

[ ! "$name"]

[ -z "$name"]

Note:

使用if语句的时候进行判断如果是进行数值类的判断,建议使用let(())进行判断,对于字符串等使用test[ ] or [[ ]] 进行判断

(())中变量是可以不使用$来引用的

example:表述数字范围的时候可以使用if可以是使用case

if[ $x -gt90-o $x -lt100]

case$x in

100)

9[0-9])

这个语句的意思是如果$name为空,那么X=X成立折执行下面的结果;

if[ "X$name"!= "x"]

写脚本的时候很多时候需要用到回传命令,$?如果上一个命令执行成功,回传值为0,否则为1~255之间的任何一个

?0为真

?非0为假

条件测试的写法:

1、执行一个命令的结果

2、传回一个命令执行结果的相反值

3、使用复合命令((算式))

4、使用bash关键字 [[判断式]]

5、使用内置命令:test 判断式

6、使用内置命令:[判断式] 类似test

7、使用-a -o进行逻辑组合

8、命令&&命令

9、命令||命令

示例脚本(

写一段脚本,输入一个测验成绩,根据下面的标准,输出他的评分成绩(A-F)。

A: 90–100

B: 80–89

C: 70–79

D: 60–69

F: <60

#/bin/bash

#Verson:0.1

#Auther:lovelace

#Pragram:Thispragram is calculation your grade

#import an argument

read -p "Please input your grade:"x

declare -i x

#jugemet $x value is none or not

if[ "$x"== ""];then

echo"You don't input your grade...."

exit5

fi

#jugement the gread level

if[[ "$x"-ge"90"&&"$x"-le "100"]];then

echo"Congratulation,Your grade is A."

elif[[ "$x"-ge"80"&&"$x"-le "89"]];then

echo"Good,Your grade is B."

elif[[ "$x"-ge"70"&&"$x"-le "79"]];then

echo"Ok.Your grade is C."

elif[[ "$x"-ge"60"&&"$x"-le "69"]];then

echo"Yeah,Your grade is D."

elif[[ "$x"-lt"60"]];then

echo"Right,Your grade is F."

else

echo"Unknow argument...."

fi

执行结果:

[root@lovelace if]# ./grade.sh

Please input your grade:

You don't input your grade....

[root@lovelace if]# ./grade.sh

Please input your grade:53

Right,Your grade is F.

[root@lovelace if]# ./grade.sh

Please input your grade:88

Good,Your grade is B.

★touch命令有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方

式),它们的数据将原封不动地保留下来;二是用来创建新的空文件。

语法

touch(选项)(参数)

选项

-a:或--time=atime或--time=access或--time=use 只更改存取时间;

-c:或--no-create 不建立任何文件;

-d:<时间日期>使用指定的日期时间,而非现在的时间;

-f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;

-m:或--time=mtime或--time=modify 只更该变动时间;

-r:<参考文件或目录>把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;-t:<日期时间>使用指定的日期时间,而非现在的时间;

--help:在线帮助;

--version:显示版本信息。

参数

文件:指定要设置时间属性的文件列表。

实例

touch ex2

在当前目录下建立一个空文件ex2,然后,利用发现文件ex2的大小为0,表示它是空文件。

相关文档