Linux常用命令之复制:快捷高效的文件复制方法 (linux常用命令 复制)

在Linux系统中,复制命令是我们经常用到的一个命令。无论是复制文件还是复制文件夹,在面对大量数据的情况下,如何快速高效地完成复制任务,是我们Linux用户必须掌握的一项技能。

本文将介绍Linux系统中常用的文件复制命令,让您轻松学会如何快捷高效地完成文件复制任务。

一、基本的复制命令

cp命令是Linux系统中最基本的复制命令。

语法:cp [option] [source_file] [target_file]

对于单个文件的复制,我们只需要指定复制的源文件和目标文件的路径即可,例如:

cp source_file target_file

对于单个文件的复制,我们还可以使用-w参数,让cp命令处理文件时会询问是否要覆盖目标文件,例如:

cp -w source_file target_file

同时,如果我们想要进行递归复制,就需要使用-r参数:

cp -r source_dir target_dir

在复制文件时,我们还可以使用符号链接,让文件的属性跟随链接进行复制。这时,就需要使用-s参数,例如:

cp -s source_file link_file

二、复制整个目录树

在复制整个目录树时,我们需要使用-r参数,让cp命令能够递归处理整个目录树中的文件和子目录。同时,我们还需要指定目标文件夹的路径,例如:

cp -r source_dir target_dir

这样,cp命令就会递归地将source_dir中的每个文件和子目录都复制到target_dir中。

三、使用tar命令进行文件归档

当我们需要复制的文件数量很大时,单个文件的复制会非常耗时。这时,我们可以使用tar命令将需要复制的文件进行归档,然后再进行复制。

语法:tar -cf archive.tar source_file

这样,tar命令就会将所有的源文件归档到archive.tar文件中。而后,我们再使用cp命令将归档文件复制到目标文件夹中即可。例如:

tar -cf archive.tar source_dir

cp archive.tar target_dir

这样,我们就能够快速高效地完成大量文件的复制任务了。

四、使用rsync命令进行文件同步

rsync是常用的文件同步工具,它能够快速地将两个目录中的文件进行同步。当我们需要在不同的机器上完成文件的复制任务时,rsync命令非常有用。

语法:rsync [option] [source_file] [target_file]

rsync命令的常用参数:

-a:进行归档同步,相当于-r、-l、-p、-t、-g、-o等选项的。

-v:显示具体的同步信息。

-n:不进行同步,只显示可能发生的变更信息。

-e:指定使用远程同步的协议,例如SSH。

例如,我们要将本地机器上的source_dir目录同步至远程机器上的target_dir目录,可以使用以下命令:

rsync -avz source_dir remote_user@remote_host:/remote_dir/target_dir

这样,rsync命令就会将本地机器上的source_dir目录按照归档规则同步到远程机器上的/remote_dir/target_dir目录中。

五、

本文介绍了Linux系统中常用的文件复制命令,包括基本的cp命令、复制整个目录树的方法、使用tar命令进行文件归档和使用rsync命令进行文件同步。在处理大量文件复制时,合理使用这些命令能够让我们快速高效地完成任务。

相关问题拓展阅读:

linux常用命令有哪些

想要完整版的,评论私信我

前言

第1章 Linux命令行简介 / 1

1.1Linux命令行概述 / 1

1.2在Linux命令行下查看命令帮助 / 4

1.3Linux shutdown reboot halt / 9

关机:

shutdown -h now

halt

init 0

第2章 文件和目录操作命令 / 13

2.1pwd:显示当前所在的位置 / 13

2.2cd:切换目录 / 16

2.3tree:以树形结构显示目录下的内容 / 18

2.4mkdir:创建目录 / 22

2.5touch:创建空文件或改变文件的时间戳属性 / 27

2.6ls:显示目录下的内容及相关属性信息 / 30

2.7cp:复制文件或目录 / 39

2.8mv:移动或重命名文件 / 42

2.9rm:删除文件或目录 / 45

2.10rmdir:删除空目录 / 48

2.11ln:硬链接与软链接 / 49

2.12readlink:查看符号链接文件的内容 / 54

2.13find:查找目录下的文件 / 55

2.14xargs:将标准输入转换成命令行参数 / 68

2.15rename:重命名文件 / 71

2.16basename:显示文件名或目录名 / 72

2.17dirname:显示文件或目录路径 / 72

2.18chattr:改变文件的扩展属性 / 73

2.19lsattr:查看文件扩展属性 / 75

2.20file:显示文件的类型 / 76

2.21md5sum:计算和校验文件的MD5值 / 77

2.22chown:改变文件或目录的用户和用户组 / 80

2.23chmod:改变文件或目录权限 / 81

2.24chgrp:更改文件用户组 / 85

2.25umask:显示或设置权限掩码 / 86

2.26老男孩从新手成为技术大牛的心法 / 90

第3章 文件过滤及内容编辑处理命令 / 91

3.1cat:合并文件或查看文件内容 / 91

3.2tac:反向显示文件内容 / 103

3.3more:分页显示文件内容 / 104

3.4less:分页显示文件内容 / 107

3.5head:显示文件内容头部 / 109

3.6tail:显示文件内容尾部 / 111

3.7tailf:跟踪日志文件 / 114

3.8cut:从文本中提取一段文字并输出 / 115

3.9split:分割文件 / 117

3.10paste:合并文件 / 118

3.11sort:文本排序 / 123

3.12join:按两个文件的相同字段合并 / 127

3.13uniq:去除重复行 / 129

3.14wc:统计文件的行数、单词数或字节数 / 131

3.15iconv:转换文件的编码格式 / 133

3.16dos2unix:将DOS格式文件转换成UNIX格式 / 134

3.17diff:比较两个文件的不同 / 135

3.18vimdiff:可视化比较工具 / 138

3.19rev:反向输出文件内容 / 139

3.20tr:替换或删除字符 / 140

3.21od:按不同进制显示文件 / 143

3.22tee:多重定向 / 145

3.23vi/vim:纯文本编辑器 / 147

3.24老男孩逆袭思想:做Linux运维的多个好处 / 152

第4章 文本处理三剑客 / 153

4.1grep:文本过滤工具 / 153

4.2sed:字符流编辑器 / 159

4.3awk基础入门 / 165

第5章 Linux信息显示与搜索文件命令 / 176

5.1uname:显示系统信息 / 176

5.2hostname:显示或设置系统的主机名 / 178

5.3dmesg:系统启动异常诊断 / 179

5.4stat:显示文件或文件系统状态 / 181

5.5du:统计磁盘空间使用情况 / 183

5.6date:显示与设置系统时间 / 186

5.7echo:显示一行文本 / 190

5.8watch:监视命令执行情况 / 193

5.9which:显示命令的全路径 / 195

5.10whereis:显示命令及其相关文件全路径 / 196

5.11locate:快速定位文件路径 / 197

5.12updatedb:更新mlocate数据库 / 199

5.13老男孩逆袭思想:新手在工作中如何问问题不会被鄙视 / 200

第6章 文件备份与压缩命令 / 201

6.1tar:打包备份 / 201

6.2gzip:压缩或解压文件 / 208

6.3zip:打包和压缩文件 / 211

6.4unzip:解压zip文件 / 212

6.5scp:远程文件复制 / 214

6.6rsync:文件同步工具 / 216

6.7老男孩逆袭思想:新手如何高效地提问 / 220

第7章 Linux用户管理及用户信息查询命令 / 222

7.1 useradd:创建用户 / 222

7.2usermod:修改用户信息 / 227

7.3userdel:删除用户 / 229

7.4groupadd:创建新的用户组 / 230

7.5groupdel:删除用户组 / 231

7.6passwd:修改用户密码 / 232

7.7chage:修改用户密码有效期 / 237

7.8chpasswd:批量更新用户密码 / 238

7.9su:切换用户 / 240

7.10visudo:编辑sudoers文件 / 242

7.11sudo:以另一个用户身份执行命令 / 244

7.12id:显示用户与用户组的信息 / 248

7.13w:显示已登录用户信息 / 249

7.14who:显示已登录用户信息 / 250

7.15users:显示已登录用户 / 252

7.16whoami:显示当前登录的用户名 / 253

7.17last:显示用户登录列表 / 253

7.18lastb:显示用户登录失败的记录 / 254

7.19lastlog:显示所有用户的最近登录记录 / 255

第8章 Linux磁盘与文件系统管理命令 / 257

8.1fdisk:磁盘分区工具 / 257

8.2partprobe:更新内核的硬盘分区表信息 / 265

8.3tune2fs:调整ext2/ext3/ext4文件系统参数 / 266

8.4parted:磁盘分区工具 / 268

8.5mkfs:创建Linux文件系统 / 272

8.6dumpe2fs:导出ext2/ext3/ext4文件系统信息 / 274

8.7resize2fs:调整ext2/ext3/ext4文件系统大小 / 275

8.8fsck:检查并修复Linux文件系统 / 278

8.9dd:转换或复制文件 / 281

8.10mount:挂载文件系统 / 284

8.11umount:卸载文件系统 / 288

8.12df:报告文件系统磁盘空间的使用情况 / 289

8.13mkswap:创建交换分区 / 293

8.14swapon:激活交换分区 / 294

8.15swapoff:关闭交换分区 / 295

8.16sync:刷新文件系统缓冲区 / 296

第9章 Linux进程管理命令 / 298

9.1ps:查看进程 / 298

9.2pstree:显示进程状态树 / 305

9.3pgrep:查找匹配条件的进程 / 306

9.4kill:终止进程 / 307

9.5killall:通过进程名终止进程 / 310

9.6pkill:通过进程名终止进程 / 311

9.7top:实时显示系统中各个进程的资源占用状况 / 313

9.8nice:调整程序运行时的优先级 / 320

9.9renice:调整运行中的进程的优先级 / 323

9.10nohup:用户退出系统进程继续工作 / 324

9.11strace:跟踪进程的系统调用 / 325

9.12ltrace:跟踪进程调用库函数 / 332

9.13runlevel:输出当前运行级别 / 334

9.14init:初始化Linux进程 / 335

9.15service:管理系统服务 / 335

第10章 Linux网络管理命令 / 338

10.1ifconfig:配置或显示网络接口信息 / 338

10.2ifup:激活网络接口 / 343

ifup eth0

10.3ifdown:禁用网络接口 / 343

ifdown eth0

service network restart(/etc/init.d/network restart) 激活整个网络,所有网卡。

10.4route:显示或管理路由表 / 344

10.5arp:管理系统的arp缓存 / 350

10.6ip:网络配置工具 / 351

10.7netstat:查看网络状态 / 358

10.8ss:查看网络状态 / 362

10.:测试主机之间网络的连通性 / 363

10.10traceroute:追踪数据传输路由状况 / 366

10.11arping:发送arp请求 / 367

10.12telnet:远程登录主机 / 369

10.13nc:多功能网络工具 / 370

10.14ssh:安全地远程登录主机 / 373

10.15wget:命令行下载工具 / 376

10.16mailq:显示邮件传输队列 / 379

10.17mail:发送和接收邮件 / 381

10.18nslookup:域名查询工具 / 386

10.19dig:域名查询工具 / 389

10.20host:域名查询工具 / 393

10.21nmap:网络探测工具和安全/端口扫描器 / 394

10.22tcpdump:监听网络流量 / 398

第11章 Linux系统管理命令 / 407

11.1lsof:查看进程打开的文件 / 407

11.2uptime:显示系统的运行时间及负载 / 411

11.3free:查看系统内存信息 / 411

11.4iftop:动态显示网络接口流量信息 / 413

11.5vmstat:虚拟内存统计 / 415

11.6mpstat:CPU信息统计 / 419

11.7iostat:I/O信息统计 / 420

11.8iotop:动态显示磁盘I/O统计信息 / 423

11.9sar:收集系统信息 / 425

11.10chkconfig:管理开机服务 / 430

11.11ntsysv:管理开机服务 / 433

11.12 setup:系统管理工具 / 434

11.13ethtool:查询网卡参数 / 436

11.14mii-tool:管理网络接口的状态 / 437

11.19rpm:RPM包管理器 / 443

11.20yum:自动化RPM包管理工具 / 446

top命令

第12章 Linux系统常用内置命令 / 450

12.1Linux内置命令概述 / 450

12.2Linux内置命令简介 / 450

12.3Linux常用内置命令实例 / 452

Linux运维人员必会的120个命令

跟老男孩学Linux运维:核心系统命令实战

linux,unix常用基本命令

登录时(当看到login:时)你必须是在系统安装时创建的用户或root超级用户.(在FreeBSD系统安装时就已经创建了root用户了 ,root用户遍历到系统的任何一个目录并且可以做任何事情,包括删除系统文件,所以一定要千万小心!)符号%和符号# 代表提示符(你的可能不一样),%表示普通用户,#表示超级用户root要退出系统(并且回到login:提示符),打命令:

# exit

对,打完命令后按回车,记住UNIX对命令是区分大小写的--也就是说,是exit,而不是EXIT.

要关闭机器,打命令顷闭:

# /in/shutdown -h now

要重启机器,打命令:

# /in/shutdown -r now

或者

# /in/reboot

你也可以按Ctrl-Alt-Delete来重启机器.

花少许时间练习一下.在最近发行的FreeBSD版本中这和/in/reboot是相等的,而且这比按reset按钮要好多了.你也不想重装东西,难道不是吗?

2.用Root权限添加用户

当你之一次运行adduser时,它也许会创建一些缺省设置.在它建议你把sh作为缺省shell的时候,你可能想把csh作为缺省shell 而不是sh.否则直接按回车接受困乎租默认值.这些默认设置保存在/etc/adduser.conf中,一个可编辑文件.

# adduser

假如你创建了一个新用户jack全名为Jack Benimble.出于安全因素,给jack一个口令(即使周围的孩子也可能敲击键盘).当它问你是否想jack成为某个组的成员时,回答w heel

Login group is “jack”. Invite jack into other groups: wheel

这样就可以用户jack登录系统,再用su命令成为root超级用户.然后你就再也汪兆不会因为以root超级用户登录而受到责备了.

你可以在adduser中,通过按Ctrl-C退出随时退出.在创建结束时你可以批准该用户的生成或打n来取消创建该用户.你也许想创建第二个用户(jill?)这样当你编辑jack的登录文件时,就有一个热备份以免出错.一旦创建完用户,exit用exit回到login:提示符以jack登录.通常情况下,更好不要用root用户而是用普通用户完成大部分的工作.如果你已经创建了一个用户而且想使该用户能够用su命令成为root用户,你可以root登录然后编辑文件/etc/group,把jack加入之一行(wheel组),但是你首先要练习使用vi,文本编辑器--或简单些的编辑器,安装在最近发行的FreeBSD中的ee.

要删除一个用户使用rmuser命令.

修改密码 passwd命令,这个命令和linux上修改用户密码的命令是一样。输入passwd命令以后,会提示输入oldpassword,再输入新密码,确认新密码!丢人

3. 环顾四周

以普通用户登录,四处浏览一下再使用一些命令试着访问帮助资源和FreeBSD的别的信息.以下是一些命令和它们的功能:

id 告诉你你是谁!

pwd 显示你在哪个目录--当前工作目录.

ls 显示当前目录的文件.

ls -F 显示当前目录的文件.执行文件的文件名后加*,目录名后加/,符号链接后加@.

ls -l 以长格式显示文件.

ls -a 列出隐藏点文件和其它文件.如果你是root用户,无须加-a选项,点文件将自动显示.

cd 改变目录.

cd .. 回到上级目录;注意cd后的空格.

cd /usr/local 到/usr/local目录下.

cd ~ 到以登录用户的主目录–例如/usr/home/jack.

试试cd /cdrom,然后ls, 看看你的CDROM是否mounted并且正常工作.

view filename

让你看一个文件(文件名为filename 不改变文件名).试试

view /etc/fstab.

:q :q退出.

cat filename

在屏幕上显示filename.如果文件太长你只能看到文件的最末部分,按ScrollLock 然后用上下键往回移;ScrollLock键在看手册的时候也用的上.再按一下ScrollLock将退出屏幕滚动.你可以试一下cat你主目录的点文件cat .cshrc , cat .login , cat .profile.

你也许注意到了.cshrc文件中有关ls命令的别名(它们用起来很方便).你可以编辑.cshrc文件来创建一些别的别名.为了使系统的所有用户都能使用这些别名,把它们放到csh的系统配置文件/etc/csh.cshrc中.

4. 获得帮助信息

这里有一些关于帮助的有用的资源.text表示你从键盘打入的东西--通常是一条命令或文件名.

apropos text 在whatis数据库中所有包含text的有关信息.

man text

text的手册.是Un*x系统文档的主要来源.man ls会告诉你使用ls命令的所有方法.按回车键在文本中移动,Ctrl-b往前翻一页,Ctrl-f往后翻一页,q或Ctrl-c退出.

which text 告诉你text命令所在的路径.

locate text 所有找到text字符串的路径.

whatis text

告诉你text命令主要用来干什么和它的手册页.打入whatis *将告诉你当前目录中的所有命令的有关信息.

whereis text 寻找text文件,并给出它的完全路径.

你可能想对一些常用命令如cat, more,grep,mv,find,tar,chmod,chown,date,和script使用whatis命令.more命令可以让你以DOS的方式一次只阅读一页内容. 例如: ls -l | more 或 more filename.符号*代表通配符--例如:ls w*将显示所有以w开头的文件名.

这些命令是不是并不太有效?locate和whatis命令都取决于每星期重建一次的数据库.如果你不准备让你的机器在周末也运行的话(运行FreeBSD),你也许希望不时地每天、每星期、每月运行这些命令?现在,以root身份运行这些命令然后在运行下条命令之前指定一个结束时间.

# /etc/daily 输出省略

# /etc/weekly 输出省略

# /etc/monthly 输出省略

如果你等的不耐烦了,按Alt-F2到另一个虚拟控制台上并登录进去.实际上FreeBSD是一个多用户、多任务系统.不过这些命令在运行时出现的信息大概会在你的屏幕上显示一下;你可以打clear命令清除屏幕.一旦它们开始运行了,你可以看看/var/mai l/root和/var/log/messages着两个目录.

你是你自己系统的管理员,作为一个系统管理员或Unix系统的单用户,运行这些命令是最基本的.实质上,所有你须要已root身份做的事情就是系统管理.这种职责在那些又大又厚的Unix书里并没有得到很好的概括,这些书籍似乎花了很大空间用来说明w indows管理器的下拉菜单.系统管理方面的书你应该看看以下两本,

红封面的Evi Nemeth et.al.’s UNIX System Administration Handbook(Prentice-Hall, 1995, ISBN)--the second edition,另外一本为aleen Frisch’s Essential System Administration (O’Reilly & Associates, 1993,ISBN).我使用的是Nemeth的书.

5. 文本编辑

配置系统的时候,一般都要编辑文本文件.大多数要编辑的都在/etc目录下,你需要使用su成为root才能更改这些文件.你可以使用方便的ee命令,但是长远考虑,vi值得学习./src/contrib/nvi/docs/tutorial目录下有一个出色的教程,如果你安装了的话;否则你可以从 ftp.cdrom.com 的 FreeBSD/FreeBSD-current/src/contrib/nvi/docs/tutorial目录下ftp过来.

在编辑文件之前,你应该先做个备份.假设你要编辑文件/etc/rc.conf.你只要用cd/etc到达/etc目录然后打命令:

# cp rc.conf rc.conf.orig

这样就把rc.conf拷贝为rc.conf.orig,稍后你可以把rc.conf.orig拷贝回rc.conf来覆盖源文件.但更好是先移动(重命名)然后拷贝回去:

# mv rc.conf rc.conf.orig

# cp rc.conf.orig rc.conf

因为mv命令保留了文件的原先日期和拥有者.你现在可以编辑rc.conf了.如果你要源备份,你只要mv rc.conf rc.conf.myedit

(假设你要保留你的编辑版本)然后用

# mv rc.conf.orig rc.conf

来恢复成以前的样子.

要编辑文件,打命令

# vi filename

用方向键在文本中来回移动.Esc(escape键)使vi进入命令模式.这儿有些命令:

x 删除光标所在处的字符

dd 删除整个一行(即使在屏幕上是折行)

i 在光标所在处插入文本

a 在光标所在处之后插入文本

一旦你打了i或a,你就可以键入文本了.Esc使你进入命令模式,然后你可以打:

:w 存盘然后继续编辑

:wq 存盘并退出

:q! 放弃存盘并退出

/text 移动光标到text处;/Enter (回车键)用来寻找下一个text

G 移动到文件最末

nG 到文件的第n行,n代表一个数字

Ctrl-L 刷新屏幕

Ctrl-b and Ctrl-f 朝前或朝后翻一屏,就象more和view一样

在你的主目录下用vi filename创建一个文件来练习一下如何添加、删除文本,保存文件,然后继续编辑.vi会带来一些惊奇,因为它的确相当复杂,有时候你会不经意的发出一条命令取得一些意想不到的效果.(一些人竟然会喜欢vi--vi比DOS EDIT强多了--去查查:r命令.)当你遇到麻烦时,多按几下Esc键以确保你在命令模式然后从那里继续下去,经常用:w存盘,还有在需要的时候用:q!退出重来一次.

现在你可以cd到/etc目录下,su成为root,用vi编辑文件/etc/group,加一个用户到wheel组这样这个用户就有享有root特权了. 在文件的之一行的末尾加一个逗号和用户名,按Esc,然后用:wq存盘退出.立即生效.

6. 在DOS下打印文件

在这一点上,你也许没有打印机,有个办法可以先从手册页建一个文件然后再把这个文件移到软盘,然后在DOS下打印.假设你想仔细阅读一下有关文件权限的文档(非常重要).你可以打命令man chmod.命令:

# man chmod | col -b > chmod.txt

会删掉格式代码然后把手册页发送到chmod.txt文件,而不是显示在屏幕上.现在你可以插入一张dos格式化好的软盘,su成为ro ot,然后输入命令:

# /in/mount -t msdos /dev/fd0 /mnt

这样就把软盘mount到了/etc目录下了.

现在(你没必要再用root了,输入exit回到刚才的用户jack)可以到刚才创建chmod.txt的那个目录然后把文件拷贝到软盘:

% cp chmod.txt /mnt

再用ls /mnt查看一下/mnt目录下的文件列表,应该能显示chmod.txt. 也许你很想将/in/dmesg输出到一个文件,可以输入命令:

% /in/dmesg > dmesg.txt

然后拷贝dmesg.txt到软盘./in/dmesg是系统的启动日志,更好能了解它的内容,因为它能告诉你系统在启动的时候都找到了什么硬件.如果你想向 或一个USENET组--象FreeBSD找不到我的磁带机,我该怎么办?--回答问题的人总是想先知道dmesg的内容.

现在你可以将软驱从FreeBSD卸掉(用root)并取出软盘:

# /in/umount /mnt

然后重启机器到DOS.把这些文件copy到一个DOS目录,用诸如DOS EDIT,Windows Notepad或Wordpad,或一个字处理器打开上述文件,做一些小小的改动,然后存盘,再象平常一样在DOS或Windows下打印出来.希望一切顺利!用dos的print命令打印手册文档效果更好.(把文件从FreeBSD拷贝到mount好的dos风区要冒一些风险.)

要从FreeBSD下打印首先要牵涉到在/etc/printcap目录下创建合适的条目和在/var/spool/output目录下创建相应的脱机目录 .如果你的打印机在lpt0上(即dos下的LPT1),你只须到/var/spool/output目录然后用mkdir lpd命令(用root)建一个lpd目录(如果该目录原先不存在的话).接着当系统启动的时候如果打印机电源接通的话,打印机会有反应,并且lp或lpr命令应该能够向打印机发送一个文件.无论文件是否打印取决于它的配置,在FreeBSD手册里有详细介绍.

7. 其他一些常用命令

df 显示磁盘空间和安装了的文件系统.

ps aux 显示正在运行的进程.ps ax是窄格式.

rm filename 删除filename.

rm -R dir 删除一个目录,包括所有子目录--小心!

ls -R

显示当前目录和所有其子目录的文件;我用的不大一样,用ls -AFR > where.txt,可以在我找到更好的查找文件的方法之前得到/目录和(分别的)/usr目录下所有文件的列表.

passwd 修改一个用户(或root)的口令

man hierUnix 文件系统上的手册

在/usr或任何别的目录下使用find命令来查找文件:

% find /usr -name filename

你可以用在filename里使用*通配符(应该加在引号里). 如果你告诉find到/目录而不是/usr目录下查找文件,它会到所有安装好的文件系统包括CDROM和dos分区中去查找文件.

关于Unix命令和使用工具,一本比较好的书是Abrahams & Larson, Unix for the Impatient (2nd ed., Addison-Wesley, 1996).在Internet上也有很多Unix信息.看看Unix Reference Desk.

8. 下一步

现在你有了编辑工具并且知道如何遍历系统,因此你可以运行任何你想要的东西.在FreeBSD的站点上和FreeBSD手册上(很可能在你的硬盘上)都可以找到大量的相关信息.同时在Walnut Creek CDROM和它的站点上也可以找到大量的应用程序包.使用手册已经告诉你如何添加这些程序包(添加程序包的时候该包必须存在 ,然后用pkg_add/cdrom/packages/All/packagename,packagename表示包的文件名).在下列目录及文件中可以找到光盘上有关每个程序包简要说明的一张列表:cdrom/packages/index,cdrom/packages/index.txt,和cdrom/ports/index.更详细的说明可以在/cdrom/ports/*/*/pkg/DESCR文件里找到,前后两个*分别代表程序所属的类别和程序名.

如果你不能理解手册上所说的关于如何从cdrom上安装程序包的话,下列步骤通常可以行的通:

找一个你要的包,比如kermit.存放在光盘上的某个目录.用下列命令把该子目录拷贝到/usr/local目录下(供所有用户使用的软件更好都放在这):

# cp -R /cdrom/ports/comm/kermit /usr/local

这样/usr/local/kermit子目录就包含了是光盘上kermit子目录下的所有文件.下一步,如果/usr/ports/distfiles不存在的话就用mkdir把这个目录建起来.现在到/cdrom/ports/distfiles文件里查找一下你所要的程序包的名字.然后包相关的安装文件拷贝到/usr/ports/distfiles目录下;在最近的新版本中你可以跳过这一步,FreeBSD会自动完成这一步.对kermit来说,没有d istfile.然后cd到包含Makefile的/usr/local/kermit子目录下,打命令:

# make all install

在这一过程中,如果系统在/usr/ports/distfiles目录中找不到相关的压缩文件的话,它就会ftp去下载该文件.如果你没有联网并且该文件不在上述目录下的话,你得用另外一台机器来获得该文件,然后再把它从软盘或dos分区拷贝到/usr/ports/distf iles下.阅读一下Makefile(用cat或more命令)看看应该到哪里(master distribution site)下载、文件名是什么.下载到了dos下后文件名会缩短,你把它放到/usr/ports/distfiles下后得把文件名改为原来的(用 mv命令),这样在安装的时候,系统就能找到这个文件了.(用二进制模式下载!)然后回到/usr/local/kermit目录,到有Makefil e的目录,打make all install.

安装程序包的时候可能碰到的另外一件事就是需要事先安装一些别的应用程序.如果安装过程停下来说找不到unzip或别的什么的话,你就必须先安装unzip的程序包然后才能继续.

一旦安装完毕,打rehash命令让FreeBSD重新读一下该路径下的文件,这样它就知道目录下都有些什么.(如果当你用whereis或w hich命令时出现很多路径找不到的信息的话,你得在你的主目录下的.cshrc文件中path描述后添加一部分.出于安全考虑,Unix中的path除了当前目录不在path中(默认),别的和DOS下的path都是一样的,要运行不在path中的当前目录的命令,要在命令前打./才能使命令执行,斜杠后不能有空格.)

也许你想从Netscape的ftp站点上得到最新版的Netscape.(Netscape必须运行在X Windows系统上.)现在有FreeBSD版本了,仔细找找.只要运行 gunzip filename和tar xvf filename,把执行文件移到/usr/local/bin或其它一些存放执行文件的地方,rehash,然后把下列行加到每个用户主目录下的.c shrc文件中或者(更简单)干脆到系统启动配置文件/etc/csh.cshrc中:

setenv XKEYSYMDB /usr/X11R6/lib/X11/XKeysymDB

setenv XNLSPATH /usr/X11R6/lib/X11/nls

前提是假设文件XkeysymDB和目录nls在目录/usr/X11R6/lib/X11下;如果不在的话,查找一下然后放到上述目录下.

如果你以前就已经用CDROM(或ftp)安装了Netscape,不要把用新的Netscape执行文件覆盖/usr/local/bin/netscape,老的文件只是一个设置环境变量的shell脚本.相反,把新的执行文件更名为netscape.bin,然后覆盖老的执行文件/usr/local/lib/nets cape/netscape.bin.

9. 你的工作环境

你的shell是你的工作环境中最重要的部分.在DOS下,shell通常为command.com.对你所打入的命令进行解释的程序就是shell, 这样来与操作系统通信.你也可以写你自己的shell脚本,就象DOS批处理文件:一组在运行时不需要你的干涉的命令.

FreeBSD装好后有2个shell:csh和sh.Csh比较适合命令行处理,而脚本应该用sh(或bash)来写.可以打命令echo $SHELL来查看你用的是什么shell.

Csh shell是不错的,但是tcsh能做的要比csh能做的要多.它允许你用方向键调用历史命令而且还能对历史命令进行编辑.tcsh还允许你用tab键补齐文件名(csh用esc键),用 cd -命令可以切换到上一次你所在的目录.除此而外,用tcsh切换你的提示符也极其方便.Tcsh是你感到更轻松.

安装一个新的shell分以下3步:

I. 把shell作为一个程序包安装,就象安装别的程序包一样.用rehash和which tcsh(假设你正在安装tcsh)来确保安装正确.

II. 成为root,编辑/etc/shells,为新的shell添加一行,就本例而言,应该为/usr/local/bin/tcsh, 存盘.(有的程序包也许会自动完成.)

III. 用chsh命令把你的shell永久的改为tcsh,或者在提示符下打tcsh更改你的shell,不用重新登录.

注意:对于FreeBSD较早的版本和大部分的Unix,把root的shell改为除sh或csh之外别的什么shell可能回带来危险;因为当系统进入单用户模式后,你的shell可能运行不起来.解决办法是用su -m成为root,这样tcsh就成为你作为root时候的shell了,因为shell是环境的一部分.把下面的别名加到你的.tcshrc文件中后上述情况就一直如此了:

alias su su -m.

当tcsh启动时,它会和csh一样样去读取/etc/csh.cshrc和/etc/csh.login.还会读取你主目录中的.login和.cshrc文件,除非你的目录中有.tcshrc文件.你可以干脆把.cshrc拷贝到.tcshrc.

这样你就把tcsh安装好了,可以修改提示符了.你可以查看手册中有关tcsh的细节.把下面这行放到你的.tcshrc中后,你就可以知道你打了多少命令、现在几点钟和当前所在目录.如果你是普通用户,还有一个>;如果你是root,就是#.Tcsh在任何情况下都能做到:

set prompt = %h %t %~ %#

如果原来有这句话应该放在原来设置提示符的地方;如果找不到的话,就应该在if($?prompt) then后面.注释掉原来的那一行;这样你就总是可以在喜欢的时候切换到老的提示符.别忘记空格和引号.打source .tcshrc来让系统重新读一下.tcshrc文件.你可以用env命令列出已经设置好的别的环境变量.它会显示你默认的编辑器、翻屏、终端类型和其它一些变量.如果你远程登录后不能运行程序,这是因为终端没配置好,可以运行命令setenv TERM vt100.

1.常用指令

ls显示文件或目录

-l列出文件详细信息l(list)

-a列出当前目录下所有文件及目录,包括隐藏的a(all)

mkdir创建目录

-p创建目录,若无父目录,则创建p(parent)

cd 切换目录

touch创建空文件

echo创建带有内容的文件。

cat查看文件内容

cp  拷贝

mv 移动或重命名

rm 删除文件

-r递归删除,可删除子目录及文件

-f强制删除

find在文件系统中搜索某文件

wc  统计文本中行数、字数、字符数

grep在文本文件中查找某个字符串

rmdir删除空目录

tree树形结构显示目录,需要安装tree包

pwd显示当前目录

ln    创建链接文件

more、less  分页显示文本文件内容

head、tail    显示文件头、尾内容

ctrl+alt+F1  命令行全屏模式

2.系统管理命令

stat显示指定文件的详细信息,比ls更详细

who 显示在线登陆用户

whoami显示当前操作用户

hostname      显示主机名

uname显示系统信息

top  动态显示当前耗费资源最多进程信息

ps    显示瞬间进程状态 ps -aux

du      尺数查看目录大小 du -h /home带有单位显示目录信息

df    查看磁盘大小 df -h 带有单位显示磁盘信息

ifconfig查看网络情况

ping  测试网络连通

netstat显示网络状态信息

man  命令不会用了,找男人  如:man ls

clear清屏

alias 对命令重命名 如:alias showmeit=”ps -aux” ,另外解除使用unaliax showmeit

kill   杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。

3.打包压缩相关命令

tar:打包压缩

-c归档文件

-x压缩文件

-zgzip压缩文件

-jbzip2压缩文件

-v御历    显示压缩或解压缩过程 v(view)

-f使用档名

例:

tar -cvf /home/abc.tar /home/abc只打包,不压缩

tar -zcvf /home/abc.tar.gz /home/abc打包,并用gzip压缩

tar -jcvf /home/abc.tar.bz2 /home/abc      打包,并用bzip2压缩

当然,如果想解压缩,就直接替换上面的命令  tar -cvf  / tar -zcvf  / tar -jcvf 中的“c” 换成“x” 就可以了。

3.关机/重启机器

shutdown

-r关机重启

-h关机不重启

now立刻关机

halt 关机

reboot重启

4.Linux管道

将一个命令的标准输出作为另一个命令的标准输入。也就是把几个命令组合起来使用,后一个命令除以前一个命令的结果。

例:grep -r “close” /home/* | more在home目录下所有文件中查找,包括close的文件,并分页输出。

5.Linux软件包管理

dpkg (Debian Package)管理工具,软件包名以.deb后缀。这种方法适合系统不能联网的情况下。

比如安装tree命令的安装包,先将tree.deb传到Linux系陵拆首统中。再使用如下命令安装。

sudo dpkg -i tree_1.5.3-1_i386.deb安装软件

sudo dpkg -r tree卸载软件 

注:将tree.deb传到Linux系统中,有多种方式。VMwareTool,使用挂载方式;使用winSCP工具等;

APT(Advanced Packaging Tool)高级软件工具。这种方法适合系统能够连接互联网的情况。

依然以tree为例

sudo apt-get install tree安装tree

sudo apt-get remove tree卸载tree

sudo apt-get update     更新软件

sudo apt-get upgrade

6.将.rpm文件转为.deb文件

.rpm为RedHat使用的软件格式。在Ubuntu下不能直接使用,所以需要转换一下。

sudo alien abc.rpm

7.vim使用

vim三种模式:命令模式、插入模式、编辑模式。使用ESC或i或:来切换模式。

命令模式下:

:q退出

:q!强制退出

:wq     保存并退出

:set number     显示行号

:set nonumber  隐藏行号

/apache在文档中查找apache 按n跳到下一个,shift+n上一个

yyp     复制光标所在行,并粘贴

h(左移一个字符←)、j(下一行↓)、k(上一行↑)、l(右移一个字符→)

8.用户及用户组管理

/etc/passwd    存储用户账号

/etc/group存储组账号

/etc/shadow    存储用户账号的密码

/etc/gshadow  存储用户组账号的密码

useradd 用户名

userdel 用户名

adduser 用户名

groupadd 组名

groupdel 组名

passwd root     给root设置密码

/etc/profile     系统环境变量

bash_profile     用户环境变量

.bashrc用户环境变量

su user切换用户,加载配置文件.bashrc

su – user切换用户,加载配置文件/etc/profile ,加载bash_profile

更改文件的用户及用户组

sudo chown owner {File|Directory}

例如:还以jdk-7u21-linux-i586.tar.gz为例。属于用户hadoop,组hadoop

要想切换此文件所属的用户及组。可以使用命令。

sudo chown root:root jdk-7u21-linux-i586.tar.gz

扩展资料

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

UNIX操作系统(尤尼斯),是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统,最早由KenThompson、Dennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。目前它的商标权由国际开放标准组织所拥有,只有符合单一UNIX规范的UNIX系统才能使用UNIX这个名称,否则只能称为类UNIX(UNIX-like)。

1. tar

压缩文件夹

tar zcvf archive_name.tar   dirname/1

解压文件夹

tar xvf archive_name.tar1

grep

在文件中查找字符串 不区分大小写

grep -i “the” demo_file1

输出成功匹配的行,以及该行之后或春的三行

grep -A 3 -i “example” demo_text1

在一个文件夹中递归查询包含指定字符串的文件

grep -r  “ramesh”  *1

find

查找指定悉团山睁中文件名的文件(不区分大小写)

find -iname  “MyProgram.c”1

查找home目录下的所有空文件

find ~ -empty1

ssh

登录到远程主机

ssh  

sed

sed全名叫stream editor,流编辑器,用程序的方式来编辑文本。 

SED 简明教程

awk

AWK 简明教程

vim

LIinux中自带的文本编辑器。

下面列出了Linux最常用的一些命令,及其功能:

1、cd命令

这是一个非常世颤基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。

2、ls命令

这是一个非常有用的查看文件与目录的命令。

3、grep命令

该命令常用于分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等等。

4、find命令

find是一个基于查找的功能非常强大的命令,相对而言,它的使用也相对较为复杂,参数也比较多。

5、cp命令

该命令用于复制文件,copy之意,它还可以把多个文件一次性地复制到一个目录下。

6、mv命令

该命令用于移动文件、目录或更名,move之意。

7、rm命令

该命令用于删除文件或目录,remove之意。

8、ps命令

该命令用于将某个时间点的进程运行情况选取下来并输出,process之意。

9、kill命令

该命令用于向某个工作(%jobnumber)或者是某个PID(数字)传送一个信号,它通常与ps和jobs命令一起使用。

10、tar命令

该命令用于对文件进行打包,默认情况并不会压缩,如果指定了相应的参数,它还会调用相应的压缩程序(如gzip和bzip等)进行压缩和解压。

11、cat命令

该命令用于查看文本文件的内容,后接要查看的蚂氏文件名,通常可用管道与more和less一起使用,从而可以一页页地查看数据。

12、闷返散chmod命令

该命令用于改变文件的权限。

13、vim命令

该命令主要用于文本编辑,它接一个或多个文件名作为参数,如果文件存在就打开,如果文件不存在就以该文件名创建一个文件。vim是一个非常好用的文本编辑器,它里面有很多非常好用的命令。

Y:linux常用命令

●文件操作命令

★cd /home: 进入 ‘/ home’ 目录’;

★cd ..:返回上一级目录;

★cd ../.. :返回上两级樱御键目录;

★cd :进入个人的主目录;

★pwd: 显示当前工作路径;

★切换用户:su – root;

★显示文件列表:ll;竖向显示,显示文件属性。

★显示文件列表:ls;横向显示,只拆茄显示文件名。

★显示隐藏文件夹:ll –a 或 ls –a ;

●创建目录

★mkdir dir1 创建一个叫做 ‘dir1’ 的目录;

★mkdir dir1 dir2 同时创建两个目录;

★mkdir -p /tmp/dir1/dir2 创建一个目录树;

●删除文件

★rm -rf dir1 :删除一个叫做 ‘dir1’ 的目录并同时删除其内容

★rm -rf dir1 dir2 :同时删除两个目录及它们的内容

●权限命令

★修改文件读写执行权限命令:chmod;

u 表示该档案的拥有者;

g 表示与该档案的拥有者属于同一个群体(group)者;

o 表示其他以外的人;

a 表示这三者皆是;

+ 表示增加权限

– 表示取消权限

= 表示唯一设定权限。

★权限

r 表示可读取,

w 表示可写入,

x 表示可执行,

X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。

-c : 若该档案权限确实已经更改,才显示其更改动作

-f : 若该档案权限无法被更改也不要显示错误讯息

-v : 显示权限变更的详细资料

-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)

–help : 显示辅助说明

–version : 显示版本

★案例

☆将档案file1.txt设为所有人皆可读取:

chmod ugo+r file1.txt

☆将档案file1.txt设为所有人皆可读取:

chmod a+r file1.txt

☆将脚本build_h3c.sh设为所有人可执行:chmod a+x build_h3c.sh

●查看进程、杀死进程、启动进程

★查看进程

☆最常用的命令式ps aux,然后在通过管道使用grep命令过滤查找特定进程,然后在进行操作。

ps aux|grep 进程名;

ps –ef|grep 进程名;

☆ps:查找与进程相关的PID号;

☆ps a:显示现行终端机下的所有程序,包括其他用户的程序;

☆ps –A:显示所有进程;

★杀死进程

☆使用kill命令杀死进程:kill 进程标识号;

☆常用:kill -9

☆案例:kill;

●执行.sh文件

★方法一:在任何路径脊巧,使用全路径,即能执行文件。

☆案例:/home/ykf8434/open.sh;

★执行.sh文件:进入文件所在文件夹,./文件名;

☆案例:./open.sh;

●压缩和解压

★tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包;

★tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包;

★tar -xvf archive.tar 解压一个压缩包;

★tar -xvf archive.tar -C /tmp将压缩包释放到/tmp目录下;

★tar -jxvf archive.tar.bz2 解压一个bzip2格式的压缩包;

★tar -zxvf archive.tar.gz 解压一个gzip格式的压缩包;

●防火墙命令

★查看防火墙状态:service firewalld status;

关于linux常用命令 复制的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » Linux常用命令之复制:快捷高效的文件复制方法 (linux常用命令 复制)