管道符
管道符“|”:将前一个命令的输出作为后一个命令的输入。
查看一个文件有多少行:
除了用vim打开文件 “set nu” 显示行号外,还能用管道符,不用打开文件就能统计。
[root@shuai-01 ~]# cat 1.txt |wc -l
1
查看当前目录下有多少文件:
[root@shuai-01 ~]# find ./ -type f |wc -l
20
作业控制
运行一个进程时,这时来了一个很重要的事,立即将手头的事暂停,出去干另外的事。重要的事干完了再回来做这个事。
暂停:ctrl + z
恢复命令:fg
终止命令:Ctrl + c
后台运行命令:bg
查看任务命令:jobs
用vim编辑1.txt文件
[root@shuai-01 ~]# vim 1.txt
中途有事,想暂停干点别的。(Ctrl + z)
[root@shuai-01 ~]# vim 1.txt
[1]+ 已停止 vim 1.txt
干完后想要恢复编辑1.txt (fg )
中途又来了点事(编辑2.txt),要将1.txt放后台
[root@shuai-01 ~]# bg 1
[1]+ vim 1.txt &
“&”:表示后台运行
查看jobs:
[root@shuai-01 ~]# jobs
[1]+ 已停止 vim 1.txt
[2]- 已停止 vim 2.txt
这种前后台运行的命令对vim没有影响,对需要持续运行通过控制台进行输出的才有效果。需要控制台进行持续输出的在前台运行,这是你就没法运行其他命令。
shell变量
变量由变量名和变量值组成。
变量名=变量值
变量分系统预设变量和用户自定义变量
一般的系统预设变量名都是大写,如:HISTSIZE,SHELL,PATH
查看变量的值用echo命令:echo $变量名
[root@shuai-01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@shuai-01 ~]# echo $SHELL
/bin/bash
env命令能显示系统环境变量
[root@shuai-01 ~]# env
XDG_SESSION_ID=1
HOSTNAME=shuai-01
SELINUX_ROLE_REQUESTED=
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=192.168.176.1 56774 22
SELINUX_USE_CURRENT_RANGE=
SSH_TTY=/dev/pts/0
USER=root
set命令就将系统预设变量和用户自定义全部显示
用户自定义变量规则:
1. 变量格式为:变量名=变量值 (等号两边不能有空格)
2. 变量名由字母,下划线,和数字组成,并且不能以数字开头
3. 变量内容有特殊字符时(空格),要加上单引号”
定义一个变量:
[root@shuai-01 ~]# a=123
[root@shuai-01 ~]# echo $a
123
变量值有空格:
[root@shuai-01 ~]# b='shuai ao'
[root@shuai-01 ~]# echo $b
shuai ao
变量中有其他变量内容:
[root@shuai-01 ~]# c="$a""$b"
[root@shuai-01 ~]# echo $c
123shuai ao
以上设置的变量只在当前shell下才有用
关于全局变量
全局变量就是在这个shell下定义的变量在这个shell的子shell下也能用。
查看系统进程树结构(pstree命令)
[root@shuai-01 ~]# pstree |grep bash
|-sshd-+-sshd-+-bash
| | `-bash-+-grep
| `-sshd---bash
两个分开的sshd表示两个终端登录的,第一个sshd两分开的bash表示克隆登录。
在一个shell下运行bash,会进入另一个shell
[root@shuai-01 ~]# pstree |grep bash
|-sshd-+-sshd-+-bash
| | `-bash---bash-+-grep
| `-sshd---bash
新进的shell就是上一个shell的子shell。
在当前shell下定义一个全局变量(export)
[root@shuai-01 ~]# export b=123
[root@shuai-01 ~]# echo $b
123
[root@shuai-01 ~]# bash
[root@shuai-01 ~]# echo $b
123
[root@shuai-01 ~]# pstree |grep bash
|-sshd-+-sshd-+-bash
| | `-bash---bash---bash-+-grep
| `-sshd---bash
当前shell下定义的全局变量在当前shell和子shell中能生效。(在上一级shell和其他终端是不生效的)
删除变量(unset)
[root@shuai-01 ~]# unset b
环境变量的配置文件
环境变量分系统环境变量和个人环境变量
系统环境变量配置文件:
/etc/profile :PATH ,HISTSIZE,USER,umask
/etc/bashrc:PS1 , umask
ps1:显示命令行开头的一串[root@shuai-01 ~]#
[root@shuai-01 ~]# echo $PS1
[\u@\h \W]\$
个人环境变量的配置文件
./.bash_profile:登录时执行
./.bashrc:自定义alias和自定义变量可以写入该文件中
./.bash_history:记录历史命令
./.bash_logout:退出shell执行
ps:有时候我们需要对线上用户操作记录进行历史记录待出现问题追究责任人,,但Linux系统自带的history命令用户有自行删除权限,那怎么设置可以让用户的操作记录实时记录,并保证普通用户无权删除呢?本文教你一招http://www.68idc.cn/help/server/linux/2014042190951.html