alias命令
直接输入 alias 命令会列出当前系统中所有已经定义的命令别名。
例一:列出当前系统中所有已经定义的命令别名。
[root@localhost ~]# alias alias cp='cp -i' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' 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'
grep 命令
grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
-o 只输出文件中匹配到的部分。
-v 反转查找。
-i 忽略大小写的差别
-q 不显示任何信息。
-A<显示列数> ,并显示该#行之后的内容。
-B 显示匹配到的行,并显示#前行
-C<显示列数>或-<显示列数> 并显示该列之#前后的内容。
-E 意味着使用能使用扩展正则表达式。
例一:搜索root 字符
[root@localhost ~]# grep root /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin
例二:只显示搜索内容
[root@localhost ~]# grep -o root /etc/passwd root root root root
例三:A<显示列数> ,并显示该2行之后的内容。
-B 显示匹配到的行,并显示2前行
-C 并显示该列之2前后的内容。
[root@localhost ~]# grep -A 2 root /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin -- operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin [root@localhost ~]# grep -B 2 root /etc/passwd root:x:0:0:root:/root:/bin/bash -- halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin [root@localhost ~]# grep -C 2 root /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin -- halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
基本正则表达式元字符
字符匹配:
.:匹配任意单个字符
[]:匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
[:digit:]、[:lower:]、[:upper:]、[:alpha:]、[:alnum:][:punxt:][:space:]
匹配次数:用在要指定次数的字符后面,用于指定前面字符要出现的次数
*:匹配前面的字符任意次:
例如:grep “x*y”
abxy
xay
xxxxxxy
贪婪模式
.*:任意长度的任意字符;
\?:匹配其前面的字符0或1次;即前面的可有可无
\+:匹配其前面的字符至少1次;
\{m\}:匹配前面的字符配前面的字符至少1次:
\{0,n}:匹配前面的字符至少n次
\{m,\}:匹配前面的字符至少m次;
位置错定
^:行首锚定用于模式的最左侧
$:行尾锚定:用于模式的最右侧
^PATTERN$:用于模式匹配整行
^$:穿行:
^[[:space:]]*$
\<或\b:词首锚定;用于单词模式的左侧
\>或\b:词尾锚定;用于单词模式的右侧
\<PATTERN\>:匹配整个单词
分组:
\(\):将一个或多个字符捆绑在一起,当作一个整体进行处理
\(xy\)*ab
Note :分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为:\1,\2\3…..
\1:从左侧起,第一个左括号以及与之匹配右括号之间的模式所匹配到的字符:
\(ab\+\(xy)*\);
\1:ab\+\(xy\)*
\2:xy
例一:显示/proc/meminfo文件中以大小写开头的行:
[root@localhost ~]# grep -i '^s' /proc/meminfo SwapCached: 0 kB SwapTotal: 2097148 kB SwapFree: 2097148 kB Shmem: 6856 kB Slab: 73728 kB SReclaimable: 34992 kB SUnreclaim: 38736 kB
第二种方法:
[root@localhost ~]# grep '^[Ss]' /proc/meminfo SwapCached: 0 kB SwapTotal: 2097148 kB SwapFree: 2097148 kB Shmem: 6856 kB Slab: 73728 kB SReclaimable: 34992 kB SUnreclaim: 38736 kB
例二:显示、etc/passwd文件中不以/bin/bash结尾的行
root@localhost ~]# grep ‘/bin/bash$’ /etc/passwd
root:x:0:0:root:/root:/bin/bash [root@localhost ~]# grep -v '/bin/bash$' /etc/passwd bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:998:996:User for polkitd:/:/sbin/nologin tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin chrony:x:997:995::/var/lib/chrony:/sbin/nologin
nano
nano是一个字符终端的文本编辑器,有点像DOS下的editor程序。它比vi/vim要简单得多,比较适合Linux初学者使用。某些Linux发行版的默认编辑器就是nano。
netstat
netstat命令网络测试 netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
-a或–all:显示所有连线中的Socket;
-A<网络类型>或–<网络类型>:列出该网络类型连线中的相关地址;
-c或–continuous:持续列出网络状态;
-C或–cache:显示路由器配置的快取信息;
-e或–extend:显示网络其他相关信息;
-F或–fib:显示FIB;
-g或–groups:显示多重广播功能群组组员名单;
-h或–help:在线帮助;
-i或–interfaces:显示网络界面信息表单;
-l或–listening:显示监控中的服务器的Socket;
-M或–masquerade:显示伪装的网络连线;
-n或–numeric:直接使用ip地址,而不通过域名服务器;
-N或–netlink或–symbolic:显示网络硬件外围设备的符号连接名称;
-o或–timers:显示计时器;
-p或–programs:显示正在使用Socket的程序识别码和程序名称;
-r或–route:显示Routing Table;
-s或–statistice:显示网络工作信息统计表;
-t或–tcp:显示TCP传输协议的连线状况;
-u或–udp:显示UDP传输协议的连线状况;
-v或–verbose:显示指令执行过程;
-V或–version:显示版本信息;
-w或–raw:显示RAW传输协议的连线状况;
-x或–unix:此参数的效果和指定“-A unix”参数相同;
netstat -a #列出所有端口
netstat -at #列出所有tcp端口
netstat -au #列出所有udp端口
netstat -l #只显示监听端口
netstat -lt #只列出所有监听 tcp 端口
netstat -lu #只列出所有监听显示每个协议的统计信息
udp 端口 netstat -lx #只列出所有监听 UNIX 端口
显示每个协议的统计信息
netstat -s 显示所有端口的统计信息
netstat -st 显示TCP端口的统计信息
netstat -su 显示UDP端口的统计信息
显示核心路由信息
netstat -r
fgrep:
不支持正则表达式搜索:
bash的基础特性(4)
变量类型:
数据存储格式、存储空间大小、参与运算种类
字符型
数值型:
整型
浮点型
强类型:定义变量时必须指定类型、参与运算符合类型要求;调用未声明变量会产生错误
弱类型:无需指定类型,默认均为字符型,参与 运算会自动进行隐藏式类型转换;变量无需事先定义可直接调用
bash中的变量的种类:
根据变量的生效范围标准;
本地变量;生效范围为当前shell进程;对当前shell之外的其它shell进程,包括当前shell的子shell进程均无效;
环境变量;生效范围为当前要shell进程及其子进程
局部变量;生效范围为当前shell进程中某代码片段(通常指函数)
位置变量:$1,$2,..来表示,用于让脚本在脚本代码中要调用通过命令行传递给它的参数;
特殊变量:$?,$0,$*,$@,$#
本地变量
变量赋值:name=`value`
可以使用引用;
value:
(1)可以是直接字串;name=”username”
(2)变量引用;name=”$username”
(3)命令引用:name=`COMMAND`,name=$(COMMAND)
变量引用:$(name),$name
“” ,弱引用,其中的变量引用会被替换为变量值:
‘’强引用,其中的变量引用不会被替换为变量值,而保持原字符串;
显示已定义的所有变量
set
销毁变量
unset name
环境变量
变量声明,赋值:
export name-VALUE
declare -x name-VALUE
变量引用:$name,$(name)
显示所有环境变量
export
env
printenv
销毁:
unset name
bash有许多内建的环境变量:PATH,SHELL,UID,HISTSIZE,HOME,PWD,
变量命名法则:
1·不能使程序中的保留字;例如if,for;
2, 只能使用数字,字母及下划线,且不能以数字开头;
3,见名知义;
只读变量;
readonly name
declare -r name
位置变量;
在脚本代码中调用通过命令行传递给脚本的参数
$1,$2,…对应调用第1,第2等参数;
$0; 命令本身;
$*; 传递给脚本的所有参数
$@:传递给脚本的所有参数
$#;传递给脚本的参数的个数
unset命令Shell内建命令 unset命令用于删除已定义的shell变量(包括环境变量)和shell函数。unset命令不能够删除具有只读属性的shell变量和环境变量。
e declare命令Shell内建命令 declare命令用于声明和显示已存在的shell变量。当不提供变量名参数时显示所有shell变量。declare命令若不带任何参数选项,则会显示所有shell变量及其值。declare的功能与typeset命令的功能是相同的。
+/-:“-“可用来指定变量的属性,
“+”则是取消变量所设的属性;
-f:仅显示函数;
r:将变量设置为只读;
x:指定的变量会成为环境变量,可供shell以外的程序来使用;
i:[设置值]可以是数值,字符串或运算式。
export export命令Shell内建命令 export命令用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。 一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执 行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本。
-f:代表[变量名称]中为函数名称;
-n:删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中;
-p:列出所有的shell赋予程序的环境变量。
nano
nano命令文件编辑 nano是一个字符终端的文本编辑器,有点像DOS下的editor程序。它比vi/vim要简单得多,比较适合Linux初学者使用。某些Linux发行版的默认编辑器就是nano。 nano命令可以打开指定文件进行编辑,默认情况下它会自动断行,即在一行中输入过长的内容时自动拆分成几行,但用这种方式来处理某些文件可能会带来问题,比如Linux系统的配置文件,自动断行就会使本来只能写在一行上的内容折断成多行了,有可能造成系统不灵了。因此,如果你想避免这种情况出现,就加上-w选项吧。
原创文章,作者:kang,如若转载,请注明出处:http://www.178linux.com/75118