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

0 分享

您可以选择一种方式赞助本站

支付宝扫码赞助

支付宝扫码赞助

日期: 2015-03-27分类: Sys Basics

标签: bash

发表评论