一、补充一些find命令的方法:
第13题 把/oldboy目录及其子目录下所有以扩展名.sh结尾的文件中,文件包含oldboy的字符串全部替换为oldgirl
解答:
方法1:find + |xargs
[root@oldboyedu41 ~]# find /oldboy/ -type f -name "*.sh" |xargs sed 's#oldboy#oldgirl#g' -i
方法2:$()或``
[root@oldboyedu41 ~]# sed 's#oldboy#oldgirl#g' $(find /oldboy/ -type f -name "*.sh")
[root@oldboyedu41 ~]# sed 's#oldboy#oldgirl#g' `find /oldboy/ -type f -name "*.sh"`
方法3:find 与-exec
[root@oldboyedu41 ~]# find /oldboy/ -type f -name "*.sh" -exec sed 's#oldboy#oldgirl#g' {} \;
二、linux命令别名
1.查看别名
[root@oldboyedu41 ~]# 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@oldboyedu41 ~]# alias ll rm alias ll='ls -l --color=auto'alias rm='rm -i'
2.修改别名
[root@oldboyedu41 ~]# alias rm='echo do not use rm'
3.测试
[root@oldboyedu41 ~]# rm /etc/hosts do not use rm /etc/hosts
4.永久生效,需要修改/etc/profile文件
在/etc/profile文件的最后一行,添加:alias rm='echo do not use rm'
[root@oldboyedu41-001 tmp]# echo "alias rm='echo Do not use rm'" >> /etc/profile
5.生效
[root@oldboyedu41 ~]# source /etc/profile
6.临时取消别名:
1)使用\反斜杠,如:\rm
2)使用命令的绝对路径,如:/bin/rm
三、重定向符号 >> > < <<
#>> 或 1>> 追加 标准输出追加重定向 前面命令内容 放入到文件的最后一行
#> 或 1> 输出重定向 先把文件的内容清空,然后再往文件中放入内容
1表示 标准输出----命令执行正确后的结果
#2>> 错误追加 把命令执行错误的信息 追加到一个文件
#2> 错误重定向 把命令执行错误的信息 重定向到一个文件(先清空 在放入)
2表示 错误信息
####把错误的信息 或 正确的信息 同时放入到一个文件
####echo oldboyedu.com >>oldboy.txt 2>>oldboy.txt
#echo oldboyedu.com >>oldboy.txt 2>&1
####< 输入重定向 表示从某个文件中读取内容
[root@oldboyedu41 ~]# echo {1..10}>>xargs.txt[root@oldboyedu41 ~]# xargs -n3 <xargs.txt 1 2 34 5 67 8 910
####<< 输入追加重定向
cat >>/oldboy/oldboy.txt <<EOF
I
am
studying
linux.
EOF
EOF:end of file
四、Linux优化:
1)如何关闭selinux
#enforcing selinux开启了 正在运行
#permissive 临时关闭了 会有一些警告信息
#disablied selinux彻底关闭
#####临时关闭--linux重启之后仍会自动启动
[root@oldboyedu41 ~]# getenforce Enforcing[root@oldboyedu41 ~]# setenforce 0[root@oldboyedu41 ~]# getenforce Permissive
#####永久关闭--修改配置文件-重启linux之后不会自动启动
[root@oldboyedu41 ~]# cat /etc/selinux/config [root@oldboyedu41 ~]# sed 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config[root@oldboyedu41 ~]# sed -i.bak 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config[root@oldboyedu41 ~]# cat /etc/selinux/config
总结:
1.先备份cp,cat
2.临时-命令行
3.永久-配置文件
4.检查
2)关闭iptables
#####临时关闭
[root@oldboyedu41 ~]# /etc/init.d/iptables stop iptables: Setting chains to policy ACCEPT: filter [ OK ]iptables: Flushing firewall rules: [ OK ]iptables: Unloading modules: [ OK ][root@oldboyedu41 ~]# /etc/init.d/iptables stop [root@oldboyedu41 ~]# /etc/init.d/iptables statusiptables: Firewall is not running.
#####永久关闭
重启之后,还会自动启动(开机自启动) 在开机的时候不会自动运行
######linux下面管理 是否开机自启动的命令
chkconfig
# chkconfig iptables off
# chkconfig |grep ipt
iptables 0:off1:off2:off3:off4:off5:off6:off
3.linux下面显示中文乱码如何操作
###字符集就是一套文字符号及其编码
###1.如何查看字符集
[root@oldboyedu41 ~]# #LANG[root@oldboyedu41 ~]# echo $LANGen_US.UTF-8[root@oldboyedu41 ~]# #zh_CN[root@oldboyedu41 ~]# #语言.字符集
###2.如何修改系统正在使用的字符集或语言
# export LANG=zh_CN.UTF-8
###3.如何永久修改系统正在使用的字符集或语言
[root@oldboyedu41 ~]# cat /etc/sysconfig/i18n LANG="en_US.UTF-8"SYSFONT="latarcyrheb-sun16"
###4.如何让修改的字符集 生效
[root@oldboyedu41 ~]# source /etc/sysconfig/i18n
七、linux目录结构
特点:
1.一切从根开始 ******
Windows目录结构:
c:\windows\system32\drivers\etc\hosts
c:\program files\3000soft
d:\学习资料\美国
d:\学习资料\日韩
d:\学习资料\马克思
Linux目录结构:一切从/开始
/etc/sysconfig/network-scripts/ifcfg-eth0##setup
2.下面的目录可以随便挂载到不同的磁盘分区上(了解)
/home 属于第一块硬盘第一个分区
/tmp 属于第一块硬盘第一个分区
我把/home 挂载到新的磁盘分区上面
3.linux下面,没有挂载的磁盘分区无法使用,挂载就是给设备磁盘分区创建一个入口 ******
光盘设备(磁盘分区 )
/dev/cdrom 没有办法直接使用
cd
cat
4.挂载之后就可以使用,挂载相当于是给设备(磁盘分区 光盘) 开一个入口
[root@oldboyedu41 oldboy]# mount /dev/cdrom /mnt/cdrom
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@oldboyedu41 oldboy]# cd /mnt/
df -h
5.相对路径绝对路径
绝对路径:从根开始的路径 /etc/hosts /etc/sysconfig/network
相对路径:不是从根开始的路径 相对于当前路径(位置)