目录
cp
默认情况下命令格式为cp 源文件 目标文件,使用-t 可以颠倒顺序 格式为 cp –t 目标文件 源文件
shutdown -r 重启
shutdown -c 中断关机:当执行"shutdown -h 12:00"指令时,只要按+键就可以中断关机的指令
cat
命令:创建文件,显示内容,一个不存在的文件或者字符不能输入使用<的输出重定向。
cat filename 一次显示整个文件
cat > filename 从键盘创建一个文件
cat file1 file2 > file 将几个文件合并为一个文件
cat -n linuxfile1 > linuxfile2 把 linuxfile1 的档案内容加上行号后输入 linuxfile2 这个档案里
cat -b linuxfile1 linuxfile2 >> linuxfile3 把 linuxfile1 和 linuxfile2 的档案内容加上行号(空白行不加)之后将内容附加到linuxfile3 里。
把 linuxfile1 的档案内容加上行号后输入 linuxfile2 这个档案里
cat -n linuxfile1 > linuxfile2
把 linuxfile1 和 linuxfile2 的档案内容加上行号(空白行不加)之后将内容附加到 linuxfile3 里。
cat -b linuxfile1 linuxfile2 >> linuxfile3
cat /dev/null > /etc/test.txt 此为清空/etc/test.txt档案内容
cat <<boy >test.sh 内容 boy (直到输入到boy 停止)
cat << girl >> test.sh 内容 girl
在vim中:
每行的行首都添加一个字符串:%s/^/要插入的字符串
每行的行尾都添加一个字符串:%s/$/要插入的字符串
解释:
% 代表针对被编辑文件的每一行进行后续操作
$ 代表一行的结尾处
^ 代表一行的开头处
more
查看文件内容:看完内容会自动退出。
f 一页一页的往下查看内容 空格 b 一页一页的往上查看内容
[root@xuexi ~]# more -5 -d /etc/passwd 指定一屏显示5行,并且显示操作帮助
[root@xuexi ~]# more -5 -dc /etc/passwd 不想滚屏时,就需要使用-c选项
[root@xuexi ~]# more -5 +4 /etc/passwd 从第4行开始显示
[root@xuexi ~]# more -5 +/shutdown /etc/passwd 查找指定字符串,可以看到从找到第字符串前两行开始显示
less
一页一页的查看文件内容 重要 常用(如果看完了不会自动退出)
-N 显示行号
f 一页一页的往下查看内容 空格
b 一页一页的往上查看内容
/ 搜索文件内容
n 查找下一个内容
N 查找上一个内容
和vim移动快捷键类似
g 首行
G 尾行
q 退出
head
显示文件的内容 默认前10行 重点
-n 显示多少行内容 简写 head -4 显示前4行
-c 截取文本的前几个字符 head -c5 前5个字符
tail
显示文件的内容 默认后10行 重点
-n 显示多少行内容 简写 tail -5 显示最后5行
tail -f 等同于--follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止
tail -F 等同于--follow=name --retry,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪
tailf 等同于tail -f -n 10(貌似tail -f或-F默认也是打印最后10行,然后追踪文件),与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件,所以tailf特别适合那些便携机上跟踪日志文件,因为它减少了磁盘访问,可以省电
grep
过滤出我们需要查找的文件内容 三剑客老三
-v 取反
grep '内容' file
cat file|grep '内容'
tr
替换文件内容
tr [options] [SET1] [SET2]
-c
:使用SET1的补集,-d
:删除字符-s
:压缩字符-t
:截断SET1,使得SET1的长度和SET2的长度相同
-c [root@xuexi tmp]# echo "abcdefo"| tr -c "ao\n" "y"
ayyyyyo
-d 删除 tr -d [a-z] < oldboy.txt 删除a-z的所有字母
-s 删除所有重复出现字符序列,只保留第一个
cat file | tr -s [a-zA-Z] > new_file
-t
:截断SET1,使得SET1的长度和SET2的长度相同
# echo $PATH | tr -s ":" "\n" 把路径变量中的冒号":",替换成换行符"\n"
默认情况下,当指定的SET1比SET2字符长时,从最后一个对应的位置开始,SET1的剩余字符都和SET2的最后一个字符对应
[root@centos7 ~]# echo "12345" | tr "0-9" "456"
56666
tr ":" " " < /etc/passwd
\n 回车
cat file | tr "abc" "xyz" > new_file 在file中出现的"a"字母,都替换成"x"字母,"b"字母替换为"y"字母,"c"字母替换为"z"字母。而不是将字符串"abc"替换为字符串"xyz"。
cat file | tr [a-z] [A-Z] > new_file (小写 --> 大写)
cat file | tr [0-9] [a-j] > new_file 把文件中的数字0-9替换为a-j
vim 进阶替换
:s#root#oldboy# 替换光标所在行的第一个root
:s#root#oldboy#g 替换光标所在行的所有root为oldboy
:%s#root#oldboy#g 替换文档中所有出现的root为oldboy
?字符串—— 从下至上搜索该字符串
/ 字符串——从上至下搜索该字符串
#可换成不同符号
^ 开头
特殊符号
> 输出重定向 先清空在写入
>> 追加重定向 内容追加到文件尾部
< 输入重定向 tr < file cat
1> 标准正确输出 简写>
2> 标准错误输出
1>>
2>>
在三阶段 Shell编程中使用
正确和错误的结果 可分别重定向到不同的文件中
ls oldboy.txt > ok.txt 正确的结果输出到文件
ls oldboy.txt 2>ok.txt 错误的结果输出到文件
lss >>ok.txt 2>>ok.txt 正确和错误的输出到文件
ls /tmp/ >>ok.txt 2>>ok.txt 正确和错误的输出到文件
lss &>ok.txt 正确和错误的输出到文件
常用的书写方式
2>&1 &>file
对于重定向中的标准输出模式,可以省略文件描述符1不写,而错误输出模式的文件描述符2是必须要写的,0代表标准输入重定向。
一个存在的文件,标准输出即可将原本要输出到屏幕的信息写入到文件中,而错误的输出重定向则依然把信息输出到屏幕上。
一个错误的命令信息,可通过错误的输出重定向,将信息显示到文件中
[root@oldboyedu tmp]# ls - xxxxx
ls: cannot access -: No such file or directory
ls: cannot access xxxxx: No such file or directory
[root@oldboyedu tmp]# ls -l xxxx > tete.txt
ls: cannot access xxxx: No such file or directory
[root@oldboyedu tmp]# ls -l xxxx 2> tete.txt
[root@oldboyedu tmp]# echo tete.txt
tete.txt
[root@oldboyedu tmp]# cat tete.txt
ls: cannot access xxxx: No such file or directory
; 命令的分隔符 不管前面命令是否执行失败 继续执行;后面的命令
使用一行命令 创建一个oldboy目录 在oldboy目录下 创建 一个 alex.txt 文本 在cat /etc/hosts
这条路是通的 && 我就走这条路 || 我就换条路
&& 前面的命令执行成功才会执行 && 后面的命令
|| 前面的命令执行不成功 则执行|| 后面的命令