linux常用命令(一)
1 touch命令
1.1 命令参数
-a change only the access time
-c, --no-create do not create any files
-d, --date=STRING parse STRING and use it instead of current time
-f (ignored)
-h, --no-dereference affect each symbolic link instead of any referenced
file (useful only on systems that can change the
timestamps of a symlink)
-m change only the modification time
-r, --reference=FILE use this file's times instead of current time
-t STAMP use [[CC]YY]MMDDhhmm[.ss] instead of current time
--time=WORD change the specified time:
WORD is access, atime, or use: equivalent to -a
WORD is modify or mtime: equivalent to -m
--help display this help and exit
--version output version information and exit
1.2 命令实例
touch file 创建一个名字为file的文件
[root@sherwin shenwei]# touch file
[root@sherwin shenwei]# ls
file
touch file{1..10} 创建file1—file10共10个文件
[root@sherwin shenwei]# touch file{1..10}
[root@sherwin shenwei]# ls
file file1 file10 file2 file3 file4 file5 file6 file7 file8 file9
2 mv命令
2.1 命令参数
-b :若需覆盖文件,则覆盖前先行备份。
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会更新(update)
-t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
2.2 命令实例
1.修改文件名称
[root@sherwin shenwei]# ls
test.txt
[root@sherwin shenwei]# mv test.txt test.log
[root@sherwin shenwei]# ls
test.log
2.将多个文件移动到指定的目录中。
**note:目标目录要放置在前面**
[root@sherwin /]# cd shen
[root@sherwin shen]# ls
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9
[root@sherwin shen]# mv -t /shenwei file*
[root@sherwin shen]# ls
[root@sherwin shen]# cd ..
[root@sherwin /]# cd shenwei
[root@sherwin shenwei]# ls
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9
3.将文件file1改名为file2,如果file2已经存在,增加参数 i 可以进行提示,省略也可以
**note:-i 可以省去不写**
[root@sherwin shen]# cd /shenwei
[root@sherwin shenwei]# ls
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9 test.log
[root@sherwin shenwei]# cd /shen
[root@sherwin shen]# mv -i file1 /shenwei
mv: overwrite `/shenwei/file1'? yes
[root@sherwin shen]# ls
file2
[root@sherwin shen]# cd /shenwei
[root@sherwin shenwei]# ls
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9 test.log
4.将文件file1改名为file2,如果file2已经存在,则强制覆盖,增加参数 -f
[root@sherwin shenwei]# cd /shen
[root@sherwin shen]# ls
file2
[root@sherwin shen]# cd /shenwei
[root@sherwin shenwei]# ls
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9 test.log
[root@sherwin shenwei]# cd /shen
[root@sherwin shen]# mv -f file2 /shenwei
[root@sherwin shen]# cd /shenwei
[root@sherwin shenwei]# ls
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9 test.log
[root@sherwin shenwei]#
[root@sherwin shenwei]# cd /shen
[root@sherwin shen]# ls
3 cp命令
该命令的功能是将给出的文件或目录拷贝到另一文件或目录中
3.1 语法
语法: cp [选项] [源文件或目录 目标文件或目录]
3.2 命令参数
-a 该选项通常在拷贝目录时使用。他保留连接、文件属性,并且递归地拷贝目录,其作用等于后面的dpr选项的组合
-d 拷贝时保留连接
-f 删除已经存在的目标文件并且不进行提示
-i 和f相反,在覆盖文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。 此参数可以时cp命令安全,建议用户在拷贝的时候增加。
-p 除了复制源文件中的内容之外,还将其修改时间和访问权限也复制到新文件中。
-r 递归复制目中的文件
-l 不做拷贝,只做链接文件
-v —— 带有 -v (verbose)选项,cp命令将告诉用户正在做什么。很多Linux命令都带有具有相同意义的 -v 选项。
3.3 命令实例
1.将文档 file 复制成 file1 . –i为提示确认
note:这个与mv的区别,mv是重命名,而cp是进行复制文件
[root@sherwin shenwei]# cd /shen
[root@sherwin shen]# ls
file file4
[root@sherwin shen]# cp -i file file1
[root@sherwin shen]# ls
file file1 file4
2.将文档 file 复制到目录shemwei下,文件名仍为 file
[root@sherwin shenwei]# ls
file1 file10 file11 file2 file3 file4 file5 file6 file7 file8 file9 test.log
[root@sherwin shenwei]# cd /shen
[root@sherwin shen]# ls
file file1 file4
[root@sherwin shen]# cp file /shenwei
[root@sherwin shen]# cd /shenwei
[root@sherwin shenwei]# ls
file file1 file10 file11 file2 file3 file4 file5 file6 file7 file8 file9 test.log
[root@sherwin shenwei]#
4.递归复制目录
note:如果目标文件不存在则新建文件夹并将文件复制到其中,倘若文件夹存在则在将源文件夹及其包含的内容复制到其中。
[root@sherwin /]# ls
bin boot dev etc home lib lib64 lost+found media mnt opt proc root sbin selinux srv sys tmp usr var
[root@sherwin /]# mkdir shen
[root@sherwin /]# ls
bin boot dev etc home lib lib64 lost+found media mnt opt proc root sbin selinux shen srv sys tmp usr var
[root@sherwin /]# cd shen
[root@sherwin shen]# mkdir shen{1..10}
[root@sherwin shen]# ls
shen1 shen10 shen2 shen3 shen4 shen5 shen6 shen7 shen8 shen9
[root@sherwin shen]# cd ..
[root@sherwin /]# cp -r shen shenwei
[root@sherwin /]# ls
bin boot dev etc home lib lib64 lost+found media mnt opt proc root sbin selinux shen shenwei srv sys tmp usr var
[root@sherwin /]# cd shenwei
[root@sherwin shenwei]# ls
shen1 shen10 shen2 shen3 shen4 shen5 shen6 shen7 shen8 shen9
[root@sherwin shenwei]# cd ..
[root@sherwin /]# cp -r shen shenwei
[root@sherwin /]# cd shenwei
[root@sherwin shenwei]# ls
shen shen1 shen10 shen2 shen3 shen4 shen5 shen6 shen7 shen8 shen9
[root@sherwin shenwei]# cd shen
[root@sherwin shen]# ls
shen1 shen10 shen2 shen3 shen4 shen5 shen6 shen7 shen8 shen9
[root@sherwin shen]#
4 cat命令
cat命令常用来查看文件内容,并且可以跟几个文件一起连接起来显示,可以跟重定向命令(后续会讲到)一起使用为文件输入或追加内容。
cat主要有三大功能:
1. 一次显示整个文件:cat filename
2. 从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
3. 将几个文件合并为一个文件:cat file1 file2 > file
4.1 语法
语法cat [选项] [文件]...
4.2 命令参数
-A, --show-all 等价于 -vET
-b, --number-nonblank 对非空输出行编号
-e 等价于 -vE
-E, --show-ends 在每行结束处显示 $
-n, --number 对输出的所有行编号,由1开始对所有输出的行数编号
-s, --squeeze-blank 有连续两行以上的空白行,就代换为一行的空白行
-t 与 -vT 等价
-T, --show-tabs 将跳格字符显示为 ^I
-u (被忽略)
-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
4.3 命令实例
-
把 Shen2019.log 的文件内容加上行号后输入 Shen2019.log.cat 这个文件中
[root@ERICSSON test]# ls Shen2019.log [root@ERICSSON test]# cat Shen2019.log Shen2019-01 Shen2019-02 Shen2019-03 Shen2019-04 Shen2019-05 Shen2019-06 Shen2019-07 Shen2019-08 Shen2019-09 Shen2019-10 Shen2019-11 Shen2019-12 [root@ERICSSON test]# cat -n Shen2019.log > Shen2019.log.cat [root@ERICSSON test]# cat Shen2019.log.cat 1 Shen2019-01 2 Shen2019-02 3 Shen2019-03 4 Shen2019-04 5 Shen2019-05 6 Shen2019-06 7 Shen2019-07 8 Shen2019-08 9 Shen2019-09 10 Shen2019-10 11 Shen2019-11 12 Shen2019-12 [root@ERICSSON test]# ls Shen2019.log Shen2019.log.cat
-
使用here doc来生成文件
输出: [root@ERICSSON test]# cat > log_test <<EOF > Hello > World > Linux > PWD = $(pwd) > EOF [root@ERICSSON test]# cat log_test Hello World Linux PWD = /test [root@ERICSSON test]# 说明: 注意粗体部分,here doc可以进行字符串替换。 备注:
-
tac命令 (反向列示)
[root@ERICSSON test]# tac log_test PWD = /test Linux World Hello [root@ERICSSON test]#
说明:tac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来!
5 head命令
用来显示文件开头的内容,如果不指定参数,则默认显示前10行
5.1 语法
语法:head[参数][文件]
5.2 命令参数
-q 隐藏文件名
-v 显示文件名
-c<字节> 显示字节数
-n<行数> 显示的行数
5.3 命令实例
-
显示文件的默认前10行
[root@sherwin test]# head Shen2019.log Shen2019-01 Shen2019-02 Shen2019-03 Shen2019-04 Shen2019-05 Shen2019-06 Shen2019-07 Shen2019-08 Shen2019-09 Shen2019-10 Shen2019-11 Shen2019-12
-
显示文件的前 n 行
[root@sherwin test]# head -n 4 Shen2019.log Shen2019-01 Shen2019-02 Shen2019-03 Shen2019-04
-
显示文件前n个字节
[root@ERICSSON test]# head -c 10 Shen2019.log Shen2019-0[root@ERICSSON test]#
-
显示文件除了后n行之外的全部内容
[root@sherwin test]# head -n -4 Shen2019.log Shen2019-01 Shen2019-02 Shen2019-03 Shen2019-04 Shen2019-05 Shen2019-06 Shen2019-07 Shen2019-08
-
显示文件除了最后n个字节以外的内容
[root@ERICSSON test]# head -c -40 Shen2019.log Shen2019-01 Shen2019-02 Shen2019-03 Shen2019-04 Shen2019-05 Shen2019-06 Shen2019-07 Shen2019-08 Shen2019[root@ERICSSON test]#
6 tail命令
tail 命令从指定点开始将文件写到标准输出,如果不指定参数,则默认显示后10行
6.1 语法
语法:tail[参数][文件]
6.2 命令参数
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示行数
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
note:使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容.
6.3 命令实例
-
显示文件末尾指定的行数内同
[root@sherwin test]# tail -n 5 Shen2019.log Shen2019-08 Shen2019-09 Shen2019-10 Shen2019-11 Shen2019-12
-
显示默认的10行数的内容
[root@sherwin test]# tail Shen2019.log Shen2019-03 Shen2019-04 Shen2019-05 Shen2019-06 Shen2019-07 Shen2019-08 Shen2019-09 Shen2019-10 Shen2019-11 Shen2019-12
-
循环查看文件的内容
[root@sherwin ~]# ping 10.0.0.21 > test.log('>'表示重定向,后面会讲到) [root@sherwin ~]# tail -f test.log PING 10.0.0.21 (10.0.0.21) 56(84) bytes of data. 64 bytes from 192.168.120.204: icmp_seq=1 ttl=64 time=0.038 ms 64 bytes from 192.168.120.204: icmp_seq=2 ttl=64 time=0.036 ms 64 bytes from 192.168.120.204: icmp_seq=3 ttl=64 time=0.033 ms 64 bytes from 192.168.120.204: icmp_seq=4 ttl=64 time=0.027 ms 64 bytes from 192.168.120.204: icmp_seq=5 ttl=64 time=0.032 ms 64 bytes from 192.168.120.204: icmp_seq=6 ttl=64 time=0.026 ms 64 bytes from 192.168.120.204: icmp_seq=7 ttl=64 time=0.030 ms 64 bytes from 192.168.120.204: icmp_seq=8 ttl=64 time=0.029 ms 64 bytes from 192.168.120.204: icmp_seq=9 ttl=64 time=0.044 ms