linux中文件名通配:
*,匹配任意长度的任意字符
eg:a* 与ab,abc,abcd,a都匹配
?,匹配任意单个字符
eg:a? ab(匹配)ac(匹配)abc(不匹配)abcd(不匹配)
[]范围表达式,一次匹配范围中的一个字符
eg:a[abc] a(不匹配),ab(匹配),ac(匹配),abc(不匹配),abcd(不匹配)
[a-z]表示a-z中的任意一个
[A-Z]
[0-9]
[a-zA-Z0-9]表示a-z或A-Z或0-9中的任意一个字符
脱字符:表示除了指定字符之外的字符 eg: [^0-9]除了0-9之外的任意一个
字符
eg1:a开头,跟一位任意数字,再跟一位大写字母,又跟任意字符
a[0-9][A~Z]*
eg2:以3或4或7开头后跟任意一个非字母字符再跟任意单个字符并以3结尾
[347][^a-zA-Z]?3
#man 7 glob(文件名通配)
两个:中间的内容是某类字符的名称
[:alnum:]=[A-Za-z0-9] 表示字母和数字
[:alpha:] 表示所有字母
[:blank:] 表示空白字符
[:cntrl:] 表示控制字符
[:digit:]=[0-9]表示数字
[:lower:] 表示所有小写字母
[:print:] 表示可打印字符
[:punct:]表示标点符号
[:space:] 表示空白字符
[:upper:] 表示所有大写字母
eg:以标点符号开头的
[[:punct:]]表示所有以标点符号开头的文件
[^[:punct:]]表示所有以非标点开头的文件
CLI:
显示设备
物理终端:/dev/tty0(物理终端对应的设备) 安装linux的那台电脑的显示器
虚拟终端:/dev/tty1-tty6 ,mingetty(在tty0下虚拟出来的终端对应的程序)
对物理终端的虚拟,可在一台物理机上
同时打开多个接口
串行终端:/dev/ttyS*(串行终端对应的设备),/dev/xvc0 串口连接的终端
在/etc/inittab中可以定义是否开启虚拟终端和串行终端
系统控制台:/dev/console(/dev/tty0,/dev/fb0)(系统默认的逻辑终端)
console=ttyS0(将console映射到ttyS0而不是tty0)
模拟终端:/dev/pts/N(模拟终端对应的设备)远程登录使用
x window ,Terminal
ssh,telnet都使用模拟终端
screen也是使用模拟终端
x protocol的实现:x386(商业实现),XFree86(开源实现),xorg(渐渐替代xfree86)
x protocol是c/s架构
x server ,xclient
窗口管理器
桌面
eg:打开一个linux图形终端
X(提供显卡驱动,定义输入输出设备)--》xterm(图形终端)--》twm&(窗口管理器)-->gnome-session(桌面)
xhost + [IP/HOST] 允许某台主机到本机显示图形界面--在xserver上执行
xhost - [IP/HOST] 取消某台主机到本机显示图形界面--在xserver上执行
export DISPLAY=RHOST:N.n--在xclient上执行
eg:export DISPLAY=192.168.10.2:1.0
:1.0 表示第1个显示器上的第0个桌面
注意:xorg的服务端是显示图形界面的那一端(客户面对的电脑)
xorg的客户端是请求图形界面显示的那一端(服务器)
以上图形终端中传输的数据都是明文的,可以使用ssh通过加密转发对于远程桌面上
图形窗口的请求显示在本地,本地应启动xserver
ssh远程登录到别人的桌面上在本地显示
eg:ssh -X -l root 192.168.0.254
screen 支持在命令行模式下打开多个模拟终端,使用telnet或ssh远程登录linux时,
如果要下载非常大的文件,我们如果一直等着它下载会很浪费时间,如果我
们正做的工作还没做完,却到了下班时间。或者连接非正常中断,那么重新连
接时,系统将打开一个新的session,无法恢复原来的session。screen命令
可以解决这一系列问题。
screen工具是一个终端多路转接器,在本质上,这意味着你可以在一个单一
的终端窗口打开多个终端
screen的使用:
首先查看screen是否安装:screen 如果提示command not found既是没有安装
使用yum install screen 安装即可。
基本命令:
开一个会话,并命名为test:
screen -S test
ctrl+ a+d快捷键 把screen放后台运行(临时退出这个会话)
exit退出screen
在正常模式下使用screen打开screen
在screen下ctrl+a+c再打开一个子screen
screen -r screen号 重新打开放在后台的screen
screen -l (检查正在运行的会话)
权限的传递
linux两种用户:
root
普通用户
A用户 管理network
B用户 管理filesystem
如果把root权限给A和B,无法界定责任,出现问题的话不知道A和B谁干的
所以可以使用sudo
sudo机制可以授权A或B执行相关的功能,而不是全部的管理权限
/etc/sudoers里定义了:
who where=(runas)what(哪些用户可以在哪些主机上以谁的身份执行什么命令)
A 192.168.0.0/24=(root) /sbin/ifconfig A用户可以以管理员的身份在192.168.0.0
网段执行/sbin/ifconfig
若=后面没写root则默认是root
A执行此命令时要以sudo打头执行
eg:A登录自己的账号,然后写命令时加上sudo即可
eg:在root用户下设置sudoers 使用命令:visudo
然后在里面添加一条命令 redhat 192.168.0.0=(root) /usr/sbin/useradd
意思是redhat用户可以在192.168.0.0网段以root用户的身份使用/usr/sbin/useradd
命令。
然后:su - redhat(切换到redhat用户)
sudo /usr/sbin/useradd wangxing
再输入redhat的密码即可添加用户成功(若不想输密码,可在命令前
加上标签 NOPASSWD:)
使用tail /etc/passwd查看
若让A,B,C 管理network
D,E,F管理filesystem
可以为 who where=(runas)what起四个别名
User_Alias NETMANAGER=A,B,C(别名必须是英文大写字母)
Host_Alias NET=192.168.0.0/24
Cmod_Alias NETWORK=/sbin/ifconfig,/sbin/netstat
eg:NETMANAGER NET=(root) NETWORK(A,B,C可以在192.168.0.0网段以root
的身份执行/sbin/ifconfig 和 /sbin/netstat
一切皆文件:
GUI:
阅读(1366) | 评论(0) | 转发(0) |