标签:描述 匹配 反引号 bsp lower 命令别名 tail 文件名 命令提示符
虚拟终端 mingetty程序产生
切换终端 ctrl+alt+fn n=1-6
输入tty 显示当前是那个终端
模拟终端 使用ssh通过网络连接到Linux
/dev/pts/0
Secure shell SSH TCP 22端口连接到Linux
GUI
Gnome C语言开发
KDE C++开发
Xface 轻量级图形界面
CLI
bsh Unix提供的shell 功能弱
sh 安全稳定
csh Bill joy研发Csh 语法接近C语言 功能比sh强
ksh 商业版的ksh改进了csh GNU组织开发了免费的ksh 比商业版的ksh功能少
bash GNU组织融合和ksh csh和sh特性重新开发 能够操作Linux和unix
zsh
tcsh
查看当前使用的shell
[root@WebServer ~]# echo $SHELL
/bin/bash
查看Linux可用的shell
[root@WebServer ~]# cat /etc/shells
光标快速移动
Ctrl+a 快速跳转到行首
Ctrl+e 快速跳转到行尾
删除命令行中内容
Ctrl+w 删除光标前一个单词
Ctrl+u 删除光标到行首的字符
Ctrl+k 删除光标到行尾的字符
清屏幕
Ctrl+l Windows命令提示符 cls
取消不执行的命令
Ctrl+c
内部命令 shell程序自带的命令
外部命令 在系统的某个路径下的可执行程序
外部命令查找 依赖于 PATH变量
查看外部命令搜索路径 查看PATH变量
echo $PATH
type pwd查看pwd是内部命令还是外部命令
which命令查看命令所在的目录
[root@WebServer home]# which ping
/bin/ping
[root@WebServer home]# which ifconfig
/sbin/ifconfig
[root@WebServer home]#
安装外部命令
命令补全 连按tab键 列出所有可能的命令
hash表缓存命令所在位置
hash –d wc 删除wc命令的缓存
hash –r 清空缓存表
路径补全
[root@WebServer ~]# echo $HISTSIZE 缓存多少条命令
1000
[root@WebServer ~]# echo $HISTFILESIZE 命令历史文件能够保存多少条命令
1000
[root@WebServer ~]# echo $HISTFILE 查看命令历史文件
/root/.bash_history
[root@WebServer ~]#
[root@WebServer ~]#cat /root/.bash_history 查看保存命令历史
[root@WebServer ~]# history –a 将缓存的新命令 追加到历史文件
查看$HISTCONTROL变量的值
[root@WebServer ~]# echo $HISTCONTROL
Ignoredups 不记录后面重复的命令 只记录第一个
Ignorespace 不记录以空格开始的命令
Ignoreboth 不记录以空格开始命令 也不记录后面重复的命令
执行以前的命令
!!执行上一条命令
history查看命令历史
!6 可以执行命令历史中第6行命令
!-1 可以执行命令历史中的倒数第一个命令
上下键可以翻命令历史
Ctrl+P 向上翻
Ctrl+N 向下翻
当前命令 调用上一条命令的最后一个参数
第一种方法
ESC松开 再按 .
第二种方法 输入!$
[root@WebServer ~]# tail -1 !$
tail -1 /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
[root@WebServer ~]#
History命令参数
-c 清空命令历史
-w 保存命令历史到历史文件
-a 附加命令历史 到历史文件
-d 4 删除命令历史的第4条命
通配符 特殊的字符 不表示字符的表面意义 而是能够匹配符合指定特征的字符
* 代表任意长度的字符
? 代表任意单个字符
[] 代表指定范围的单个字符
[root@WebServer tmp]# touch a ab aab cab adb ayb a91xueitb
[root@WebServer tmp]# ls a*
a a91xueitb aab ab adb ayb
[root@WebServer tmp]# ls a*b
a91xueitb aab ab adb ayb
[root@WebServer tmp]# ls a?b
aab adb ayb
[root@WebServer tmp]# ls a[abcd]b
aab adb
[root@WebServer tmp]# ls a[a-z]b
aab adb ayb
[root@WebServer tmp]# touch a2b a3b a4b a9b
[root@WebServer tmp]# ls a[0-9]b
a2b a3b a4b a9b
[root@WebServer tmp]# ls a[0-5]b
a2b a3b a4b
[root@WebServer tmp]# ls a[^0-5]b
a9b aab adb ayb
查找文件名中间有空格的文件
[root@WebServer tmp]# touch ‘a b‘
[root@WebServer tmp]# ls a[‘ ‘]b
a b
使用专门的方法标识特定字符
[[:space:]] 空格
[[:digit:]] [0-9]
[[:lower:]] [a-z]
[[:upper:]] [A-Z]
[[:alpha:]] [a-Z]
[root@WebServer tmp]# ls a[[:space:]]b
a b
[root@WebServer tmp]# ls a[[:digit:]]b
a2b a3b a4b a9b
[root@WebServer tmp]# ls a[[:space:]]b
a b
[root@WebServer tmp]# ls a[[:digit:]]b
a2b a3b a4b a9b
[root@WebServer tmp]# ls a[[:lower:]]b
aab adb ayb
[root@WebServer tmp]# ls a[^[:lower:]]b
a2b a3b a4b a9b a b
alias cmdalias=’command [option] [argument]’
[root@WebServer ~]# type alias
查看定义的别名
[root@WebServer ~]# alias
定义命令别名
[root@WebServer ~]# alias if1=‘ifconfig eth0‘
[root@WebServer ~]# alias ifconfig=‘ifconfig eth0‘
调用命令本身
[root@WebServer ~]# \ifconfig
将命令别名添加到用户环境配置文件
[root@WebServer ~]# ls -a
[root@WebServer ~]# vi .bashrc
编辑/etc/bashrc 添加命令别名 对所有用户生效
[root@WebServer ~]# vi /etc/bashrc
删除别名
[root@WebServer ~]# unalias cdnet
使用命令执行的结果替换该命令
$(命令)
[root@WebServer tmp]# echo "The current directory is $(pwd)"
[root@WebServer ~]# date --help
[root@WebServer tmp]# touch file-$(date +%Y-%m-%d-%H-%M-%S)
使用反引号实现命令替换
bash 中 “ ” 弱引用 能够实现命令替换
‘ ’ 强引用 不能够实现命令替换
mkdir /tmp/zz/a/b /tmp/yy/a/b
mkdir /tmp/{zz,yy}/a/b
[root@WebServer ~]# mkdir /tmp/{a,b}{c,d} -v
mkdir: 已创建目录 "/tmp/ac"
mkdir: 已创建目录 "/tmp/ad"
mkdir: 已创建目录 "/tmp/bc"
mkdir: 已创建目录 "/tmp/bd"
[root@WebServer ~]# mkdir /tmp/{zz,yy}/a/b -pv
mkdir: 已创建目录 "/tmp/zz"
mkdir: 已创建目录 "/tmp/zz/a"
mkdir: 已创建目录 "/tmp/zz/a/b"
mkdir: 已创建目录 "/tmp/yy"
mkdir: 已创建目录 "/tmp/yy/a"
mkdir: 已创建目录 "/tmp/yy/a/b"
思考:
在/tmp路径下创建以下目录
etc/init.d
etc/sysconfig
usr/lib
usr/bin
usr/include
var/spool
var/run
proc
sys
bin
lib
media
mnt
[root@WebServer ~]# mkdir
/tmp/{etc/{init.d,sysconfig},usr/{lib,bin,include},var/{spool,run},proc,sys,bin,lib,media,mnt} -pv
查看标准输入输出设备
ls –l /dev/std*
查看文件内容
tail –f /etc/passwd
ctrl+z将进程转到后台
ps 查看运行的进程
ls –l /proc/1788/fd 查看1788进程下的文件描述符
重定向 标准输出
Ifconfig eth0 1>abc
重定向 标准错误输出
Ifconfig eth1 2>123
[root@WebServer ~]# useradd hanlihui
[root@WebServer ~]# su hanlihui
[hanlihui@WebServer root]$ cd
[hanlihui@WebServer ~]$ find /etc -name "*.conf"
将标准输出和标准错误输出重定向到不同文件
[hanlihui@WebServer ~]$ find /etc -name "*.conf" 1>a 2>b
将标准输出和标准错误输出重定向到同一个文件
[hanlihui@WebServer ~]$ find /etc -name "*.conf" &>ab
重定向的用途
可以将命令输出保存到文件
可以向配置文件增加内容
可以合并文件内容
1.在管道后面的命令 都不应该再跟文件名
2.在管道中只有标准输出才传递给下一个命令 标准错误输出直接输出到终端
可以把标准错误输出给重定向
[hanlihui@WebServer ~]$ find /etc -name "*.conf" 2> /dev/null | grep rc
3.有些命令不支持管道技术
xargs让ls支持管道技术
[hanlihui@WebServer ~]$ which cat | xargs ls -l
标签:描述 匹配 反引号 bsp lower 命令别名 tail 文件名 命令提示符
原文地址:https://www.cnblogs.com/DBlifeXu/p/10347804.html