Bash特性之命令别名和命令引用(1)
实例: 定义alias [root@bogon ~]# alias cdnet=' cd /etc/sysconfig/network-scripts/' [root@bogon ~]# cdnet [root@bogon network-scripts]# 撤销别名alias [root@bogon network-scripts]# unalias cdnet [root@bogon network-scripts]# unalias alias -a 撤销所有 查看当前别名,也可根据参数查看,具体百度吧 [root@bogon network-scripts]# 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@bogon network-scripts]# ls /var/ [root@bogon network-scripts]# \ls /var/ 这两条ls命令的输出结果,一个调用了alias,另一个则没有
bash特性之文件通配 实例: 显示etc下P开头的文件 [root@bogon var]# ls -d /etc/p* P开头D结尾 [root@bogon var]# ls -d /etc/p*d [root@bogon etc]# ls p?d 中间两个字母 [root@bogon etc]# ls p[a-z]d [^] :字符范围,除字符之外 [root@bogon etc]# ls p[^0-9]d
其他用法如下: 字符集合表示方式(小写): [:lower:]:所有的小写字母 [:upper:]:所有大写字母 [:alpha:]:所有的字母 [:digit :]:所有数字 [:alnum:]:所有的字母和数字 [:punct:]:所有的标点符号 [:space:]:所有的空白字符 Ls p[l*[digit][upper]]d echo 命令:
Echo命令 -n 关闭自动换行 -e 启用转义符 \t: tab \n:new line \033[ 一个数字后面紧跟另一个数字 第一个数字 3:字体前景色 4:背景色 第二个数字 颜色:0-7表示 3#:31, 4#:41, \033[0m:关闭字体功能
范例: [root@bogon etc]# echo -e "\033[31mHello,world, \033[0m" Hello,world,
[root@bogon etc]# echo -e "\033[31mHello,world, \033[0m" Hello,world,
[root@bogon etc]# echo -e "\033[32;5mHello,world, \033[0m" Hello,world,
单个数字:用于控制字体的加粗,下划线等功能
文件管理命令:cp,mv,rm
例: alias [root@bogon etc]# 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@bogon etc]# Cp 源文件 /目标文件(如果目标不存在,将创建) 如果目标文件存在,默认会提示是否覆盖(覆盖将替换),使用\使用cp ,而非cp –i进行复制替换 \cp /etc/ *源文件为多个文件时,目标必须是目录,不能平行的复制,只能复制到目录 Cp目录 如果复制的是目录,则需要-r(以便于cp链接文件 lrwxrwxrwx. 1 root root 14 Mar 27 08:15 system-release -> centos-release )
-a –archive: 归档,常用于备份时保留原文件的所有属性,相当于-dR --preserve -i,--interactive :覆盖目标文件之前提醒用户 -f,--force 强制覆盖 -l,--link:为文件创建硬连接而不是复制文件 -v, 显示过程
MV Mv /源文件 /目标文件 如果源文件是单个文件,且目标不存在,则新建并且填充目标 如果存在,提示是否覆盖 *有所不同的是,在执行mv命令时,mv是从硬盘不同的磁道滑倒另一边后,在删除源文件
文本管理类命令: WC:word count 例:统计文件多少,单词,字节 [root@bogon etc.txt]# wc /etc/fstab 15 78 805 /etc/fstab [root@bogon etc.txt]# sort
-l:仅统计行数 -w:仅统计单词数 -c:仅统计字节
Cut
-d:指明分隔符 -d’ ‘ :表示以空格为分隔符 -f#:指明要保留的字段 单个:# 离散的多个:#,#,#, 连续的多个:#-# [root@bogon etc.txt]# history -a /mnt/history.txt [root@bogon etc.txt]# cut -d '' -f1-3 /mnt/history.txt
Sort:排序 [root@bogon etc.txt]# sort -u -f /mnt/history.txt Uniq 去重 去重忽略大小写
[root@bogon etc.txt]# sort /mnt/history.txt | uniq -i 仅显示重复多次的行 [root@bogon etc.txt]# sort /mnt/history.txt | uniq -d 显示每一行出现的次数 [root@bogon etc.txt]# sort /mnt/history.txt | uniq -c
重定向和管道符 重定向>>,两个〉〉追加,〉一个将会覆盖 管道符则是执行之前的命令结果
也可以这么用(正确输出,错误输出重定向) [root@bogon etc.txt]# ls /var/ >/tmp/var.out 2> /tmp/var.err 如果执行没错将存放到tmp/var.out,如果错了将存放/tmp/var.err
TR
把输出的数据替换 例如: [root@bogon etc.txt]# tr 'ab' 'XY' < /etc/fstab
管道符| [root@bogon etc.txt]# sort -t: -k3 -n /etc/passwd | head -7 | tail -l |tr 'a-z' 'A-Z' | cut -d: -f1 | wc -c
37 用户管理和组管理 创建用户组distro,其GID为2015 [root@bogon etc.txt]# groupadd -g 2015 distro 创建用户mandriva,其ID号位1005,其本组为distro [root@bogon etc.txt]# useradd -u 1005 -g distro mandriva 创建用户mageia,其ID为1100,加目录为/home/linux [root@bogon etc.txt]# useradd -u 1100 -d /home/linux mageia