二、linux题型
1、[root@pyrene ~]#
这里root是当前登录用户 @分割 pyrene是主机名 ~:表示当前登录环境 #:表示管理员
2、在/data下面创建一个文件oldboy.txt
[root@pyrene ~]# touch data/pyrene.txt
[root@pyrene ~]# ls data/
oldboy.txt
3、在上面的文件中添加一句:I am study linux
进入data目录中,进入vim编辑模式。然后输入内容保存 cat查看
方法二:用echo的方式
[root@pyrene ~]# touch data/pyrene.txt
[root@pyrene ~]# ls data/
pyrene.txt
方法三:
[root@pyrene data]# cat >>pyrene.txt
i am study linux
^C
[root@pyrene data]# cat pyrene.txt
i am study linux
4、已知文件test.txt内容为
test
liyao
oldboy
请给出打印test.txt内容的时候不包含oldboy字符串的命令
[root@oldboy xx]# find /xx -type f ! -name "file10"|xargs rm -f
[root@oldboy xx]# ls
file10
[root@oldboy xx]# find /xx -type f ! -name "file10" -exec rm -f {} \;
[root@oldboy xx]# ls
file10
[root@pyrene ~]# grep -v oldboy test.txt
test
liyao
方法二、
[root@pyrene ~]# head -2 test.txt
test
liyao
5、连续创建目录 oldboy/data 这两个目录
[root@pyrene ~]# mkdir /oldboy/data/a/bc
mkdir: 无法创建目录"/oldboy/data/a/bc": 没有那个文件或目录
[root@pyrene ~]# mkdir -p /oldboy/data/a/bc
[root@pyrene ~]# tree /oldboy/
/oldboy/
└── data
└── a
└── bc
6、已知/tmp目录下已经存在test.txt文件,如何执行命令才能把/mnt/test.txt拷贝到/tmp下覆盖掉/tmp/test.txt。并且不提示自动覆盖
[root@pyrene ~]# touch /tmp/test.txt
[root@pyrene ~]# touch /mnt/test.txt
[root@pyrene ~]# cp /mnt/test.txt /tmp/
cp:是否覆盖"/tmp/test.txt"?
[root@pyrene ~]# \cp /mnt/test.txt /tmp/ 反斜线屏蔽别名功能
[root@pyrene ~]# /bin/cp /mnt/test.txt /tmp/
上在linux下输入cp实际上执行的是cp –I 加上一个\或者写cp的全路径/bin/cp就是让这次的cp命令不使用别名(cp -i)运行
[root@pyrene ~]# alias rm='echo this command does not allow to use.'
[root@pyrene ~]# alias|grep rm
alias rm='echo this command does not allow to use.'
设置别名的时候要用echo,如果不用echo就不能设置别名
上面的别名只是内存中的,如果永久生效就要放到下面
/ect/profile 全局生效
~/.bashrc 当前用户生效
7、查看ett.txt文件(100行)内第20到30行的内容
[root@pyrene ~]# seq 100 >> ett.txt 首先把内容填充到里面
方法一
[root@pyrene ~]# head -30 ett.txt |tail -11
20
21
22
23
24
25
26
27
28
29
30
方法二
[root@pyrene ~]# sed -n '20,30'p ett.txt //这个是最有效率的
20
21
22
23
24
25
26
27
28
29
30
上面的sed –n 表示取消默认输出,p为print,打印
方法三:
[root@pyrene ~]# awk 'NR>19&&NR<31' ett.txt
20
21
22
23
24
25
26
27
28
29
30
方法四
[root@pyrene ~]# grep 20 -A 10 ett.txt
20
21
22
23
24
25
26
27
28
29
30
方法五
[root@pyrene ~]# grep 25 -C 5 ett.txt
20
21
22
23
24
25
26
27
28
29
30
方法六
[root@pyrene ~]# grep 30 -B 10 ett.txt
20
21
22
23
24
25
26
27
28
29
30
8、把/oldboy目录及其子目录下所有以扩展名.sh结尾的文件中包含oldboy的字符串全部替换为oldgirl
[root@pyrene oldboy]# echo 'oldboy'>test/del.sh
[root@pyrene oldboy]# echo 'oldboy'>test.sh
[root@pyrene oldboy]# echo 'oldboy'>.sh
[root@pyrene oldboy]# tree
.
├── test
│?? └── del.sh
└── test.sh
1 directory, 2 files
上面是模拟出来这些文件
[root@pyrene oldboy]# find /oldboy/ -type f -name "*.sh" //首先把sh结尾的文件查找出来
/oldboy/test/del.sh
/oldboy/test.sh
/oldboy/.sh
[root@pyrene oldboy]# find /oldboy/ -type f -name "*.sh"|xargs //再把这些文件变成数据流
/oldboy/test/del.sh /oldboy/test.sh /oldboy/.sh
[root@pyrene oldboy]# find /oldboy/ -type f -name "*.sh"|xargs cat //然后查看
oldboy
oldboy
oldboy
oldboy
[root@pyrene oldboy]# find /oldboy/ -type f -name "*.sh"|xargs sed 's#oldboy#oldgirl#g' //先在内存中替换看看是否成功
oldgirl
oldgirl
oldgirl
[root@pyrene oldboy]# find /oldboy/ -type f -name "*.sh"|xargs sed -i 's#oldboy#oldgirl#g'
[root@pyrene oldboy]# find /oldboy/ -type f -name "*.sh"|xargs cat //查看
oldgirl
oldgirl
oldgirl
方法二
下面的方法首先是执行查找
[root@pyrene oldboy]# sed -i 's#oldgirl#oldboy#g' `find /oldboy/ -type f -name "*.sh"`
[root@pyrene oldboy]# find /oldboy/ -type f -name "*.sh" |xargs cat
oldboy
oldboy
oldboy
分区
硬盘使用前,一般要分区,格式化(创建文件系统)
分区:
一块硬盘:
主分区、扩展分区、逻辑分区
主分区+扩展分区的数量<=4,其中一个主分区可以用一个扩展分区替代,扩展分区最多只能有一个
扩展分区不能直接使用,还需要在上面创建逻辑分区,逻辑分区可有多个
主分区+扩展分分区 编号只能1-4 ,逻辑分区的编号只能从5开始
下面是三套服务器分区方案
1、常规分区:数据不是特别重要的业务(集群的某个节点)
/boot 引导分区 200m主分区
swap 交换分区 内存的1.5倍,内存大于8G就给8-16G
/ linux所有目录定点,剩余所有空间
2、数据重要(数据库、存储服务器)
/boot 引导分区 200m主分区
swap 交换分区 内存的1.5倍,内存大于8G就给8-16G
/ linux所有目录定点 100-200G
/data 所有,存放数据 方便备份
3、特大网站,门户(产品线特别多 需求)
可能一个导航就是一组服务器,支付就是一组服务器,等等
/boot 引导分区 200m主分区
swap 交换分区 内存的1.5倍,内存大于8G就给8-16G
/ linux所有目录定点 100-200G
/data 所有,存放数据 方便备份
剩余空间不分配,哪个部门领导了服务器,根据需求再进行分区
挂载点:mount pint。是linux下访问磁盘分区的入口