一、mv命令
mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source表示源文件或目录,target表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。
mv命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。源文件被移至目标文件有两种不同的结果:
1)如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。
2)如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。
注意事项:mv与cp的结果不同,mv好像文件"搬家",文件个数并未增加。而cp对文件进行复制,文件个数增加了。
语法
mv (选项) (参数)
选项
--backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;
-b:当文件存在时,覆盖前,为其创建一个备份;
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入"y",表示将覆盖目标文件;输入"n",表示取消对源文件的移动。这样可以避免误将文件覆盖。
--strip-trailing-slashes:删除源文件中的斜杠"/";
-S<后缀>:为备份文件指定后缀,而不使用默认的后缀;
--target-directory=<目录>:指定源文件要移动到目标目录;
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
参数
源文件:源文件列表。 目标文件:如果"目标文件"是文件名则在移动文件的同时,将其改名为"目标文件";如果"目标文件"是目录名则将源文件移动到"目标文件"下。
实例
将文件ex3改名为new1
[root@localhost ~]# mv ex3 new1
将目录/usr/men中的所有文件移到当前目录(用.表示)中:
[root@localhost ~]# mv /usr/men/* .
二、touch命令
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:显示版本信息。
实例
在当前目录下建立一个空文件test.txt,然后,利用ls -l命令可以发现文件test.txt的大小为0,表示它是空文件。
[root@localhost ~]# touch test.txt
三、cat命令
cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容,类似于下的type命令。 注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态。
语法
cat (选项) (文件)
选项
-n或-number:有1开始对所有输出的行数编号;
-b或--number-nonblank:和-n相似,只不过对于空白行不编号;
-s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;
-A:显示不可打印字符,行尾显示"$";
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;
实例
设ml和m2是当前目录下的两个文件 cat m1 (在屏幕上显示文件ml的内容)
cat m1 m2 (同时显示文件ml和m2的内容)
cat m1 m2 > file (将文件ml和m2合并后放入文件file中)
cat还有一种用法,cat …EOF…EOF
从键盘输入创建一个新文件或向现有文件中添加新数据:
进件新文件:cat >new_file_name <<EOF
>linux command //从键盘输入
>unix command //从键盘输入
>EOF //从键盘输入,已结束书写
向现有文件中追加数据:cat >>file_name <<EOF
>CISP!
>CISSP!
>EOF
把多个文件内容合并到一个文件输出:
[root@localhost ~]# cat file1 file2 > file3
四、head命令
head命令用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。
语法
head (选项) (文件)
选项
将每个指定文件的头10 行显示到标准输出。
如果指定了多于一个文件,在每一段输出前会给出文件名作为文件头。
如果不指定文件,或者文件为"-",则从标准输入读取数据,长选项必须使用的参数对于短选项时也是必需使用的;
-q, --quiet, –silent //不显示包含给定文件名的文件头;
-v, --verbose //总是显示包含给定文件名的文件头;
--help //显示此帮助信息并退出;
--version //显示版本信息并退出;
-c, --bytes=[-]K //显示每个文件的前K 字节内容,如果附加"-"参数,则除了每个文件的最后K字节数据外显示剩余全部内容;
-n, --lines=[-]K //显示每个文件的前K 行内容,如果附加"-"参数,则除了每个文件的最后K 行外显示剩余全部内容。
实例
显示test.txt文件的前10行内容
[root@localhost ~]# head test.txt
五、tail命令
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:显示指令的版本信息。
实例
[root@localhost ~]# tail file //显示文件file的最后10行
[root@localhost ~]# tail +20 file //显示文件file的内容,从第20行至文件末尾
[root@localhost ~]# tail -c 10 file //显示文件file的最后10个字符
六、VI、VIM简介
vi是一个命令行界面下的文本编辑工具,最早在1976年由Bill Joy开发,当时名字叫做ex。vi支持绝大多数操作系统(最早在BSD上发布),并且功能已经十分强大
1991年Bram Moolenaar基于vi进行改进,发布了vim,加入了对GUI的支持
vim已经不仅仅是普通意义上的文本编辑器(如windows上的记事本),而是被广泛的作为在文本编辑、方本处理、代码开发等等用途
Linux中知名的文本编辑器还有emacs,他的功能也还不错
七、VIM编辑器模式
vim的使用方式
命令行模式、文本输入模式、末行模式。
可视化全屏文本编译器之vim
vim是vi的升级版本,它是安装在linux操作系统中的一个软件
www.vim.org
八、VIM三种工作模式
命令模式:可以删除、复制、粘贴、撤销转换到录入模式
yy代表复制光标所在整行,nyy复制n行 3yy
p,P粘贴
yw复制光标所在的词组,不会复制标点符号, nyw 3yw
撤消:u撤消上一次 U撤消当前所有
dd删除整行,ndd
删除一个字符 delete键或x u一行行的撤销
dw删除一个词组
dG当前行到末尾
九、VIM快捷键
a–>从光标所在字符后一个位置开始录入
A–>从光标所在行的行尾开始录入
x–>删除当前光标下的字符
X–>删除当前光标左边的字符
s–>删除一个字符并进入编辑状态
S–>删除一整行并进入编辑状态
diw(dw)–>删除光标所在的单词,不包括空白字符
daw–>删除光标所在的单词,包括空白字符
D–>删除到行尾的内容
C–>删除一整行并进入编辑状态
cc–>删除一整行并进入编辑状态
dd–>删除一行
yy–>复制一行
o–>当前行下插入一空行
O–>当前行上插入一空行
A–>在当前行尾插入
.–>重复上一个命令
gg–>第一行行首
G–>最后一行行首
xG–>到x行
[[([])–>第一行行首
]](][)–>最后一行行首
i–>从光标所在字符前一个位置开始录入
I–>从光标所在行的行首开始录入
R–>从光标所在位置开始替换
ctrl-y–>向上滚屏(向上一行滚屏)
ctrl-e–>向下滚屏(向下一行滚屏)
ctrl-u–>向上滚动半屏(向上滚动半页)
ctrl-d–>向下滚动半屏(向下滚动半页)
ctrl-b–>向上滚动整屏(向上翻页)
ctrl-f–>向下滚动整屏(向下翻页)
ctrl-v–>可视块(选中字符复制或删除)
录入模式转至命令模式:按esc键
末行模式:1.查找、替换、末行保存命令
:w–>保存
:q–>退出 //变一行 :s/x/y
:wq–>保存退出 //变前5行 :1,5sx/y
:wq!–>强制保存退出 //从第一行到最后一行 :1.$sx/y
:q!–>强制退出
:x–>保存
:w file_name–>保存file_name到当前目录
查找:
起点是光标所在位置
/stings1 从前往后找(正向搜索) ?sting1从后往前走(反向搜索)
替换:<sed>
:s/this/that/g //将this替换为that,前提是光标一定要移到那一行
:s/this/that //将这一行中的第一次出现的this替换为that,也就是说只替换第一个
:1,$ s/is/are/g //第一行到最后一行中的is替换为are
:1,2,3 s/is/are/g //将第一行第二行第三行中的is改为are
如果文件在没有保存,但是机器突然重启了,先切换到所在的路径,然后可以用vim -r file_name这个命令恢复最近修改的一些信息
十、df命令
df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
语法:
df [选项]
选项:
-a或--all:包含全部的文件系统; --block-size=<区块大小>:以指定的区块大小来显示区块数目;
-h或--human-readable:以可读性较高的方式来显示信息;
-H或--si:与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes;
-i或--inodes:显示inode的信息; -k或--kilobytes:指定区块大小为1024字节;
-l或--local:仅显示本地端的文件系统;
-m或--megabytes:指定区块大小为1048576字节;
--no-sync:在取得磁盘使用信息前,不要执行sync指令,此为预设值;
-P或--portability:使用POSIX的输出格式;
--sync:在取得磁盘使用信息前,先执行sync指令;
-t<文件系统类型>或--type=<文件系统类型>:仅显示指定文件系统类型的磁盘信息;
-T或--print-type:显示文件系统的类型;
-x<文件系统类型>或--exclude-type=<文件系统类型>:不要显示指定文件系统类型的磁盘信息;
--help:显示帮助;
--version:显示版本信息。
常用实例:
[root@localhost ~]# df -h //查看磁盘空间
十一、du命令
du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的。
语法 :
du [选项] [文件]
选项:
-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或--kilobytes 以KB(1024bytes)为单位输出。
-m或–megabytes 以MB为单位输出。
-s或--summarize 仅显示总计,只列出最后加总的值。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
--exclude=<目录或文件> 略过指定的目录或文件。
-D或--dereference-args 显示指定符号链接的源文件大小。
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-l或--count-links 重复计算硬件链接的文件。
实例:
[root@localhost ~]# du . //查看当前目录大小
[root@localhost ~]# du test.txt //查看test.txt文件大小
[root@localhost ~]# du -sh zabbix-3.2.6.tar.gz //已k,m,g查看zabbix总和大小