第 1 章 Sed 替换与别名设置
1.1 cp 复制与覆盖
已知 / tmp 下已经存在 test.txt 文件, 如何执行命令才能把 / mnt/test.txt 拷贝到 / tmp 下覆盖掉 / tmp/test.txt, 而让系统不提示是否覆盖 (root 权限下).
- [root@oldboyedu50 ~]# cp /mnt/test.txt /tmp/
- cp: overwrite `/tmp/test.txt'?
复制的时候不提示是否覆盖
- 1.1.1 #方法 1
- [root@oldboyedu50 ~]# \cp /mnt/test.txt /tmp/
- 1.1.2 #方法 2 使用命令的绝对路径 (全路径)
- [root@oldboyedu50 ~]# which cp #命令的绝对路径 (全路径)
- alias cp='cp -i'
- /bin/cp
- [root@oldboyedu50 ~]# cp /mnt/test.txt /tmp/
- cp: overwrite `/tmp/test.txt'? ^C
- [root@oldboyedu50 ~]# /bin/cp /mnt/test.txt /tmp/
- #cp overwrite
- #rm 是否删除
- #mv 是否覆盖文件
- cp === cp -i
- rm === rm -i
- mv === mv -i
1.2 别名
系统的别名 给命令起了一个外号
- # 安全
- # 省事
- 1.2.1 #第 1 个里程碑 - 显示系统中的别名
- alias san='cp -i'
- alias zhang='mv -i'
- alias wang='rm -i'
- 1.2.2 #第 2 个里程碑 - 设置别名
- alias wang='rm -i'
alias 别名 ='命令'
1.3 给 rm 命令设置别名
1.3.1 #第 1 个里程碑 - 配置 rm 别名 - 目标
目标: 执行 rm 屏幕显示 rm command bny.
- 1.3.2 #第 2 个里程碑 - 配置 rm 别名 - 命令
- [root@oldboyedu50 ~]# echo rm command bny
- rm command bny
- 1.3.3 #第 3 个里程碑 - 配置 rm 别名 - 临时生效
- [root@oldboyedu50 ~]# alias rm='echo rm bny'
- [root@oldboyedu50 ~]# alias rm
- alias rm='echo rm bny'
- [root@oldboyedu50 ~]# rm /tmp/oldboy.txt
- rm bny /tmp/oldboy.txt
- 1.3.4 #第 4 个里程碑 - 配置 rm 别名 - 永久生效
修改文件 /etc/profile
- [root@oldboyedu50 ~]# tail -5 /etc/profile
- done
- unset i
- unset -f pathmunge
- alias rm='echo rm bny'
生效
- [root@oldboyedu50 ~]# source /etc/profile
- [root@oldboyedu50 ~]# alias rm
- alias rm='echo rm bny'
- 1.3.5 #第 5 个里程碑 - 巨坑
- [root@oldboyedu50 ~]# vim /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
- 1.3.6 #第 6 个里程碑 - 重新登录 并检查
- [root@oldboyedu50 ~]# alias rm
- alias rm='echo rm bny'
1.4 如何配置别名:
1.4.1 命令行 - 临时生效 与检查
- alias rm='echo rm bny'
- rm /tmp/oldboy.txt
1.4.2 修改文件 - 永久生效
- vim /etc/profile
- source /etc/profile
1.4.3 检查
1.4.4 坑 - rm mv cp
/root/.bashrc
1.5 配置别名:
1.5.1 实例 1-2 net 设置别名
输入 net 显示 / etc/sysconfig/network-scripts/ifcfg-eth0 文件的内容
完成后发出
1.alias net
2./etc/profile 最后 5 行
1. 命令行 - 临时生效 与检查
- [root@oldboyedu50 ~]# alias net='cat /etc/sysconfig/network-scripts/ifcfg-eth0'
- [root@oldboyedu50 ~]# net
- DEVICE=eth0
- TYPE=Ethernet
- UUID=8fdc5e19-5b35-49fa-b63e-1629a63af1f0
- ONBOOT=yes
- NM_CONTROLLED=yes
- BOOTPROTO=none
- HWADDR=00:0C:29:59:D4:13
- IPADDR=10.0.0.200
- PREFIX=24
- GATEWAY=10.0.0.254
- DEFROUTE=yes
- IPV4_FAILURE_FATAL=yes
- IPV6INIT=no
- NAME="System eth0"
1.5.2 修改文件 - 永久生效
- vim /etc/profile #编辑文件写入最后一行
- [root@oldboyedu50 ~]# source /etc/profile 永久生效
- [root@oldboyedu50 ~]# alias net
- alias net='cat /etc/sysconfig/network-scripts/ifcfg-eth0'
3. 检查
vim 快捷键
G 到达文件的最后一行
gg 到达文件的第 1 行
10gg 到达文件的第 10 行
o(小写字母 O) 当前行下面插入一个空行并进入编辑模式
u 撤销
:q! 强制退出不保存
- [root@oldboyedu50 ~]# rm oldboy.txt
- rm bny oldboy.txt
- [root@oldboyedu50 ~]# \rm oldboy.txt
- [root@oldboyedu50 ~]# ll oldboy.txt
ls: cannot access oldboy.txt: No such file or directory
- [root@oldboyedu50 ~]# alias ll
- alias ll='ls -l --color=auto'
- ##13 把 / oldboy 目录及其子目录下所有以扩展名 .sh 结尾的文件中, 文件包含 oldboy 的字符串全部替换为 oldgirl
- mkdir -p /oldboy/test
- cd /oldboy
- echo "oldboy">test/del.sh
- echo "oldboy">test.sh
- echo "oldboy">t.sh
- touch oldboy.txt
- touch alex.txt
- ## 第 1 个里程碑 - find
- [root@oldboyedu50 oldboy]# find /oldboy/ -type f -name "*.sh"
- /oldboy/test/del.sh
- /oldboy/test.sh
- /oldboy/t.sh
- ## 第 2 个里程碑 - 替换一个文件中的内容
- [root@oldboyedu50 oldboy]# cat t.sh
- oldboy
- [root@oldboyedu50 oldboy]# sed 's#oldboy#oldgirl#g' t.sh
- oldgirl
- [root@oldboyedu50 oldboy]# sed 's#oldboy#oldgirl#g' t.sh
- oldgirl
- [root@oldboyedu50 oldboy]# cat t.sh
- oldboy
- #sed 修改文件的内容 把文件中的 oldboy 替换为 oldgirl
- [root@oldboyedu50 oldboy]# sed -i 's#oldboy#oldgirl#g' t.sh
- [root@oldboyedu50 oldboy]# cat t.sh
- oldgirl
- # 第 3 个里程碑 - 把 find 命令找出的文件传递给 sed 命令
- [root@oldboyedu50 oldboy]# find /oldboy/ -type f -name ".sh"
- /oldboy/test/del.sh
- /oldboy/test.sh
- /oldboy/t.sh
- [root@oldboyedu50 oldboy]# find /oldboy/ -type f -name ".sh"|xargs sed 's#oldboy#oldgirl#g'
- oldgirl
- oldgirl
- oldgirl
- [root@oldboyedu50 oldboy]# find /oldboy/ -type f -name ".sh"|xargs sed -i 's#oldboy#oldgirl#g'
- [root@oldboyedu50 oldboy]# find /oldboy/ -type f -name ".sh"|xargs cat
- oldgirl
- oldgirl
- oldgirl
1.6 小结:
1. 别名
2.sed 替换
find+sed
1.7 linux 基础优化
1. 显示系统的版本信息
- [root@oldboyedu50 oldboy]# cat /etc/redhat-release 查看内核版本
- CentOS release 6.9 (Final)
- [root@oldboyedu50 oldboy]# uname -r 查看系统版本
- 2.6.32-696.el6.x86_64
- [root@oldboyedu50 oldboy]# uname -m 查看安装的是多少位系统
- x86_64
2. 添加用户 设置密码 切换用户
- # 添加用户
- [root@oldboyedu50 oldboy]# useradd oldboy
- #password 设置密码
- [root@oldboyedu50 oldboy]# passwd oldboy
Changing password for user oldboy.
New password:
BAD PASSWORD: it is too simplistic/systematic
- BAD PASSWORD: is too simple
- Retype new password:
passwd: all authentication tokens updated successfully.
- # 切换用户
- su - oldboy
ctrl + d 退出当前用户
1.8 预习
题 find+sed 其他方法
1. 关闭 iptables 和 selinux
2.linux 显示中文乱码
来源: http://www.bubuko.com/infodetail-2688076.html