前言
本文主要给大家介绍了关于Linux shell用sed批量更改文件名的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。
示例
去除特定字符
目标:将 2017-01-01.jpg、2018-01-01.jpg 改为 20170101.jpg、20180101.jpg
方法:将所有 - 替换为空
for file in `ls | grep .jpg`
do
newfile=`echo $file | sed 's/-//g'`
mv $file $newfile
done
这里使用sed进行标准输出的字符串替换,其通用格式如下:
stdout | sed 's/pattern/replace/'
上述示例中,在末尾添加g用于替换所有匹配项,而不仅仅替换第一个匹配项。
中间插入字符
目标:将 book01.txt、paper02.txt 改为 book-01.txt、paper-02.txt
方法:用分组匹配分别获取待插入位置两侧的字符串,再通过反向引用实现替换
for file in `ls | grep .txt`
do
newfile=`echo $file | sed 's/\([a-z]\+\)\([0-9]\+\)/\1-\2/'`
mv $file $newfile
done
分析
上述示例首先通过 ls 和 grep 命令得到待改名的文件列表,然后用 sed 命令进行字符串的替换,最后再使用 mv 命令来完成文件名的更改。
获取待改名文件列表的方法有很多,可以通过 find 命令,也可以直接给出字符串,我们将在下文中提到。
注意 for 循环后面的 ls | grep .txt,这条命令用两个反单引号括了起来,与 $(ls | grep .txt) 的作用相同,被包围的字符串会被当作命令执行,然后返回字符串结果。
文件名包含空格的解决方法
我们可以直接将文件列表写到 for 循环中,而不是通过命令来得到,例如:
for file in "file1 file2 file3"
do
...
done
可以看到 for 循环是通过空格来分割字符串,因此如果待更改的文件名中包含空格的话,就会被拆分成多个文件名,从而出错。
要解决这个问题,我们可以将 IFS(内部字段分隔符)设置为换行符 \n,这样一来,for 循环就会按行来获取变量的值,确保每次获取的确实是一个完整的文件名。
设置 IFS 变量的命令需要放在 for 循环之前:
IFS=$'\n'
for file in `ls`
do
...
done
也可以直接使用 while read 命令一次读取一行到变量 file 中:
ls | grep "*.txt" | while read file
do
...
done
使用 find 获取文件列表
之前的示例中,我们是通过 ls 命令来获取文件列表。该命令只能获取某个目录的文件,而且没法进行多种条件的筛选。
而一说到文件的查找,不得不提到功能强大的 find 命令。该命令可以在多个层次的目录中查找文件,并能够设定诸如创建时间、文件大小、所有者等多种条件,查找起文件来特别方便灵活。
用 find 命令来获取文件列表,再用 sed 命令配合正则表达式来修改文件名,这两个命令的结合几乎能完成所有常见的批量改名任务。
例如,将所有大于1M,且后缀为txt或jpg的文件,由形如 book_20170101.txt、image_20170101.jpg 的文件改名为 20170101-book.txt、20170101-image.jpg,代码如下:
for file in `find . -size +1M -name "*_*.txt" -o -name "*_*.jpg"`
do
newfile=`echo $file | sed 's/\([a-z]\+\)_\([0-9]\+\)./\2-\1./'`
mv $file $newfile
done
『贰』 如何在C语言编程里面修改源文件名字
修改文件名,可要调用操作系统提供的API函数,比如Windows上的MoveFile(),也可以直接调用cmd中已提供的重命名命令——rename。下面的示例代码,调用rename命令来重名命文件名。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
intmain(intac,char*pav[])
{
if(ac!=3){
printf("程序名要重命名的文件路径新的文件名
");
printf("示例:test.exe1.txt2.txt
");
return0;
}
if(access(pav[1],0)!=0){
printf("不存在该文件
");
return0;
}
charszcmd[256]="cmd/crename";
strcat(szcmd,pav[1]);
strcat(szcmd,"");
strcat(szcmd,pav[2]);
system(szcmd);
return0;
}
『叁』 文件管理与重定向
Linux的 文件系统分层结构标准 :FHS Filesystem Hierarchy Standard
参考文档: http://www.pathname.com/fhs/ 其中对每个文件目录有详细说明
/ :根目录,最顶级目录,也是 管理员的家目录
/boot:引导文件、内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此
/bin: 所有用户 使用的基本命令(二进制文件)
/sbin:管理类的基本命令 (仅由root执行)
/bin与/sbin:不能关联至独立分区,OS启动即会用到的程序
/etc 配置文件目录
/home/USERNAME:各个用户家目录,存放用户数据
/proc: 用于输出内核与进程信息相关的虚拟文件系蔽亮统
/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
/usr: universal shared, read-only data (通用只读文件)
lib:32位使用
lib64:只存在64位系统
include: C程序的头文件(header files)
share:结构化独立的数据,例如doc, man等
local:第三方应用程序的安装位置
bin, sbin, lib, lib64, etc, share
/var: variable data files (可变数据)
cache: 应用程序缓存数据目录
lib: 应用程序状态信息数据
local:专用于为/usr/local下的应用程序存储可变数据
lock: 锁文件
log: 日志目录及文件
opt: 专用于为/opt下的应用程序存储可变数据
run: 运行中的进程相关数据,通常用于存储进程pid文件
spool: 应用程序数据池
tmp: 保存系统两次重启之间产生的临时数据
/dev:设备文件及特殊文件存储位置
/tmp:临时文件存储位置
/srv:系统上运行的服务用到的数据
/media:便携式移动设备挂载点(优盘)
/mnt:临时文件系统挂载点
/opt:第三方应用程序的安装位置
注意:CentOS 7 以后版本目录结构变化 (以下两者相同)
/bin 和 /usr/bin
/sbin 和 /usr/sbin
/lib 和/usr/lib
/lib64 和 /usr/lib64
范例:
二进早并困制程陆念序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
库文件: /lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
配置文件: /etc, /etc/DIRECTORY, /usr/local/etc
帮助文件: /usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc
用 ll 命令查看首字母:
(-) 普通文件
d 目录文件
b 块设备
c 字符设备
l 符号链接文件
p 管道文件pipe
s 套接字文件socket
每个shell和系统进程 都有一个当前的工作目录(current work directory,简称CWD)
显示当前shell CWD的绝对路径: 使用pwd命令 (printing working directory)
范例:
[图片上传失败...(image-8b8689-1596285623724)]
基名 :basename,只取文件名而不要路径
目录名 :dirname,只取路径,不要文件名
范例:
命令 cd : change directory 改变目录(可以使用绝对或相对路径)
选项:-P 切换至物理路径
切换至父目录 : cd ..
切换至当前用户家目录: cd
切换至上一个工作目录 : cd -
相关的环境变量:
PWD:当前目录路径
OLDPWD:上一次目录路径
文件相关信息:metadata(属性,元数据), data(数据内容)
每个文件有三个时间戳: (touch创建已存在的文件时,刷新3个时间戳)
access time 访问时间,atime,读取文件内容
modify time 修改时间,mtime,改变文件内容(数据)
change time 改变时间,ctime,元数据发生改变(属性)
mtime的改变必然引起ctime的改变
执行ll命令默认显示mtime
范例:
用来匹配符合条件的多个文件,方便批理管理文件
通配符采有特定的符号,表示特定的含义,此特符号称为 元字符
范例:只显示文件夹
别外还有在Linux系统中预定义的字符类:命令man 7 glob可以查看
使用以上通配符,需要双重中括号!!!!!!!!!!!!!!
{a..e} 与 [a - e] 排序内容不相同!!!
范例:
范例: 创建一个以昨天日期命名的.log文件
cp 命令格式:
默认cp=cp -i,提示是否覆盖
范例:
1、将/etc/目录下所有文件,备份到/data独立的子目录下,并要求子目录格式为 backupYYYY-mm-dd,备份过程可见
2、创建/data/rootdir目录,并复制/root下所有文件到该目录内,要求 保留原有权限
mv 命令可以实现文件或目录的 移动和改名 :
常用选项:
-i 交互式
-f 强制
-b 若目标存在,覆盖前先备份
利用 rename 可以 批量修改文件名 :
范例: (改名对象打不打引号都可以)
使用rm 命令可以删除文件
常用选项 :
-i 交互式
-f 强制删除
-r 递归,对目录进行操作时必须使用
--no-preserve-root 用来删除根目录
范例:删除特殊文件
rm虽然删除了文件,但是被删除的文件仍然 可能被恢复 ,
在安全要求较高的场景下,可以使用shred安全删除文件
补充技巧: 防止rm造成严重后果,定义别名进行备份 (修改配置文件永久有效)
配置文件目录:/root/.bashrc
显示目录树 tree
常见选项:
-d: 只显示目录
-L level: 指定显示的层级数目
-P pattern: 只显示由指定wild-card pattern匹配到的路径
常见选项:
-p: 存在于不报错,且可自动创建所需的各目录 (用于一次创建多层目录)
-v: 显示详细信息
-m MODE: 创建目录时直接 指定权限!!!!!!!!!!
rmdir 只能删除空目录 ,如果想删除非空目录,可以使用rm -r 命令递归删除目录树
常见选项:
-p 递归删除父空目录
-v 显示详细信息
练习
(1) 如何创建/testdir/dir1/x, /testdir/dir1/y, /testdir/dir1/x/a, /testdir/dir1/x/b, /testdir/dir1/y/a,
/testdir/dir1/y/b
(2) 如何创建/testdir/dir2/x, /testdir/dir2/y, /testdir/dir2/x/a, /testdir/dir2/x/b
(3) 如何创建/testdir/dir3, /testdir/dir4, /testdir/dir5, /testdir/dir5/dir6, /testdir/dir5/dir7
inode = (index node)
每个文件的属性信息,比如:文件的大小,时间,类型等,称为文件的 元数据
这些元数据存放在 inode表中
inode 表 中有很多条记录组成, 第一条记录保存元数据,包括以下信息:
inode number 节点号(身份证号)
文件类型
权限
UID
GID
链接数(指向这个文件名路径名称个数)
该文件的大小和不同的时间戳
指向磁盘上文件的数据块指针
有关文件的其他数据
一般情况下inode表会占用系统磁盘inode总量的1%
节点号表示 文件的唯一编号 !!!整个系统中 节点号是有限的
当节点号用尽时,即使还有储存空间,也会提示无剩余空间 !!!!!!
目录 是个特殊文件,目录的元数据保存了 目录中文件的列表及节点号的对应关系!!!
系统引用文件是 使用 inode号
实际用户是 通过文件名 来引用一个文件
目录是 目录下的文件名和文件inode号之间的映射
执行cp命令:
执行rm 命令:
执行mv命令:
硬链接本质上就 给一个文件起一个新的名称 ,实质是同一个文件
范例:对文件f1.log创建新的名称f1link.log,两者inode都是132
硬链接特性 :
目录的链接数至少为2,因为目录中的 . 即为自身
创建子目录会导致链接数增加!
一个符号链接指向另一个文件, 就像windows中的快捷方式
软链接特点:
关于源文件相对路径:只有跨分区创建软链接时才有此问题!
案例一:
提示空间不足 No space left on device,但是 df 查看磁盘空间剩余很多
案例二:
提示储存空间不足,删除无用的大文件后,空间并未释放,什么原因?如何解决?
读入数据:Input
输出数据:Output
打开的文件都有一个 fd : file descriptor (文件描述符)
Linux给程序提供 三种 I/O 设备
I/O重定向:将默认的输入,输出或错误 对应的设备进行修改,指向新的目标
STDOUT和STDERR可以被重定向到指定文件,而非默认的当前终端
支持的操作符号包括:
把STDOUT重定向到文件或其他终端
重定向到文件时,若文件不存在则创建,若文件存在则覆盖内容
再次重定向到同一文件,内容再次覆盖
若 > 符号之前不输入命令,则效果为生成空文件或清空目标文件
是迅速清空文件内容的一种方式
借助/dev/null也可实现同样的功能
磁盘空间不足时,大文件被占用不能停,而且rm删除无法立即腾出空间,应使用 > 或/dev/null >
把STDERR重定向到文件或其他终端
set - C 命令, 禁止将内容覆盖已有文件,但可追加 (此时>|可以强制覆盖)
set + C 命令,允许覆盖
强制覆盖
用 ( )或者{ }合并多个命令的out或err, 注意使用花括号的格式!!!
使用 < 来重定向标准输入:从文件中导入STDIN,代替当前终端的输入设备
使用 单行或多行重定向 来创建新文件,并输入指定内容
同时存在 < > ,优先进行 输入运算
只能对新文件进行!!!!!
只能对新文件进行!!!!!
使用 "<<终止词" 命令 把接下来输入的多行内容进行重定向,
直到终止词位置之前的所有文本都发送给STDIN
终止词 可以是任何一个或多个符号,
比如:!,@,$,EOF(End Of File),mage等, 其中EOF比较常用
易错点: tr命令实现的是 单个字符一一对应的转换关系!!!!
基本格式:
常见用途: 全局大小写转换
-d 删除 所有含有SET1的字符
-c 取字符集的补集,即 取反(一般与-d搭配使用)
-s 把 连续重复的单个字符 以单独一个字符表示,即 去重
管道(使用符号“|”表示) 用来连接多个命令
功能说明:
注意:STDERR默认不能通过管道转发,可利用2>&1 或 |& 实现,格式如下
因此, 当不确定命令的输出结果,或者已知结果中存在error时 ,应该使用上述命令
范例:将 /home 里面的 文件打包 ,不生成文件,而是传送到 stdout,经过管道后,
将 tar -cvf - /home 传送给后面的 tar -xvf - , 最后的这个 - 表示 取前一个命令的 stdout
利用tee命令 可以既重定向到文件,又显示在屏幕
tee的功能:
基本用法
若后面不加命令2
『肆』 如何使用SHELL脚本批量CP文件并改成对应的文件名
例如谈亏圆将test下的文件CP到record下面,并改成对应的文件名:
#!/bin/bash
for空判iin{1..10}
do
destination=`sed-n"$i,1p"user.txt|awk'{print$2}'`
source=`sed-n"$i,1p"user.txt|awk'含塌{print$1}'`
#echo$dir
cd$dir
cp-rvp$source$destination
done
『伍』 linux替换文件命令
1、这么就用不会提示了:#
\cp
-rf
2、
原因:
#
vi
~/.bashrc
如果你看到如下内容,以下命令都会用别名执行了,就是说自动加了
-i
参数:
alias
rm='rm
-i'
alias
cp='cp
-i'
alias
mv='mv
-i'
为了让复制和移动大量文件去覆盖目标时,不会产生一个个的提示,命令应该这样写
#
\cp
-rf
/data/xxx*
/home/xxx
注意
cp
命令前加了
\
,意思是不让它用~/.bashrc里的别名运行,即
-i
参数
3、补充cp该命令的各选项含义如下
-
a
该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
-
d
拷贝时保留链接。
-
f
删除已经存在的目标文件而不提示。
-
i
和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。
-
p
此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
-
r
若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
-
l
不作拷贝,只是链接文件。
4、需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名是一个已存在的文件名,用cp命令拷贝文件后,这个文件就会被新拷贝的源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。
『陆』 Linux文件系统操作命令
Linux文件系统操作命令大全
Linux命令有很多,那么Linux文件系统操作命令又有哪些呢?下面我为你介绍!
文件系统操作命令:
1. cat:可以显示文件的内容(经常和more搭配使用),或将多个文件合并成一个文件。
2. chgrp:用来改变文件或目录所属的用户组,命令的参数以空格分开的要改变属组的文件列表,文件名支持通配符,如果用户不是该文件的所有者,则不能改变该文件的所属组。
3. chmod:用于改变文件或目录的访问权限,该命令有两种用法:一种是使用图形化的方法,另一种是数字设置法。
4. chown:用来将指定用户或组为特定的所有者。用户可以设置为用户名或用户ID,组可以是组名或组ID。特定的文件是以空格分开的可以改变权限的文件列表,文件名支持通配符。
5. clear:用来清除终端屏幕。
6. cmp:用来比较两个文件的大小。
7. cp:()可以将文件或目录复制到其他目录中,就如同Dos下的命令一样,功能非常强大。在使用cp命令时,只需要指定源文件名或目标目录即可。
8. cut:用来移除文件的部分内容。
9. diff:用来找出两个文件的不同之处。
10. : 用来显示磁盘的剩余空间的大小。
11. file:用来显示文件的类型。
12. find:用来在目录中搜索文件,并执行指定的操作。
13. head:只查看文件的头几行内容,而不必浏览整个文件。
14. ln:可以在文件之间创建链接,实际上是给某个文件指定一个访问它的别名。
15. less:用法与more类似,可以查看超过一屏的文件内容,不同的是less除了可以按空格键向下显示文件外,还可以利用方向键来滚动显示文件,要结束浏览,只要在less的提示符“:”后按Q即可。
16. locate:可用于查找文件,且比find命令的搜索速度快。
17. ls(list):用来显示当前目录中的文件和子目录列表。
18. mkdir(make directory):建立子目录。
19. more:用于显示内容超过一屏的文件,为了避免文件内容显示瞬间就消失,可以使用more命令让文件显示满一屏时暂停,在按下任意键的时候继续显示下一屏的内容。
20. rmkdir(remove directory):用来删除“空”的子目录或无用的目录文件。
21. mv(move):可以将文件以及目录移到其他位置,或更改文件以及目录的名称。
22. pico:可指定文本的编辑方式。
23. pwd(print working directory):可显示用户当前所在的目录。
24. rm:用来删除系统中过时或无用的文件,可以删除目录中的文件或目录本身,对于链接文件,原有文件保持不变。
25. sort:将文本文件自动分类。
26. stat:用于显示文件或文件系统的状态。
27. Strings:显示文件中要打印的字符串。
28. tail:输出文件的结尾。
29. touch:改变文件的时间戳。
30. umask:用于启动bash shell。
31. uniq:移除已分类文件中的重复文本行。
32. vi:启动vi文本编辑器。
33. wc:显示文件中字节、词组合文本行的数目。
34. whereis:查找特定目录下的原始程序,二进制程序或用户手册等文件的位置。
35. man:如果用户对某个命令想了解更详细的话,可使用此命令。
36. dd:复制一个文件。
37. df:查看一个文件系统的磁盘空间使用情况。
38. edquoat:设置用户与用户组的磁盘空间限制,即Windows系统中的配额。
39. fdformat:格式化软盘。
40. fdisk:执行Linux下的`磁盘分区。
41. mkfs:建立一个Linux文件系统。
42. mkswap:创建一个Linux交换分区。
43. mount:挂载一个文件系统。
44. quota:限制和显示用户可用的磁盘空间。
45. swapon,swapoff:启用或取消设备和文件的交换页。
46. quotaon,quotaoff:启用或取消quota限制。
47. umount:取消文件系统的装备。
系统管理命令
1. finger:查询用户信息,也能查看默认的用户环境。
2. ftp:标准的文件传输协议的用户接口,是在网络上传输文件最简单有效的方法。
3. host:用于DNS查询。
4. hostname:用于显示或设置系统的主机名。
5. ifconfig:用于配置网卡接口。(可以使用down或up参数来禁用或启用某个网卡接口)
6. mail:发送和接收邮件。
7. netstat:显示网络连接、路由表和网络接口信息,用户可以知道目前那些网络连接正在运行。
8. ping:此命令用于测试本计算机和网络上其它的计算机是否相连。
9. rlogin:远程登陆命令,该命令与telnet命令很相似,允许用户启动远程系统的交互会话。
10. rcp:rcp(remote file )命令是远程文件复制命令,该命令用于在计算机之间复制文件,有两中格式,一种格式用于文件动文件的复制,另一种用于把文件或目录复制到其他文件目录中。
11. route:此命令用于显示或设置IP路由表。
12. tcpmp:此命令用于测试网络的通信量。
13. talk:此命令可用于事项网络用户的适时交谈,但是必须将双方系统的信息加入各自的/etc/hosts文件中,以相互识别。
14. telnet:此命令用于通过网络登陆远程计算机,如同操作本地计算机一样。
15. wall:wall(write all)命令可以用于发送消息给登陆本机的用户。在发送消息时,可直接输入要发送的消息,也可以把文件当成消息发送。
16. wget:此命令用于Linux环境下从Internet上下载文件,支持http和ftp协议,支持代理服务器和断点连续传功能,能够递归远程主机上的目录,查找合乎要求的的文件并下载到本地硬盘上。Wget命令可以在后台运行,截获并忽略hantfup信号,因此用户退出登陆后,仍可继续运行。
17. &,bg:&,bg命令是后台执行命令,有时候用户执行的程序可能要话很多时间,如果放在前台执行,可能无法继续其他操作,最好将他放在后台执行。
18. fg:fg命令是前台执行命令,如果用户有程序在后台运行,可以通过fg命令将程序从后台移到前台执行。
19. jobs:此命令用于显示正在后台执行的任务清单。Bg,fg,jobs命令都属于bash命令,
20. kill:此命令用于终止一个程序,例如:#[root@rathat9 root]kill 3793
21. ps:此命令用于显示程序的状态。
22. top:此命令用于显示当前CPU进程。
23. at batch atp atrm:这些命令用于排序,检查或删除后台运行的任务。
Linux与用户有关的命令:
1. passwd命令:更改用户口令。
格式:passwd [用户名]
2. su命令:可以让一个普通用户拥有超级用户或其他用户的权限,也可以让超级拥护以普通用户的身份做一些事情。
格式:su[选项][?][使用者账号]
说明:若没有指定的使用者账号,则系统预设值为超级用户root。该命令中个选项的含义分别为:
-c:执行一个命令后就结束。
-:加了这个减号的目的是使环境变量和欲转换的用户相同。
-m:保留环境变量不变。
Linux系统管理命令:
1. wall命令:对全部以登陆的用户发送信息。
2. write命令:向系统中某一用户发送信息。
格式:write 用户账号 [终端名称]
3. mesg命令:设定是否允许其他用户用write命令给自己发送信息。
如果允许输入命令:mesg y
如果不允许输入命令:mesg n
4. sync命令:在关闭Linux系统是使用的。Sync是强制把内存中的数据写回硬盘,以免数据丢失。
5. shutdown命令:可以安全的关闭或重启Linux它在系统关闭之前给系统上的所有登陆用户提示一条警告信息。
格式:shutdown [选项][时间][警告信息]
命令中选项的含义:
-k:并不真正关机,而只是发出警告信息给所有用户。
-r:关机后立即重新启动。
-h:关机后不重新启动。
-f快速关机,重新启动时跳过fsck。
-n:快速关机,不经过init程序。
-c:取消一个已经运行的shutdown。
6. free命令:查看当前系统内存的使用情况,它显示系统中剩余及已用的物理内存和交换内存,以及共享内存和被核心使用的缓冲区。
格式:free [-b | -k |-m]
命令中各个选项的含义:
-b:以字节为单位显示。
-k:以K字节为单位显示。
-m:以兆字节为单位显示。
7. uptime命令:显示系统已经运行了多长时间,它依次显示下列信息:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
8. df命令:检查文件系统的磁盘空间占用情况。
格式:df [选项]
说明:df命令可显示所有文件系统对I节点和磁盘块的使用情况。
命令中各个选项的含义:
-a:显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统。
-k:以k字节为单位显示。
-i:显示i节点信息,而不是磁盘块。
-t:显示各指定类型的文件系统的磁盘空间使用情况。
-x:列出不是某一指定类型文件系统的磁盘空间使用情况。
-T:显示文件系统类型。
9. 命令:显示磁盘空间的使用情况。统计目录(或文件)所占磁盘的大小。
格式: [选项] [Names…]
说明:该命令逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块(1024字节)的情况。若没有给出Names,则对当前目录进行统计。
命令中各个选项的含义:
-s:对每个Names参数只给出占用的数据块总数。
-a:递归的显示指定目录中各文件及子孙目录中个文件占用的数据块数。若既不指定-s,也不指定-a,则显示Names中的每一个目录及其中的各子目录所占的磁盘块数。
-b:以字节为单位列出磁盘空间使用情况(系统缺省以k字节为单位)。
-k:以1024字节为单位列出磁盘空间的使用情况。
-c:最后再加上一个总计(系统缺省设置)。
-l:计算所有的文件大小,对硬链接文件,则计算多次。
-x:跳过在不同文件系统上的目录不予统计。
10. dd命令:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。
格式:dd [选项]
命令中各个选项的含义:
if = 输入文件(或设备名称)。
of = 输出文件(或设备名称)。
ibs = bytes 一次读取bytes字节,及读入缓冲区的字节数。
skip = blocks 跳过读入缓冲区开头的ibs*blocks块。
obs = bytes 一次写入bytes字节,及写入缓冲区的字节数。
bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs).
cbs = byte 一次转换bytes字节。
count = blocks 只拷贝输入的block块。
conv = ASCⅡ 把EBCDIC码转换为ASCⅡ。
conv = ebcdic 把ASCⅡ码转换为EBCDIC码。
conv = ibm ibm把ASCⅡ码转换为alternate EBCDIC码。
conv = block 把变动位转换成固定字符。
conv = ublock 把固定位转换成变动位。
conv = ucase 把字母由小写转换为大写。
conv = lcase 把字母由大写转换为小写。
conv = notrunc 不截短输出文件。
conv = swab 交换每一对输入字节。
conv = noerror 出错是不停止处理。
conv = sync 把每个输入记录的大小都调到ibs的大小(用NUL填充)。
11. fdformat命令:低级格式化软盘。
格式:format [-n] device
说明:-n 软盘格式化后不作检验。
12. echo命令:在显示器上显示一段文字,一般起到一个提示作用。
格式:echo [-n] 字符串
13. cal命令:显示某年某月的日历。
格式:cal [选项] [月 [年]]
命令中各个选项的含义:
-j:显示出给定月中的每一天是一年中的第几天(从1月1日算起)。
-y:显示出整年的日历。
14. date命令:显示和设置系统日期和时间。
格式:date [选项] 显示时间格式 (以 + 开头,后面接格式)
date [选项] 设置时间格式
命令中各个选项的含义:
15. clear命令:清除屏幕上的信息。
Vi的基本命令:
1. 移动光标:
Ctrl + b:上滚一屏
Ctrl + f:下滚一屏
Ctrl + d:下滚半屏
Ctrl + u:上滚半屏
G: 移到文件最后
W:移到下个字的开头
B:跳至上个字的开头
2. 删除
x:删除当前光标所在后面一个字符
#x:删除当前光标所在后面#个字符。例如,5x表示删除5个字符。
dd:删除当前光标所在行
#dd:删除当前光标所在后面#行。例如,5dd表示删除字光标算起的5行。
:l,#d:例如,:1,12d表示删除自行1至行12的文字
X:删当前光标的左字符
D:删至行尾
3. 更改
cw:更改光标处的字到此单字的字尾处
c#w:例如,c3w表示更改3个字
cc:修改行
c:替换到行尾
4. 取代
r:取代光标处的字符
R:取代字符直到按ESC为止
5. 复制
yw:拷贝光标处的字到字尾只缓冲区
P:把缓冲区的资料贴上来
yy:拷贝光标所在之行至缓冲区
#yy:例如:5yy,拷贝光标所在之处以下5行至缓冲区
Linux文件的复制,删除和移动命令
1.cp命令:该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,同MSDOS下的COPY命令一样,功能十分强大。
语法:cp[选项]源文件或目录,目标文件或目录
说明该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。
该命令的各项选项含义如下:
-a:该选项通常在拷贝目录是使用。他保留链接,文件属性,并递归地拷贝目录,其作用等于dpr选项的组合。
-d:拷贝是保留链接
-f:删除已经存在的目标文件而不提示。
-I:和 f选项相反,在覆盖目标文件之前将给出提示要求拥护确认。回答y时目标文件将被覆盖,是交互式拷贝。
-p:此时cp除复制源文件的内容外,还将把其修改时间和反问权限也复制到新文件中。
-r;若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
-L:不作拷贝,只是链接文件。
需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名已存在,用cp 命令拷贝文件后,这个文件酒会被新源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用I选项。
2.mv命令:用户可以使用mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。该命令如同MS-DOS下的ren 和 move 的组合。
语法:mv[选项]源文件或目录 目标文件或目录。
说明:视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),他将所给的源文件或目录重命名为给顶的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参加参数可以有很多个,mv命令将个参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。
命令中各选项的含义为:
-I:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。
-f:禁止交互操作。在mv操作要覆盖某已有的目标文件是不给任何指示,指定此选项后,I选项将不再起作用。
如果所给目标文件(不是目录)已存在,此时该文件的内容将后备新文件覆盖,为防止用户用mv命令破坏另一个文件,使用mv命令移动文件时,最好使用I选项。
3.rm命令:用户可以用rm命令删除不需要的文件。该命令的功能问删除一个目录中的一个或多个文件或目录,他也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是断开了链接,源文件保持不变。
Rm命令的一般形式为:
Rm [选项]文件……
如果没有使用-r选项,则rm不会删除目录。
该命令的各选项含义如下:
-f:忽略不存在的文件,从不给出提示。
-r:指示rm将参数中列出的全部目录和子目录均递归地删除。
-I:进行交互式删除。
使用rm命令要小心。因为一旦文件被删除,他是不能被恢复的。为了防止这种情况的发生可以使用I选项俩逐个确认要删除的文件。如果用户输入y,文件将被删除。如果输入任何其他东西,文件则不会删除。
Linux目录的创建与删除命令:
1. mkdir命令
功能:创建一个目录(类似MS-DOS下的md命令)。
语法:mkdir[选项]dir-name
说明:该命令创建由dir-name命名的目录。要求创建目录的用户在当前目录中(dir-name的父目录中)具有写权限,并且dirname不能是当前目录中已有的目录或文件名称。
命令中个选项的含义为:
-m:对新建目录设置存取权限。也可以用chmod命令设置。
-p:可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
2. rmdir命令
功能:删除空目录。
语法:rmdir[选项]dir-name。/
说明:dir-name表示目录名。该命令从一个目录中删除一个或多个子目录项。需要特别注意的是,一个目录被删除之前必须是空的。Rm-r dir 命令可代替rndir,但是有危险性。删除某目录时也必须具有对父目录的、写权限。
命令中个选项的含义为:
-p递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。
3. cd命令
功能:改变工作目录。
语法:cd[directory]
说明:该命令将当前目录改变至directory所指定的目录。若没有指定directory,则回到用户的主目录。为了改变到指定目录,用户必须拥有对指定目录的执行和读权限。
该命令可以使用通配符(如”*,_”这样的通配符号)。
4. pwd命令
在Linux层次结构中,用户可以在被授权的任意目录下利用mkdir命令创建新目录,也可以利用cd命令从一个目录转换到另一个目录。然而,没有提示符来告知用户目前处于哪一个目录中。想要知道当前所处的目录,可以用pwd命令,该命令显示整个路径名。
语法:pwd
说明:此命令显示出当前工作目录的绝对路径。
5. ls命令
ls是list的简写,其功能为列出目录的内容。这是拥护最常用的一个命令之一,因为用户需要不时地查看某个目录的内容,该命令类似于DOS下的dir命令
语法:ls[选项][目录或是文件]
对于每个目录,该命令将列出其中的所有子目录与文件。对于每个文件,ls将输出其文件名以及所要求的其他信息。默认情况下,输出条目按字母顺序排序。但未给出目录名或是文件名时,就显示当前目录的信息。
命令中各个选项的含义:
-a:显示指定目录下所有子目录与文件,包括隐藏文件。
-A:显示指定目录下所有子目录与文件,包括隐藏文件。但不列出“.”和“..”.
-b:对文件名中的不可显示字符用把禁止
linux中所有设备都是以文件的形式显示
linux下文件的后缀名无实际意义
命令
pwd 显示路径
man +命令 列出操作说明
ls -l/-help列出 文件目录
cd / 目录做实验
安装步骤 configure make make install?
rm -r dl 递归删除目录
rm -rf 删除所有目录
rm -f 加文件名 删除文件
rmdir +文件地址 删除文件夹所有和rm -rf功能差不多
touch 加名字 创建新文件
cp 复制 mv 移动 rm 删除
vi 文本编辑器 输入a将从命令格式变成输入格式
head tail 查看前面和后面
find 加位置 加文件名 查找
echo $PATH 查询路径
useradd 加名字 添加用户
userdel 加名字 删除用户
su 加用户名 切换用户
chmod +x/-x 加文件名 修改文件权限
chmod 755 加文件名 改变权限在安装程序时
grep 加文本字符 加在那个文件 查找字符存在那行
fdisk -l 查看磁盘信息
命令1|命令2|命令三... 管道
ps -ef查看进程
ifconfig linux查看ip
重定向
linux和其它机器之间共享文件vsftp Windows和linux传输文件15-17
putty远程登录软件ssh
gzip 压缩和解压缩 -d解压 21
service iptables off防火墙关闭
tar -xvf 第二层解压缩
.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
———————————————
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz ./DirName
压缩:tar zcvf FileName.tar.gz DirName
.tar.bz2
解压:tar xjf FileName.tar.bz2 ./DirName
压缩:tar cjf FileName.tar.bz2 DirName
rpm -ivh 加.rpm文件 安装
安装sudo apt-get install 软件名
;『柒』 linux里怎么修改TXT文档
1、进入Ubuntu桌面后,打开终端,快捷键为ctrl+alt+T。
『捌』 linux命令:cp复制文件或目录
使用Linux系统的时候经常需要运用cp命令进行文件或者文件夹的复制,那么该如何操作cp命令呢?下面我给大家分享一下。
linux系统终端
首先登录进linux系统,右键单击选择Open In Terminal选项,如下图所示
接下来我们在打开的终端命令行,首先用pwd命令查看当前目录,然颤侍后运用cp命令进行文件的复制,如下图所示,注意复制后的文件名称被修改了
回到桌面,我们可以看到已经有2个文隐洞宽件了,并且复制的文件名称也已改变,如下图所示
最后我们还可以灶亮通过cp命令直接复制文件夹到另一个文件夹,如下图所示
『玖』 linux下文件名过长,导致cp命令时,新生成的目标文件文件名被截断,有什么解决办法使文件名一致呢
1、有必要用那么长的文件名吗?
2、文件名好像与根目录的“距离”有关系吧!
『拾』 linux下怎么复制一个文件到另外一个目录并且重命名
在linux下复制一个文件到另外一个目录并且重命名的具体操作如下:
用mv命令
mv /a /b
1.命令格式:
mv [选项] 源文件或目录 目标文件或目录
2.命令功能:
视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。
3.命令参数:
-b :若需覆盖文件,则覆盖前先行备份。
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u:若目标文件已经存在,且 source 比较新,才会更新(update)
-t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
(10)cp能改文件名吗扩展阅读:
Linux:
操作系统,是一种计算机操作系统,中文读法大致一般为“哩内克斯”,但真正的读法应为“哩纳克斯”。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。