linux过滤掉空格-轻松解决-利用Linux过滤掉空格的方法 (linux过滤命令)

教程大全 2025-07-15 08:06:16 浏览

在Linux系统中,空格常常是个头疼的问题。无论是文件名中的空格、路径中的空格,还是文本中的空格,都可能会造成各种问题,如无法正常访问文件、无法执行命令、无法解析变量等等。因此,如何过滤掉空格,成为了Linux系统管理员和开发人员经常面临的一项任务。本文将介绍几种利用Linux过滤掉空格的方法,帮助读者轻松解决这个问题。

方法一:使用双引号

在Linux系统中,使用双引号是一种最简单、最直观的方法来过滤掉空格。例如,如果你要打印一个文件名带空格的文件,可以使用以下命令:

$ echo “my file.txt”

这里,使用了双引号将文件名括起来,这样就能够正确地输出文件名,而不会将空格作为分隔符。

同样的,这种方法也可以用于其他需要过滤空格的场合,如使用变量或命令参数中含有空格的情况。例如:

$ myvar=”my file.txt”

$ touch “$myvar”

这个例子中,使用了双引号将变量$myvar括起来,以正确创建文件名带空格的文件。

方法二:使用单引号

除了双引号外,单引号也是一种可供选择的方法来过滤空格。与双引号不同的是,单引号中的所有字符都会被当做字符串的一部分,不会被解析成特殊字符。因此,单引号可以用于保留字符串原始格式,如下所示:

$ echo ‘my file.txt’

如果在单引号中需要插入单引号字符本身,可以使用双引号将其括起来,如下所示:

$ echo ‘She sd: “Hello!”‘

这个例子中,单引号包裹着整个字符串,但其中包含有双引号字符。为了保留这个字符,需要使用双引号将其括起来。

方法三:使用转义字符

在Linux系统中,还可以使用转义字符来过滤掉空格。转义字符是指以反斜杠(\)开头的字符,它告诉系统该字符后面的字符不是特殊字符,而是普通字符。例如,如果你要创建一个带空格的文件,可以使用以下命令:

$ touch my\ file.txt

在这个例子中,使用了反斜杠来转义空格字符,以正确创建文件名带空格的文件。

同样的,转义字符也可以用于其他需要过滤空格的场合,如在命令参数中使用带空格的字符串。例如:

$ echo “She sd: \”Hello!\””

这个例子中,使用了双引号将整个字符串括起来,并使用反斜杠来转义其中的双引号字符,以正确输出字符串。

方法四:使用通配符

在Linux系统中,还可以使用通配符来过滤掉空格。通配符是指用于匹配、查找文件等操作的字符,如星号(*)、问号(?)等。如果你想要查找文件名中带有空格的文件,可以使用以下命令:

这个命令中,星号(*)匹配任意字符,加上单引号和空格组成了空格的表示方法,从而正确匹配含有空格的文件。

同样的,通配符也可以用于其他需要过滤空格的场合,如使用带空格的变量或命令参数。例如:

$ myvar=”my file.txt”

$ mkdir ${myvar// /_}

这个例子中,使用了一种高级字符串替换方法,将变量$myvar中的空格替换成下划线(_),从而正确创建带空格的目录名。

结语

通过本文介绍的以上几种方法,读者可以轻松解决Linux系统中的空格过滤问题。在使用这些方法时,需要特别留意变量、命令参数等场合,确保空格不会被系统解析成不该解析的字符。此外,在实际使用过程中,还可以根据需要结合不同方法来处理空格问题,以达到更好的效果。

相关问题拓展阅读:

Linux 常用命令(要求全而精)

1、linux分区

–在linux里面所有的设备、任何东西,在linux看来都是文件。

–文件在它看来,有两种形式:

之一种是字符型(键盘输入、打印机);

第二种是二进制型(硬盘、光驱、U盘滑让森)

–linux中所有硬件

–手动分区

–A、至少有两个分区

/ 根分区

SWAP 交换分区(物理内存大小的两倍)

–B、个人桌面分区

/boot 128MB is enough

/tmp(用于光盘刻录)

2、linux目录说明

–/dev/xxyN

–xx (分区所在设备类型:hd–IDE硬盘 sd–SCSI硬盘)

–y (标明分区所在设备

例如:/dev/hda 之一个IDE硬盘 或 /dev/hdb 第二个IDE硬盘 或 /dev/sdb 第二个SCSI硬盘)

–N (数字代表分区:1-4–主分区或扩展分区;逻辑分区从5开始!

例如:/dev/hda3 之一个IDE硬盘上的第三个主分区或扩展分区

/dev/sdb6 第二个SCSI硬盘上的第二个逻辑分区)

3、linux目录结构

/ 根目录,更高级别

/bin 系统基本命令存放目录(/usr/bin)

/boot linux的内核及引导系统程序文件存放目录(如:vmlinuz、initrd.img)

一般情况下,GRUB或LILO系统引导管理也位于这个目录

/dev 设备文件存储目录,如声卡、光驱…

/ect 存放系统设置文件(如用户账号密码、 服务器 配置文件等)

/home 普通用户家目录,默认存放目录

/lib 库文件存放目录

/lost+found 在ext2或ext3文件系统中,当系统以外崩溃或机器意外关机,而产生一些文件碎片放在这里。

当系统启动的过程中,fsck工具会检查这里,并修复已经损坏的文件系统。

有事喜用发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或者移文件到原来的位置上。

/media 即插即用型存储设备的挂载点自动在这个目录下创建。

如USB盘系统自动挂在后,会在这个目录下产生一个目录;

类似cdrom的目录

/mnt 存放挂载存储设备的挂载目录,如cdrom等目录

/opt 表示可选的意思,有些软件包也会被安装在此,也就是自定义软件包,

比如OpenOffice,或者一些我们自己编译的软件包,也可安装此处。

/proc 操作系统运行时,进程(正在运行的程序)信息及内核信息(比如CPU、硬盘分区、内存信息等)存放在此。

/proc目录是伪装的文件系统proc的挂载目录,proc并不是真正的文件系统

/Root linux超级权限用户root的家目录

/in 大多是涉及系统管理的命令的存放,只有超级权限用户root才可执行命令存放,普通用户无权限执行此目录下的命令

与 /usr/in; /usr/X11R6/in; usr/local/in 目录相似

(in,只有root权限才能执行)

/tmp 临时文件目录,有时用户滑首运行程序的时候,会产生临时文件。

/var/tmp目录和此目录相似

/usr 系统存放程序的目录,如命令、帮助文件等。这个目录下有很多的文件和目录。

大部分Linux发行版提供的软件包都安装在此,涉及服务器的配置文件就安装在/ect中。

/usr/share/fonts 字体目录

/usr/share/man 或 /usr/share/doc 帮助目录

/usr/bin 或 /usr/local/bin 或 /usr/X11R6/bin 普通信亩用户可执行文件目录

/usr/in 或 /usr/local/in 或 /usr/X11R6/in 超级权限用户root可执行命令存放目录

/usr/include 程序头文件存放目录

/var (vary)此目录经常变动

/var/log 用来存放系统日志

/var/www 用来定义Apache服务器站点存放

/var/lib 用来存放一些库文件,如MySQL的,以及MySQL数据库的存放地。

4、基本命令

–查看帮助 –help –?

–查看详细帮助 man

–登录 login

–退出窗口 exit

–关机 shutdown

–重启 reboot

–初始化 init (run level -/etc/inittab),0-6看第六部分的g

–进入根目录 cd /

–回上层目录 cd ..

–相对路径 cd dev

–绝对路径 cd /dev

–查用户名 whoami

–查当前目录 pwd

–列出当前目录内容 ls

l(树详细显示目录内容)

m(横列显示目录内容,是屏幕长度显示)

a(列出全部文件,包括隐藏文件)

S(以文档大小排序)

–创建目录 mkdir dname

–删除目录 rmdir dname

rm -r-(递归删除该目录下所有内容,询问每个准备删除的文件)

rm -rf ***-(强制删除该目录下所有内容,不询问)

–创建空白文件 touch

(ps:从技术的角度来讲,linux的文件后缀名没有任何意义)

–复制 cp

cp -r **1 **2 (复制1到2中)

–移动 mv

mv -t **1 **2 (把2移动到1中)

–编辑文本 vi

–查看文本 cat 由之一行开始显示文本内容

tac 从最后一行显示,可以看出 tac 是 cat 的倒着写

more 一页一页的显示文档内容

less 与 more 类似,可以往前翻页

head 只看头几行

N(数字,可根据行数显示)

tail 只看后几行

N(数字,可根据行数显示)

nl 显示的时候,顺序输出行号

od 以二进制位的方式读取档案内容

–查找文本 find

如查找rc.local find /etc -name *.local

–查找命令信息及其位置 whereis 命令

如 whereis ls

–查看环境变量 echo $SHELL

如 echo $PATH (分大小写:分隔符是:,windows是echo %path%;)

–链接 ln

如 ln joe.txt a (硬链接,如同复制一个新文件,joe.txt删除后,a还存在)

a是链接的名称,a和joe.txt同步,然后a的内容和joe.txt一样

joe.txt改变,a也跟着变

如 ln -s joe.txt b (软链接,如同创建一个快捷方式,joe.txt删除后,b不存在)

–wc 统计指定文本文件的行数、字数、字符数

–grep(很常用) 在指定的文本文件中查找指定的字符串

grep 字符串 文件名

–col 见管道..

—-信息显示命令—-

–stat 显示指定文件的相关信息

–who、w 显示在线登录用户

–whoami 显示用户自己的身份

–id显示当前用户的id信息

–hostname 显示主机名称

–uname 显示操作系统信息

–dmesg 显示系统启动信息

–du显示指定的文件(目录)已使用的磁盘空间

–df显示文件系统磁盘空间的使用情况

–free 显示当前内存和交换空间的使用情况

–fdisk -l 显示磁盘信息

–locale 显示当前语言环境

5、挂载点(mount 设备目录 挂载目录)

–访问设备 (那设备当成一个文件,和另外一个文件夹进行绑定)

–例如挂载光驱:步骤 ———–OK!直接访问光驱内容

–卸载挂载设备(umount /dev/cdrom)–注意必须先退出挂载目录,否则出现”device is busy”错误.

6、startup-shutdown(linux启动流程)

–A、boot sequence(important) linux启动过程

a. load bios(hardware information)

b. read MBR’s config to find out the OS

(MBR–Master Boot Record,硬盘之一个物理扇区,柱面0、磁头0、扇区1,包含主引导程序和硬盘分区表)

c. load the kernel of the OS

(加载为kernel核心的OS)

d. init process starts…

(启动linux之一个进程init)

e. execute /etc/rc.d/sysinit

(执行系统最重要的配置文件,后台启用进程)

(rc.d–run command)

f. start other modules(stc/modules.conf)

(开启各种模块,如内存管理模块、硬盘管理模块)

g. execute the run level scripts

(系统启动是分层次的,根据情况执行,每个层次之间没关系)

0 – 系统停机状态

1 – 单用户工作状态 root

2 – 多用户状态(没有NFS)

3 – 多用户状态(有NFS)

NFS – Network File System 网络文件系统,联网系统

4 – 系统未使用,留给用户

5 – 图形界面

6 – 系统正常关闭并重新启动

如:cd /etc — 有rc0.d、rc1.d、rc2.d、rc3.d、rc4.d、rc5.d等多个文件夹,保存着各个层次执行的进程文件

h. execute /etc/rc.d/rc.local (重要)

(保存其它进程脚本,如tomcat自动启动,要修改此配置文件)

i. execute /bin/login

(登录界面)

j. shell started…

7、vi 文本编辑器

–两种模式:命令模式 编辑模式

(切换到编辑模式)

a append-光标后添加

i insert-光标前插入

o open-另起一行编辑

esc (切换回命令模式)

:w 存盘

:wq 存盘退出

:q 退出

:q! 不存盘退出

dd 删除其中一行

dw 删除一个单词

(sudo gedit 文本 常用linux下的文本编辑器,比vi好用)

8、用户设置

–切换用户(switch user) su username

小技巧:直接exit切换

–添加用户 useradd username (分配到某个用户组)

(创建后会自动在/home目录下创建该新用户的文件夹,如/home/username)

–设置密码 passwd username

–查看用户信息 more password

如新增的用户信息:username:x:500:500::/home/username:/bin/bash

之一个数字,代表用户组,当添加用户没有指定用户组时,系统会创建一个和用户ID一样的组ID;

第二个数字:用户ID号;

用户的目录是/home/username;

用户的SHELL是/bin/bash

(命令—>SHELL—>kenrel内核)

SHELL有多种类型,如csh、bash(常用)、bsh、ksh、sh(最原始)

–添加用户组 groupadd groupname

–查看用户组信息 more group

–删除用户组 groupdel groupname

–修改用户 usermod

–删除用户 userdel username

然后把/home的文件夹删除了 rm -rf 文件夹

9、权限file privilege

–linux把文件的权限分成四种:r:read w:write x:execute -:none

如:-rw-r–r–

lrwxrwxrwx

drwxr-xr-x

drwxr-xr-x

之一个数字’-‘代表文件,其余是文件夹,后9位分为3组,每组有四种权限设置rwx-

之一位表示文件所有者

第二位表示和所有者在同一用户组的用户

第三位表示不在同一用户组的用户权限

–设置权限 (随意应用,灵活组合!)

1、普通用法

–添加权限

如:-rw-r–r– —> -rwxr-xr-x

–删除权限

如:-rwxr-xr-x —> -rw-r–r–

–给自己添加权限

如此类推,组–g,其他人–o

如:chmod u+x -rw-r–r– —> -rwxr–r–

chmod g+x -rw-r–r– —> -rw-r-xr–

chmod o+x -rw-r–r– —> -rw-r–r-x

2、专业用法 chmod 755/777

–原理,八进制转二进制

如755,, rwx r-x r-x

,, rwx rwx rwx

–修改所有者权限 chown (change owner)

如:chown 原来文件 file1 的所有者是 root,改成joe的

chown joe file1

10、管道(把上一个命令执行的结果交给下一个命令)

–使用方法:

命令1|命令2|命令3……|命令n

–使用举例

$ls -Rl /etc | more

(如 ls -Rl /etc (在控制台模式下,无法返回前面过去的信息),因此需要管道执行该查询,实现分页的工作, ls -Rl /etc | more)

$cat /etc/passwd | wc

(显示文件结果,再数数有多少行)

$cat /etc/passwd | grep lrj

(显示文件结果,再查找包含lrj的行)

#dmesg | grep eth0

(显示系统启动的信息,再查找包含eth0的行–真正含义,检查网卡执行信息是否正常)

$man bash | col -b > bash.txt

语法:col

补充说明:在许多UNIX说明文件里,都有RLF控制字符。当我们运用shell特殊字符”>”和”>>”,把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col指令则能有效滤除这些控制字符。

参数:

b 过滤掉所有的控制字符,包括RLF和HRLF。

f 滤除RLF字符,但允许将HRLF字符呈现出来。

x 以多个空格字符来表示跳格字符。

l 预设的内存缓冲区有128列,您可以自行指定缓冲区的大小。

$ls -l | grep “^d”

(用正则表达式筛选出目录列表中 头字母为’d’ 的内容–目录)(^是正则表达式开头部分)

$ls -l * | grep “^-” | wc -l

(列出目录列表中 头字符为’-‘的内容–文件,并统计显示的行数wc -l)

11、其他命令

–wall(warning all) 通知所有人

a.命令替换

如 wall `date`、 cd ‘pwd’、mkbootdisk $(uname -r)

b.重定向

重定向输出:

如 ls > cmd.txt ,把文件写到cmd.txt,不输出在控制台

ls >> cmd.txt ,把文件追加写到cmd.txt

重定向输入:

如 wall > cmd.txt,把文本内容发给所有人

12、修改系统的默认系统级别

常用3和5

3 – 多用户状态(有NFS)

NFS – Network File System 网络文件系统,联网系统

5 – 图形界面

PS.设置用户权限: sudo chmod 777 目录

4表示读,2表示写,1表示执行.

之一位表示文件所有者,第二位表示和所有者在同一用户组的用户,第三位表示不在同一用户组的用户权限.

755表示文件所有者可读写,执行.

第二位5表示与所有者在同一用户组的可读,可执行,不可写.

第三位5表示其它组可读,可执行,不可写. 转载于Joewalker在本人空间也有详细说明

自己进去看历滑段看肢誉让雹吧,貌似自己可以下载下来

1)文件操作

vi FileName 打开文件 FileName,并将光标置于之一行首。

vi +n FileName 打开文件 FileName,并将光标置于第 n 行首。

vi + FileName 打开文件 FileName,并将光标置于最后一行。

vi + /pattern File 打开文件 File,并将光标置于其中之一个于 pattern 匹配的字符串处。

vi –r FileName 在上次正用 vi 编辑 FileName 发生系统崩溃后,恢复FileName。

vi File1 … Filen 打开多个文件,依次对之进行编辑。

:%!xxd 按十六进制查看当前文件

:%!xxd -r 从十六进制返回正常模式

:n1,n2 co n3 将 n1 行到 n2 行之间的内容拷贝到第 n3 行下。

:n1,n2 m m3 将 n1 行到 n2 行之间的内容移至第 n3 行下。

:n1,n2 d 将 n1 行到 n2 行之间的内容删除。

:n1,n2 w filename 将 n1 行到 n2 行之间的内容保存到文件 filename 中

:n1,n2 w! Command 将文件中n1行到n2行的内容作为 Command的输入并执行之,局渣派

若不指定 n1、n2,则将整个文件桐贺内容作为 Command 的输入。

:r! Command 将命令 Command 的输出结果放到当前行。

:nr 文件> 把文件>插入到第n行

:so 文件> 读取文件>,再执行文件里面的命令梁乱(文件中的命令应该都是一些ex命令)

:l1,l2w 文件> 把第l1和第l2行之间的文本写到文件>中去

:w >> 文件> 添加到文件>末尾. 也可以使用行号

:e! 重新编辑当前文件,忽略所有的修改

·(、、)对应显示

% 显示当前(、 、)的对应项

) :光标移至句尾

( :光标移至句首

}:光标移至段落开头

{:光标移至段落结尾

·(、、)内数据选择

daB 删除{}及其内的内容 (在非v可视模式下)

diB 删除{}中的内容

ab 选择()中的内容

ib 选择()中的内容( 不含() )

aB 选择{}中的内容

iB 选择{}中的内容( 不含{} )

·语法提示与自动补齐

插入模式下的单词自动完成

行自动完成(超级有用)

·设置ctags

#ctags -f /usr/share/vim/vim63/funcs.tags -R /opt/j2sdk/src /usr/src/kernels/2.6.9-5.EL-i686

^p 自动补齐上下文已有相近项

^n 自动补齐~/.tags中的相近函数

按^t退出函数

:pta 函数名 预览窗口快速打开相应函数所在文件,并将光标定位在对应函数的开头

K 显示光标下的C函数的man说明手册

·变量定位

gd 转到光标下局部变量的定义处

Gd 转到光标下全局变量的定义处

·编译选项

:cn 命令会把你带到下一个出错地点,而不考虑它在什么文件里。

:cc 命令会向你显示当前错误的编译器输出信息;

:cl 会生成一个列有项目所有错误的列表,以供浏览这些错误

3>光标移动

·字符

h 光标左移一个字符。

l 光标右移一个字符。

·字

w 或 W 光标右移一个字至字首。

B 或 b 光标左移一个字至字首。

E 或 e 光标右移一个字至字尾。

·句} 光标移至句尾。

( 光标移至句首。

·段) 光标移至段落开头。

{ 光标移至段落结尾。

·行k 或 Ctrl+p 光标上移一行。

j 或 Ctrl+n 光标下移一行。

Enter 光标下移一行。

nG 光标移至第 n 行首。

n+ 光标下移 n 行。

n- 光标上移 n 行。

n$ 光标移至第 n 行尾。

0 光标移至当前行首。

利用Linux过滤掉空格的方法

$ 光标移至当前行尾。

·屏幕

H 光标移至屏幕顶行。

M 光标移至屏幕中间行。

L 光标移至屏幕最后行。

Ctrl+u 向文件首翻半屏。

Ctrl+d 向文件尾翻半屏。

Ctrl+f 向文件尾翻一屏。

Ctrl+b 向文件首翻一屏。

nz 将第 n 行滚至屏幕顶部。不指定 n 时将当前行滚至屏幕顶。

4}插入

# 在文件中插入行号(不是显示行号,是插入!)

:g/^/exec “s/^/”.strpart(line(“.”).” “, 0, 4)

·光标

i 在光标前插入。

a 在光标后插入。

·行

I 在当前行首插入。

A 在当前行尾插入。

o 在当前行之下一新行插入。

O 在当前行之上新开一行插入。

5)替换

r 替换当前字符。

R 替换当前字符及其后的字符,直至按 ESC 键。

s 从当前光标位置处开始,以输入的文本代替指定数目的字符。

S 删除指定数目的行,并以所输入的文本代替。

6)修改

ncw 或 nCW 修改指定数目的字符。

nCC 修改指定数目的行。

:r filename 将文件 filename 插入在当前行之下

7)查找替换

/ 把狭义单词 写到 搜索命令行

/ 把广义单词 写到 搜索命令行

:g/str/s/str1/str2/g

之一个g表示对每一个包括s1的行都进行替换,

第二个g表示对每一行的所有进行替换

包括str的行所有的str1都用str2替换

:%s/f $/for$/g 将每一行尾部的“f ”(f键和空格键)替换为for

:%s/^/mv /g 在每一行的头部添加“mv ”(mv键和空格键)

:s/fred/a/g 替换fred成register a中的内容,呵呵

:g/显示含或的行

# 替换一个visual区域

# 选择一个区域,然后输入 :s/Emacs/Vim/ 等等,vim会自动进入:模式

:’s/Emacs/Vim/g 前面的’是vim自动添加的

# 在多个文档中搜索

:bufdo /searchstr

:argdo /searchstr

复制与剪切

xp 交换前后两个字符的位置

ddp 上下两行的位置交换

:g/fred/t$ 拷贝行,从fred到文件末尾(EOF)

9)窗口操作

:^w + ^r 交换两个窗口的位置

^w = 窗口等宽

:res -n 窗口高度减小n

:res +n 窗口高度增大n

:vert res -n

:vert res +n

10)DOS格式文本转成Unix格式文本

:1,$s/^M//g

11)书签

在阅读和编写大的程序文件时,利用标记(书签)功能定位是十分有帮助的。

将光标移到想做标记的位置。假如做一个名为“debug1”的标记,那么用户可在命令模式下输入做标记的命令“mdebug1”,然后敲入回车键,一个名为“debug1”的标记就做好了。

接下来用户可以随意将光标移到其它的位置,当在命令模式下输入“`debug1”后,就能快速回到“debug1”的标记所在行的行首。

馨竹:13

12)删除操作

:%s/r//g 删除DOS方式的回车^M

:%s= *$== 删除行尾空白

:%s/^(.*)n1/1$/ 删除重复行

:%s/^.pdf/new.pdf/ 只是删除之一个pdf

:%s/// 又是删除多行注释(咦?为什么要说「又」呢?)

:g/^s*$/d 删除所有空行

:g!/^dd/d 删除不含字符串’dd’的行

:v/^dd/d 同上 (译释:v == g!,就是不匹配!)

:g/str1/,/str2/d 删除所有之一个含str1到之一个含str2之间的行

:v/./.,/./-1join 压缩空行

:g/^$/,/./-j 压缩空行

:s/p1/p2/g:将当前行中所有p1均用p2替代

:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代

:g/p1/s//p2/g:将文件中所有p1均用p2替换

ndw 或 ndW 删除光标处开始及其后的 n-1 个字符。

d0 删至行首。

d$ 删至行尾。

ndd 删除当前行及其后 n-1 行。

x 或 X 删除一个字符。

Ctrl+u 删除输入方式下所输入的文本。

^R 恢复u的操作

J 把下一行合并到当前行尾

V 选择一行

^V 按下^V后即可进行矩形的选择了

aw 选择单词

iw 内部单词(无空格)

as 选择句子

is 选择句子(无空格)

ap 选择段落

ip 选择段落(无空格)

D 删除到行尾

x,y 删除与复制包含高亮区

dl 删除当前字符(与x命令功能相同)

d0 删除到某一行的开始位置

d^ 删除到某一行的之一个字符位置(不包括空格或TAB字符)

dw 删除到某个单词的结尾位置

d3w 删除到第三个单词的结尾位置

db 删除到某个单词的开始位置

dW 删除到某个以空格作为分隔符的单词的结尾位置

dB 删除到某个以空格作为分隔符的单词的开始位置

d7B 删除到前面7个以空格作为分隔符的单词的开始位置

d) 删除到某个语句的结尾位置

d4) 删除到第四个语句的结尾位置

d( 删除到某个语句的开始位置

d) 删除到某个段落的结尾位置

d{ 删除到某个段落的开始位置

d7{ 删除到当前段落起始位置之前的第7个段落位置

dd 删除当前行

d/text 删除从文本中出现“text”中所指定字样的位置,

一直向前直到下一个该字样所出现的位置(但不包括该字样)之间的内容

dfc 删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括该字符)之间的内容

dtc 删除当前行直到下一个字符“c”所出现位置之间的内容

D 删除到某一行的结尾

d$ 删除到某一行的结尾

5dd 删除从当前行所开始的5行内容

dL 删除直到屏幕上最后一行的内容

dH 删除直到屏幕上之一行的内容

dG 删除直到工作缓存区结尾的内容

d1G 删除直到工作缓存区开始的内容

修改命令操作

r 更改当前字符

cw 修改到某个单词的结尾位置

c3w 修改到第三个单词的结尾位置

cb 修改到某个单词的开始位置

cW 修改到某个以空格作为分隔符的单词的结尾位置

cB 修改到某个以空格作为分隔符的单词的开始位置

c7B 修改到前面7个以空格作为分隔符的单词的开始位置

c0 修改到某行的结尾位置

c} 修改到某个语句的结尾位置

c4} 修改到第四个语句的结尾位置

c( 修改到某个语句的开始位置

c) 修改到某个段落的结尾位置

c{ 修改到某个段落的开始位置

c7{ 修改到当前段落起始位置之前的第7个段落位置

ctc 修改当前行直到下一个字符c所出现位置之间的内容

C 修改到某一行的结尾

cc 修改当前行

5cc 修改从当前行所开始的5行内容

. 重复上一次修改!

13}Set 选项设置

set all 列出所有选项设置情况。

set term 设置终端类型。

set ignorecase 在搜索中忽略大小写。

set list 显示制表位(^I)和行尾标志($)。

set number 显示行号。

set showmode 示用户处在什么模式下

set report 显示由面向行的命令修改国的行数目。

set terse 显示简短的警告信息。

set warn 在转到别的文件时,若没有保存当前文件则显示 No write 信息。

set autowrite 在“:n”和“:!”命令之前都自动保存文件

set nomagic 允许在搜索模式中,使用前面不带\的特殊字符。

set nowrapscan 禁止 vi 在搜索到达文件两端时,又从另一端开始。

set mesg 允许 vi 显示其他用户用 write 写到自己终端上的信息。

autoindent (ai) noai 使新行自动缩进,和上(下)行的位置对齐

autoprint (ap) ap 每条命令之后都显示出修改之处

autowrite (aw) noaw 在:n,:!命令之前都自动保存文件

beautify (bf) nobf 在输入的时候忽略所有的控制字符(除了制表键(tab),换行(newline),进纸(formfeed))

directory= (dir=) /tmp 存放缓冲区的目录名

edcompatible noedcompatible 在替换的时候使用类ed的用法

errorbells (eb) errorbells 出错的时候响铃

exrc (ex) noexrc 允许在主目录(home)外面之外放.exrc文件

hardtabs= (ht=) 8 设置硬制表的边界

ignore case (ic) noic 正规式里忽略大小写

lisp nolisp 打开lisp模式

list nolist 显示所有的制表键和行的结尾

magic agic 可以使用更多的正规表达式

mesg mesg 允许向终端发送消息

number (nu) nonumber 显示行号

open open 允许开放和可视化

optimize (opt) optimize 优化吞吐量,打印时不发回车

paragraphs= (para=) IPLPPPQPPLIbp 设置{ & }的分界符

prompt prompt 命令模式下的输入给出:的提示符

readonly (ro) noro 除非用!号否则不准保存文件

redraw noredraw 当编辑的时候重绘屏幕

remap remap 允许宏指向其他的宏

report= 5 如果影响的行数>这个数的话就报告

scroll 1/2 window 下卷屏幕时滚动屏幕的数目, 同样这也是z命令输出的行数(z 输出2倍滚屏的大小)

sections= SHNHH HU 定义节的末尾(当使用命令> 时)

shell= (sh=) /bin/sh 缺省的SHELL,如果设置了环境变量SHELL的话,就使用变量

shiftwidth= (sw=) 8 当使用移动(shift)命令时移动的字符数

showmatch () no 显示{, }, (, ), 的匹配情况

showmode noshowmode 显示你处在什么模式下面

slowopen (slow) 插入之后不要立刻更新显示

tabstop= (ts=) 8 设置制表停止位(tabstop)的长度

taglength= (tl=) 0 重要标记的字符个数(0表示所有的字符)

tags= tag, /usr/lib/tags 定义包含标记的文件路径

term= 设置终端类型

terse noterse 显示简短的错误信息

timeout (to) timeout 一秒钟后键盘映射超时

ttytype= 设置终端类型

warn warn 显示”No write since last change”信息

window= (w=) 可视模式下窗口的行数

wrapmargin= (wm=) 0 右边距,大于0的话最右边的单词将折行,留出n个空白位置

wrapscan (ws) ws 查找到文件尾后再重头开始

writeany (wa) nowa 可以保存到任意一个文件去

14}特殊字符

^ 匹配字符串位于行首。

$ 匹配字符串位于行尾。

. 用在模式串中,表示任何单个字符。

在命令模式下,重复上次的命令。

* 在模式串中,表示其前字符可出现任意多次。

用在模式串中,表示指定方位内字符,其中可用-表示一个字

符范围,用^表示不在某个范围内的字符。

ESC 从插入状态转换到命令状态

15>大小写转换

guu 行小写

gUU 行大写

g~~ 行翻转(当然指大小写啦)

guw 字小写(狭义字) 译注:建议对比iw

gUw 字大写(狭义字)

g~w 字翻转(狭义字)

vEU 字大写(广义字)

vE~ 字翻转(广义字)

ggguG 把整个文章全部小写(ft!bt!)

16) 跳转足迹’. 跳到最后修改的那一行 (超级有用)(ft,怎么又是这个评价)

`. 不仅跳到最后修改的那一行,还要定位到修改点

依次沿着你的跳转记录向回跳 (从最近的一次开始)

依次沿着你的跳转记录向前跳

:ju(mps) 列出你跳转的足迹

17)命令历史

:history 列出历史命令记录

:his c 命令行命令历史

:his s 搜索命令历史

q/ 搜索命令历史的窗口

q 命令行命令历史的窗口

: 历史命令记录的窗口

18>寄存器

# 列出寄存器(Registers)

:reg 显示所有当前的registers

“1p 表示引用register,1表示一个名字叫做1的register,p就是粘贴(paste)命令

译释:

“也用来定义register

先输入 “,表示定义register

然后输入名字,如0~9,a~z

然后执行删除或复制命令,如dd或y,

或者是visual模式下的d(删除选中的部分)或y(复制选中的部分)

则被删除或复制的部分就被存入了这个命名的register

观察:一个特殊的register, “” ,里面存储了一个匿名的删除/复制

在你执行dd或y的时候,被作用的部分被存到了””中

19}命令行

“ayy@a 把当前行作为一个Vim命令来执行

译释:”ayy 是定义当前行到register a,然后@a是执行register a中存储的指令

10yy copy 当前行以下10行

11} 排序

:%!sort -u 使用sort程序排序整个文件(用结果重写文件)

!1) sort -u 排序当前段落 (只能在normal模式下使用!!)

:.,+5!sort 排序当前行及以下5行

20) 列操作

:%s= +$=&&= 复制最后一列

:%s= f+$=&&= 一样的功能

:%s= S+$=&& ft,还是一样

:s/(.*).*)/2″1/ 颠倒用:分割的两个字段

:%s(w+s+))str1:1str2: 处理列,替换所有在第三列中的str1

:%sw+)(.*s+)(w+)$:321: 交换之一列和最后一列 (共4列)

” Use Vim settings, rather then Vi settings (much better!).

set nocompatible

“c风格的缩进

:set expandtab “不使用tab只使用空格

:set cindent shiftwidth=4

“自动缩进

“语法

“:set filetype=java

:set syntax=java

“键入)、> 、},显示(、

:set showmatch

“手工定义折叠

:set foldmethod=manual

“标签文件位置

set tags=/usr/share/vim/vim63/funcs.tags

“在插入模式下通过按N自动地将任何类、方法或者字段名补齐

set complete+=k

” 不要用声音烦我!

set visualbell

“历史

:set history=50

“显示行列位置

“设置字符编码

set fileencodings=gb2312

“set encoding=euc-cn

“设置ruler

“显示当前命令

set showcmd

“incsearch

set incsearch

” allow backspacing over everything in insert mode

set backspace=indent,eol,start

“自动检测文件类型

:filetype on

linux过滤掉空格的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux过滤掉空格,轻松解决:利用Linux过滤掉空格的方法,Linux 常用命令(要求全而精)的信息别忘了在本站进行查找喔。

香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。


Linux下Grep命令的详细使用方法

在linux中grep命令是非常有用的,它和管道(|)配合使用,非常强大,用于搜索文本文件.如果想要在几个文本文件中查找一字符串,可以使用‘grep’命令。 ‘grep’在文本中搜索指定的字符串。 假设您正在‘/usr/src/linux/Documentation’目录下搜索带字符串‘magic’的文件:$ grep magic /usr/src/linux/Documentation/*:* How do I enable the magic SysRQ key?:* How do I use the magic SysRQ key?其中文件‘’包含该字符串,讨论的是 SysRQ 的功能。 默认情况下,‘grep’只搜索当前目录。 如果此目录下有许多子目录,‘grep’会以如下形式列出:grep: sound: Is a directory这可能会使‘grep’的输出难于阅读。 这里有两种解决的办法:明确要求搜索子目录:grep -r或忽略子目录:grep -d skip当然,如果预料到有许多输出,您可以通过 管道 将其转到‘less’上阅读:$ grep magic /usr/src/linux/Documentation/* | less这样,您就可以更方便地阅读。 有一点要注意,您必需提供一个文件过滤方式(搜索全部文件的话用 *)。 如果您忘了,‘grep’会一直等着,直到该程序被中断。 如果您遇到了这样的情况,按 ,然后再试。 下面是一些有意思的命令行参数:grep -i pattern files :不区分大小写地搜索。 默认情况区分大小写,grep -l pattern files :只列出匹配的文件名,grep -L pattern files :列出不匹配的文件名,grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),grep -C number pattern files :匹配的上下文分别显示[number]行,grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。 这里还有些用于搜索的特殊符号:\< 和 \> 分别标注单词的开始与结尾。 例如:grep man * 会匹配 ‘Batman’、‘manic’、‘man’等,grep \ 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。 ^:指匹配的字符串在行首,$:指匹配的字符串在行尾,如果您不习惯命令行参数,可以试试图形界面的‘grep’,如 reXgrep 。 这个软件提供 AND、OR、NOT 等语法,还有漂亮的按钮 :-) 。 如果您只是需要更清楚的输出,不妨试试 fungrep 。

常用网络命令有哪几种 都是什么

计算机网络的主要优点是能够实现资源和信息的共享,并且用户可以远程访问信息。 Linux提供了一组强有力的网络命令来为用户服务,这些工具能够帮助用户登录到远程计算机上、传输文件和执行远程命令等。 本章介绍下列几个常用的有关网络操作的命令: ftp 传输文件 telnet 登录到远程计算机上 r - 使用各种远程命令 netstat 查看网络的状况 nslookup 查询域名和IP地址的对应 finger 查询某个使用者的信息 ping 查询某个机器是否在工作 使用ftp命令进行远程文件传输 ftp命令是标准的文件传输协议的用户接口。 ftp是在TCP/IP网络上的计算机之间传输文件的简单有效的方法。 它允许用户传输ASCII文件和二进制文件。 在ftp会话过程中,用户可以通过使用ftp客户程序连接到另一台计算机上。 从此,用户可以在目录中上下移动、列出目录内容、把文件从远程机拷贝到本地机上、把文件从本地机传输到远程系统中。 需要注意的是,如果用户没有那个文件的存取权限,就不能从远程系统中获得文件或向远程系统传输文件。 为了使用ftp来传输文件,用户必须知道远程计算机上的合法用户名和口令。 这个用户名/口令的组合用来确认ftp 会话,并用来确定用户对要传输的文件可以进行什么样的访问。 另外,用户显然需要知道对其进行ftp 会话的计算机的名字或IP地址。 Ftp命令的功能是在本地机和远程机之间传送文件。 该命令的一般格式如下: $ ftp 主机名/IP 其中“主机名/IP”是所要连接的远程机的主机名或IP地址。 在命令行中,主机名属于选项,如果指定主机名,ftp将试图与远程机的ftp服务程序进行连接;如果没有指定主机名,ftp将给出提示符,等待用户输入命令: $ ftp ftp > 此时在ftp>提示符后面输入open命令加主机名或IP地址,将试图连接指定的主机。 不管使用哪一种方法,如果连接成功,需要在远程机上登录。 用户如果在远程机上有帐号,就可以通过ftp使用这一帐号并需要提供口令。 在远程机上的用户帐号的读写权限决定该用户在远程机上能下载什么文件和将上载文件放到哪个目录中。 如果没有远程机的专用登录帐号,许多ftp站点设有可以使用的特殊帐号。 这个帐号的登录名为anonymous(也称为匿名ftp),当使用这一帐号时,要求输入email地址作为口令。 如果远程系统提供匿名ftp服务,用户使用这项服务可以登录到特殊的,供公开使用的目录。 一般专门提供两个目录:pub目录和incoming目录。 pub目录包含该站点供公众使用的所有文件,incoming目录存放上载到该站点的文件。 一旦用户使用ftp在远程站点上登录成功,将得到“ftp>”提示符。 现在可以自由使用ftp提供的命令,可以用 help命令取得可供使用的命令清单,也可以在 help命令后面指定具体的命令名称,获得这条命令的说明。 最常用的命令有: ls 列出远程机的当前目录 cd 在远程机上改变工作目录 lcd 在本地机上改变工作目录 ascii 设置文件传输方式为ASCII模式 binary 设置文件传输方式为二进制模式 close终止当前的ftp会话 hash 每次传输完数据缓冲区中的数据后就显示一个#号 get(mget) 从远程机传送指定文件到本地机 put(mput) 从本地机传送指定文件到远程机 open 连接远程ftp站点 quit断开与远程机的连接并退出ftp ? 显示本地帮助信息 ! 转到Shell中 下面简单将ftp常用命令作一简介。 启动ftp会话 open命令用于打开一个与远程主机的会话。 该命令的一般格式是: open 主机名/IP 如果在ftp 会话期间要与一个以上的站点连接,通常只用不带参数的ftp命令。 如果在会话期间只想与一台计算机连接,那么在命令行上指定远程主机名或IP地址作为ftp命令的参数。 终止ftp会话 close、disconnect、quit和bye命令用于终止与远程机的会话。 close和disronnect命令关闭与远程机的连接,但是使用户留在本地计算机的ftp程序中。 quit和bye命令都关闭用户与远程机的连接,然后退出用户机上的ftp 程序。 改变目录 “cd [目录]”命令用于在ftp会话期间改变远程机上的目录,lcd命令改变本地目录,使用户能指定查找或放置本地文件的位置。 远程目录列表 ls命令列出远程目录的内容,就像使用一个交互shell中的ls命令一样。 ls命令的一般格式是: ls [目录] [本地文件] 如果指定了目录作为参数,那么ls就列出该目录的内容。 如果给出一个本地文件的名字,那么这个目录列表被放入本地机上您指定的这个文件中。 从远程系统获取文件 get和mget命令用于从远程机上获取文件。 get命令的一般格式为: get 文件名 您还可以给出本地文件名,这个文件名是这个要获取的文件在您的本地机上创建时的文件名。 如果您不给出一个本地文件名,那么就使用远程文件原来的名字。 mget命令一次获取多个远程文件。 mget命令的一般格式为: mget 文件名列表 使用用空格分隔的或带通配符的文件名列表来指定要获取的文件,对其中的每个文件都要求用户确认是否传送。 向远程系统发送文件 put和mput命令用于向远程机发送文件。 Put命令的一般格式为: put 文件名 mput命令一次发送多个本地文件,mput命令的一般格式为: mput 文件名列表 使用用空格分隔的或带通配符的文件名列表来指定要发送的文件。 对其中的每个文件都要求用户确认是否发送。 改变文件传输模式 默认情况下,ftp按ASCII模式传输文件,用户也可以指定其他模式。 ascii和brinary命令的功能是设置传输的模式。 用ASCII模式传输文件对纯文本是非常好的,但为避免对二进制文件的破坏,用户可以以二进制模式传输文件。 检查传输状态 传输大型文件时,可能会发现让ftp提供关于传输情况的反馈信息是非常有用的。 hash命令使ftp在每次传输完数据缓冲区中的数据后,就在屏幕上打印一个#字符。 本命令在发送和接收文件时都可以使用。 ftp中的本地命令 当您使用ftp时,字符“!”用于向本地机上的命令shell传送一个命令。 如果用户处在ftp会话中,需要shell做某些事,就很有用。 例如用户要建立一个目录来保存接收到的文件。 如果输入!mkdir new_dir,那么Linux就在用户当前的本地目录中创建一个名为new_dir 的目录。 从远程机grunthos下载二进制数据文件的典型对话过程如下: $ ftp grunthos Connected to grunthos 220 grunthos ftp server Name (grunthos:pc): anonymous 33l Guest login ok, send your complete e-mail address as password. Password: 230 Guest 1ogin ok, access restrictions apply. Remote system type is UNIX. ftp > cd pub 250 CWD command successful. ftp > ls 200 PORT command successful. l50 opening ASCII mode data connection for /bin/1s. total ll4 rog1 rog2 226 Transfer comp1ete . ftp > binary 200 type set to I. ftp > hash Hash mark printing on (1024 bytes/hash mark). ftp > get rog1 200 PORT command successfu1. 150 opening BINARY mode data connection for rogl (l4684 bytes). # # # # # # # # # # # # # 226 Transfer complete. bytes received in 0.0473 secs (3e + 02 Kbytes/sec) ftp > quit 22l Goodbye. 使用telnet命令访问远程计算机 用户使用telnet命令进行远程登录。 该命令允许用户使用telnet协议在远程计算机之间进行通信,用户可以通过网络在远程计算机上登录,就像登录到本地机上执行命令一样。 为了通过telnet登录到远程计算机上,必须知道远程机上的合法用户名和口令。 虽然有些系统确实为远程用户提供登录功能,但出于对安全的考虑,要限制来宾的操作权限,因此,这种情况下能使用的功能是很少的。 当允许远程用户登录时,系统通常把这些用户放在一个受限制的shell中,以防系统被怀有恶意的或不小心的用户破坏。 用户还可以使用telnet从远程站点登录到自己的计算机上,检查电子邮件、编辑文件和运行程序,就像在本地登录一样。 但是,用户只能使用基于终端的环境而不是X Wndows环境,telnet只为普通终端提供终端仿真,而不支持 X Wndow等图形环境。 telnet命令的一般形式为: telnet 主机名/IP 其中“主机名/IP”是要连接的远程机的主机名或IP地址。 如果这一命令执行成功,将从远程机上得到login:提示符。 使用telnet命令登录的过程如下: $ telnet 主机名/IP 启动telnet会话。 一旦telnet成功地连接到远程系统上,就显示登录信息并提示用户输人用户名和口令。 如果用户名和口令输入正确,就能成功登录并在远程系统上工作。 在telnet提示符后面可以输入很多命令,用来控制telnet会话过程,在telnet联机帮助手册中对这些命令有详细的说明。 下面是一台Linux计算机上的telnet会话举例: $ telnet server. somewhere. com Trying 127.0.0.1… Connected to serve. somewhere. com. Escape character is \?]\. “TurboLinux release 4. 0 (Colgate) kernel 2.0.18 on an I486 login: bubba password: Last login:Mon Nov l5 20:50:43 for localhost Linux 2. 0.6. (Posix). server: ~$ server: ~$ logout Connection closed by foreign host $ 用户结束了远程会话后,一定要确保使用logout命令退出远程系统。 然后telnet报告远程会话被关闭,并返回到用户的本地机的Shell提示符下。 r-系列命令 除ftp和telnet以外,还可以使用r-系列命令访问远程计算机和在网络上交换文件。 使用r-系列命令需要特别注意,因为如果用户不小心,就会造成严重的安全漏洞。 用户发出一个r-系列命令后,远程系统检查名为/etc/的文件,以查看用户的主机是否列在这个文件中。 如果它没有找到用户的主机,就检查远程机上同名用户的主目录中名为.rhosts的文件,看是否包括该用户的主机。 如果该用户的主机包括在这两个文件中的任何一个之中,该用户执行r-系列命令就不用提供口令。 虽然用户每次访问远程机时不用键入口令可能是非常方便的,但是它也可能会带来严重的安全问题。 我们建议用户在建立/etc/和文件之前,仔细考虑r-命令隐含的安全问题。 rlogin命令 rlogin 是“remote login”(远程登录)的缩写。 该命令与telnet命令很相似,允许用户启动远程系统上的交互命令会话。 rlogin 的一般格式是: rlogin [ -8EKLdx ] [ -e char ] [-k realm ] [ - l username ] host 一般最常用的格式是: rlogin host 该命令中各选项的含义为: -8 此选项始终允许8位输入数据通道。 该选项允许发送格式化的ANSI字符和其他的特殊代码。 如果不用这个选项,除非远端的终止和启动字符不是或,否则就去掉奇偶校验位。 -E 停止把任何字符当作转义字符。 当和-8选项一起使用时,它提供一个完全的透明连接。 -K 关闭所有的Kerberos确认。 只有与使用Kerberos 确认协议的主机连接时才使用这个选项。 -L 允许rlogin会话在litout模式中运行。 要了解更多信息,请查阅tty联机帮助。 -d 打开与远程主机进行通信的TCP sockets的socket调试。 要了解更多信息,请查阅setsockopt的联机帮助。 -e 为rlogin会话设置转义字符,默认的转义字符是“~”,用户可以指定一个文字字符或一个\\nnn形式的八进制数。 -k 请求rlogin获得在指定区域内的远程主机的Kerberos许可,而不是获得由krb_realmofhost(3)确定的远程主机区域内的远程主机的Kerberos 许可。 -x 为所有通过rlogin会话传送的数据打开DES加密。 这会影响响应时间和CPU利用率,但是可以提高安全性。 rsh命令 rsh是“remote shell”(远程 shell)的缩写。 该命令在指定的远程主机上启动一个shell并执行用户在rsh命令行中指定的命令。 如果用户没有给出要执行的命令,rsh就用rlogin命令使用户登录到远程机上。 rsh命令的一般格式是: rsh [-Kdnx] [-k realm] [-l username] host [command] 一般常用的格式是: rsh host [command ] command可以是从shell提示符下键人的任何Linux命令。 rsh命令中各选项的含义如下: -K 关闭所有的Kerbero确认。 该选项只在与使用Kerbero确认的主机连接时才使用。 -d 打开与远程主机进行通信的TCP sockets的socket调试。 要了解更多的信息,请查阅setsockopt的联机帮助。 -k 请求rsh获得在指定区域内的远程主机的Kerberos许可,而不是获得由krb_relmofhost(3)确定的远程主机区域内的远程主机的Kerberos许可。 -l 缺省情况下,远程用户名与本地用户名相同。 本选项允许指定远程用户名,如果指定了远程用户名,则使用Kerberos 确认,与在rlogin命令中一样。 -n 重定向来自特殊设备/dev/null的输入。 -x 为传送的所有数据打开DES加密。 这会影响响应时间和CPU利用率,但是可以提高安全性。 Linux把标准输入放入rsh命令中,并把它拷贝到要远程执行的命令的标准输入中。 它把远程命令的标准输出拷贝到rsh的标准输出中。 它还把远程标准错误拷贝到本地标准错误文件中。 任何退出、中止和中断信号都被送到远程命令中。 当远程命令终止了,rsh也就终止了。 rcp命令 rcp代表“remote file copy”(远程文件拷贝)。 该命令用于在计算机之间拷贝文件。 rcp命令有两种格式。 第一种格式用于文件到文件的拷贝;第二种格式用于把文件或目录拷贝到另一个目录中。 rcp命令的一般格式是: rcp [-px] [-k realm] file1 file2 rcp [-px] [-r] [-k realm] file directory 每个文件或目录参数既可以是远程文件名也可以是本地文件名。 远程文件名具有如下形式:rname@rhost:path,其中rname是远程用户名,rhost是远程计算机名,path是这个文件的路径。 rcp命令的各选项含义如下: -r 递归地把源目录中的所有内容拷贝到目的目录中。 要使用这个选项,目的必须是一个目录。 -p 试图保留源文件的修改时间和模式,忽略umask。 -k 请求rcp获得在指定区域内的远程主机的Kerberos 许可,而不是获得由krb_relmofhost(3)确定的远程主机区域内的远程主机的Kerberos许可。 -x 为传送的所有数据打开DES加密。 这会影响响应时间和CPU利用率,但是可以提高安全性。 如果在文件名中指定的路径不是完整的路径名,那么这个路径被解释为相对远程机上同名用户的主目录。 如果没有给出远程用户名,就使用当前用户名。 如果远程机上的路径包含特殊shell字符,需要用反斜线(\\)、双引号(”)或单引号(’)括起来,使所有的shell元字符都能被远程地解释。 需要说明的是,rcp不提示输入口令,它通过rsh命令来执行拷贝。 - Turbolinux 提供稿件

shell脚本中 if 判断时候-s是什么意思

指的是文件大小非0时为真。 shell中怎么判断输入的是否是数字:第一种:sed格式首先:我们先(在命令行直接输出模拟一下,如果都正确再在shell脚本中进行书写。 )直接echo输出一下echo 111asd第一步:思想然后我们就要想一下我们要说用sed判断,但是sed的最主要的功能是什么?替换!!!当然是替换,既然是替换那么我们能不能直接把echo输出的数字直接替换掉,然后看这个输出还剩下什么呢?如果我们剩下的空,那么我就基本可以确定我echo输出的就是空,如果我sed替换之后不是空,那么我是不是就是可以认为我echo输出的不是数字或不全是数字呢?第二步:命令行测试:[root@localhost shell]# echo 111asd | sed s#[0-9]##g | cat -Aasd$[root@localhost shell]# echo 111 | sed s#[0-9]##g | cat -A$第三步:进行shell测试经过第二步我们很明显就能看出来这个想法是能够实现的。 所以在shell中配合-z(zero)-n(no zero)是完全可以实现的,所以这个时候我们就可以进行脚本的编写测试了。 #!/bin/bash############################################################### File Name: # Version: V1.0# Author: ls# Created Time : 2017-02-24 06:25:13# Description:###############################################################交互式外部读取read -p pleace input: a1#if进行数字判断if [ -z $(echo $a1 | sed s#[0-9]##g) ]then#如果是数字输出yes给$?一个1的返回值并退出。 echo yesexit 1else#如果不是数字输出no给$?一个1的返回值并退出。 echo no[root@localhost shell]# sh input: 1yes[root@localhost shell]# sh input: q1no

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐