4 linux基础命令及特殊字符知识

 

命令记录:
1.mkdir 创建目录
-p 创建多层目录
[root@oldboyedu-01 ~]# mkdir -p /data/test //递归创建目录
[root@oldboyedu-01 ~]# ls /data/
num.txt test
[root@oldboyedu-01 ~]# mkdir -pv /data/test/a/b/c //v查看创建过程
mkdir: created directory `/data/test/a'
mkdir: created directory `/data/test/a/b'
mkdir: created directory `/data/test/a/b/c'

2.ls list 列表 显示目录里面的内容
-l 显示详细信息
-F 给不同类型的文件加上不同的尾巴 目录/
-r 逆序
-t 按照文件的修改时间进行排序
3.cd 进入到目录中
cd - ===== cd $OLDPWD

cd . ===== 当前目录 复制/移动 cp /etc/hosts .
cd .. ===== 进入到当前目录的上一级目录
cd ~ ===== 进入当前用户的家目录 回老家
(root用户) ~ === /root
(普通用户) ~ === /home/
cd ===== 回老家 回家

cd - #快速回到上一次的所在位置/目录

4.pwd 显示你当前的位置

5.touch 摸 创建文件 更新文件的时间戳

6.vi 编辑器
##第一个里程碑-打开文件
vi /data/oldboy.txt

##第二个里程碑-进入编辑模式并增加内容
按i,进入到编辑模式(插入)

书写内容
##第三个里程碑-退出编辑模式
esc 退出编辑模式

##第四个里程碑-保持并退出
:wq #保持并退出

##第五个里程碑-查看文件的内容
[root@oldboyedu-01 data]# cat /data/oldboy.txt
I am studying linux.

:wq 保持并退出 write quit
:q 退出
:q! 强制退出不保存
:wq! 强制退出并保存
7.cat 查看文件的内容
-n 显示文件的内容和行号

8.echo 把echo后面的文字显示出来
-n 取消输出每行结尾的回车
-e 让echo命令支持 \n \t 转义字符
[root@oldboyedu-01 ~]# vim test.txt^C
[root@oldboyedu-01 ~]# echo hello ming >>test.txt
[root@oldboyedu-01 ~]# cat test.txt
hello ming
[root@oldboyedu-01 ~]# echo hello meng >>test.txt
[root@oldboyedu-01 ~]# cat test.txt
hello ming
hello meng
[root@oldboyedu-01 ~]# cat >>test.txt <<EOF
> ming
> meng
> hi
> EOF
[root@oldboyedu-01 ~]# cat test.txt
hello ming
hello meng
ming
meng
hi
[root@oldboyedu-01 ~]# eho myerror 1>>test.txt //追加重定向;1>>等同于>>
-bash: eho: command not found
[root@oldboyedu-01 ~]# eho myerror 2>>test.txt //错误追加重定向
[root@oldboyedu-01 ~]# cat test.txt
hello ming
hello meng
ming
meng
hi
-bash: eho: command not found

[root@oldboyedu-01 ~]# echo myerror 1>> right.txt 2>>error.txt //法一
[root@oldboyedu-01 ~]# eho myerror 1>> right.txt 2>>error.txt
[root@oldboyedu-01 ~]# cat right.txt
myerror
[root@oldboyedu-01 ~]# cat error.txt
-bash: eho: command not found

[root@oldboyedu-01 ~]# eho myerror 1>> right_error.txt 2>&1 //法二
[root@oldboyedu-01 ~]# echo myerror 1>> right_error.txt 2>&1
[root@oldboyedu-01 ~]# cat right_error.txt
-bash: eho: command not found
myerror

9.xargs 分组
-n 分为几组
[root@oldboyedu-01 data]# echo 1 2 3 4 5 >>num.txt
[root@oldboyedu-01 data]# cat num.txt
1 2 3 4 5
[root@oldboyedu-01 data]# xargs -n2 /data/num.txt
^C
[root@oldboyedu-01 data]# xargs -n2 </data/num.txt //输入重定向;追加输入重定向
1 2
3 4
5

10.cp 复制文件或目录 默认无法复制目录
-r 递归复制 复制目录及目录里面的内容
-p 复制的时候保持属性不变
-a -pdr 复制所有
[root@oldboyedu-01 ~]# cp /data/ /opt/
cp: omitting directory `/data/'
[root@oldboyedu-01 ~]# cp -r /data/ /opt/ //递归复制
//排版哥;PPT哥;三剑客哥(三哥);演讲哥;画图哥

11.mv move 移动
//VMware 给你的虚拟机拍摄快照
12.rm remove删除文件或目录 默认无法删除目录
-r 递归删除
-f 强制删除
13.find 查找文件
find 哪里 什么类型 什么名字
-maxdepth 最大的深度
-type 找什么类型的
f file 文件
d directory 目录
-name 什么名字
-mtime 根据修改时间找出对应的文件
[root@oldboyedu-01 ~]# find /data/ -type f -name "test.txt"
[root@oldboyedu-01 ~]# ls /data/
num.txt
[root@oldboyedu-01 ~]# find /data/ -type f -name "num.txt"
/data/num.txt
//管道:将前面命令的结果,通过“管道”传递给后面的命令
[root@oldboyedu-01 ~]# find /data/ -type f -name "*.txt"|xargs ls -al
-rw-r--r--. 1 root root 10 Dec 12 00:24 /data/num.txt
[root@oldboyedu-01 ~]# find /data/ -type f -name "*.txt"|xargs cat
1 2 3 4 5

14. grep 三剑客老三 过滤
-v 排除
-A数字 显示grep过滤出的的内容及接下来的几行
-n 给grep找出的行加上行号
-o 显示grep正则每次找到了什么 grep的执行过程
egrep 支持高级正则====grep -E
[root@oldboyedu-01 ~]# cat >test.txt<<EOF
> test
> liyao
> oldboy
> EOF
[root@oldboyedu-01 ~]# cat test.txt
test
liyao
oldboy
[root@oldboyedu-01 ~]# grep "oldboy" test.txt
oldboy
[root@oldboyedu-01 ~]# grep "ol" test.txt
oldboy
[root@oldboyedu-01 ~]# grep -v "ol" test.txt //-v 排除
test
liyao

15. head 取文件的前几行 默认是前10行
-n数字 === -数字 取前xx行
16. tail 取文件的最后的几行 默认是最后10行
-f 显示文件的实时的更新
tail -f ==== tailf
[root@oldboyedu-01 ~]# head -n2 test.txt
test
liyao
[root@oldboyedu-01 ~]# tail -n2 test.txt
liyao
oldboy

[root@oldboyedu-01 ~]# awk '/oldboy/' test.txt //awk ! 非 取反
oldboy
[root@oldboyedu-01 ~]# awk '!/oldboy/' test.txt
test
liyao
[root@oldboyedu-01 ~]# awk '/ol/' test.txt
oldboy
[root@oldboyedu-01 ~]# awk '!/oldb/' test.txt
test
liyao

[root@oldboyedu-01 ~]# sed '/oldboy/d' test.txt //sed d 删除包含
test
liyao
[root@oldboyedu-01 ~]# sed '/oldb/d' test.txt
test
liyao

 

19. alias 设置别名
alias 别名='命令'
[root@oldboyedu-01 ~]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@oldboyedu-01 ~]# alias rm cp mv
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

[root@oldboyedu-01 ~]# cp /data/num.txt /opt/
[root@oldboyedu-01 ~]# cp /data/num.txt /opt/
cp: overwrite `/opt/num.txt'? ^C
[root@oldboyedu-01 ~]#
[root@oldboyedu-01 ~]# \cp /data/num.txt /opt/ //跳过提示!法一
[root@oldboyedu-01 ~]# which cp
alias cp='cp -i'
/bin/cp
[root@oldboyedu-01 ~]# /bin/cp /data/num.txt /opt/ //法二
[root@oldboyedu-01 ~]# alias cp //法三
alias cp='cp -i'
[root@oldboyedu-01 ~]# unalias cp //删除别名
[root@oldboyedu-01 ~]# alias cp
-bash: alias: cp: not found
[root@oldboyedu-01 ~]# cp /data/num.txt /opt/

[root@oldboyedu-01 ~]# alias cp='cp -i' //设置别名
[root@oldboyedu-01 ~]# alias cp
alias cp='cp -i'

[root@oldboyedu-01 ~]# alias rm='echo do not use rm'
[root@oldboyedu-01 ~]# alias rm
alias rm='echo do not use rm'
[root@oldboyedu-01 ~]# rm /data/num.txt
do not use rm /data/num.txt
[root@oldboyedu-01 ~]# ls /data/num.txt
/data/num.txt

[root@oldboyedu-01 ~]# echo "alias rm='echo do not use rm'" >>/etc/profile
[root@oldboyedu-01 ~]# tail -1 /etc/profile
alias rm='echo do not use rm'
[root@oldboyedu-01 ~]# source /etc/profile //永久生效 G gg o

[root@oldboyedu-01 ~]# cat /root/.bashrc
# .bashrc

# User specific aliases and functions

#alias rm='rm -i' //填坑!个别情况而已!
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
[root@oldboyedu-01 ~]# rm /data/num.txt
do not use rm /data/num.txt
[root@oldboyedu-01 ~]# \rm /data/num.txt
[root@oldboyedu-01 ~]# ls /data/num.txt
ls: cannot access /data/num.txt: No such file or directory

 

---------------------------------------------------------------------------

17. awk 三剑客老大 擅长取列 取行 计算
NR表示行号
$数字 某一列
$0 表示一整行内容
{print显示}
-F指定分隔符或多个分隔符

'NR==2{print $2}'
! 表示取反 排除

awk定位的方法
awk 'NR==1'
awk 'NR==1,NR==10'
awk '//'

18. sed 三剑客老二 取行 替换 修改文件的内容
-n 取消默认输出 一般与p一起使用
-i 修改文件的内容

#查找显示某几行
'10p'
'10,20p'

#替换
's###g'
's@@@g'

'2s#oldboy#oldgirl#gp'

#删除 d===delete
'/找谁/d'


sed -n '1p'
sed -n '1,10p'
sed -n '10,$p'
sed -n '//p'
eg:只查看ett.txt文件(100行)内的第20到第30行的内容。
//法一:
[root@oldboyedu-01 ~]#sed -n '20,30p' ett.txt //sed擅长行,会把文件内容默认显示出来,-n取消默认
20
21
22
23
24
25
26
27
28
29
30
//法二:
[root@oldboyedu-01 ~]#head -30 ett.txt |tail -11
20
21
22
23
24
25
26
27
28
29
30
[root@oldboyedu-01 ~]#awk 'NR==20' ett.txt //awk擅长列,行号NR
20
//法三:
[root@oldboyedu-01 ~]#awk 'NR==20,NR==30' ett.txt
20
21
22
23
24
25
26
27
28
29
30

[root@oldboyedu-01 ~]#grep "20" ett.txt //特殊,刚好内容和行号相同
20
[root@oldboyedu-01 ~]#grep -A "20" ett.txt
^C
[root@oldboyedu-01 ~]#grep -A10 "20" ett.txt //以下10行
20
21
22
23
24
25
26
27
28
29
30
[root@oldboyedu-01 ~]#grep -B10 "20" ett.txt //以上10行
10
11
12
13
14
15
16
17
18
19
20

eg:将目录/oldboy目录下以及该目录下所有以扩展名.sh结尾的文件,包含oldboy的字符串全部替换成oldgirl。
//分两步:
[root@oldboyedu-01 ~]#find /oldboy/ -type f -name "*.sh"
/oldboy/ett.sh
[root@oldboyedu-01 ~]#sed 's#oldboy#oldgril#g' /oldboy/ett.sh //替换s###g
hello
oldgril

[root@oldboyedu-01 ~]#sed 's#oldboy#oldgril#g' /oldboy/ett.sh >/oldboy/new.sh
[root@oldboyedu-01 ~]#cat /oldboy/new.sh
hello
oldgril
[root@oldboyedu-01 ~]#cat /oldboy/ett.sh
hello
oldboy
[root@oldboyedu-01 ~]#sed -i 's#oldboy#oldgril#g' /oldboy/ett.sh //-i直接修改
[root@oldboyedu-01 ~]#cat /oldboy/ett.sh
hello
oldgril

//一步到底:
[root@oldboyedu-01 ~]#cat /oldboy/ett.sh /oldboy/new.sh
hello
oldboy

hello
oldboy
[root@oldboyedu-01 ~]#find /oldboy/ -type f -name "*.sh"
/oldboy/ett.sh
/oldboy/new.sh
[root@oldboyedu-01 ~]#find /oldboy/ -type f -name "*.sh" |xargs sed 's#oldboy#oldgirl#g'
hello
oldgirl

hello
oldgirl
[root@oldboyedu-01 ~]#find /oldboy/ -type f -name "*.sh" |xargs sed 's#oldboy#oldgirl#g' -i
[root@oldboyedu-01 ~]#cat /oldboy/ett.sh /oldboy/new.sh
hello
oldgirl

hello
oldgirl

posted @ 2017-12-12 21:58  bkycrmn  阅读(176)  评论(0)    收藏  举报