一、VMware安装centos
- cpu:默认
- 内存:1G以上,推荐2G
- 硬盘:一块硬盘,200G
- / 根文件分配50G
- /boot 开机引导文件分配1G
- /data 分配30G
- 网卡:主机模式或桥接模式
- 光盘:挂在对应版本的ISO文件
二、终端 terminal
1.远程连接
- ssh协议
- 第一步:ss -tnl 查看系统是否监听于tcp协议的22端口
- 第二部:ifconfig命令(或ip addr 命令)查看IP地址
- 第三步:打开xshell,输入ssh 192.168.199.128 输入管理员账号密码登录
2.终端
- 物理终端(/dev/console)
控制台 console - 虚拟终端(tty:teletypewriters,/dev/tty# #为[1-6])
tty可有n个,Ctrl+Alt+F[1-6] - 图形终端(/dev/tty7 )startx, xwindows
- centos6 ctrl+alt+F7
- centos7 在哪个虚拟终端使用,即位于哪个虚拟终端
- 串行终端(/dev/ttyS# )
- 伪终端(pty:pseudo-tty,/dev/pts/# )
pty, SSH远程连接
三、命令
1.命令提示符(prompt)
[root@localhost~]#
- # 管理员
- $ 普通用户
echo $PS1 显示命令提示符格式
PS1="[e[1;5;41;33m][u@h W]\$[e[0m]" PS1变量格式
实验:如何永久修改命令提示符?
第一步,将PS1变量设置为: PS1="[e[1;36m][u@h W]\$[e[0m]"
第二步,键入命令 nano /etc/profile.d/env.sh
第三步,将 PS1="[e[1;36m][u@h W]\$[e[0m]" 保存至env.sh文件中
2.命令语法的通用格式
command option arguments
- 发起一个命令,请求内核将某个二进制程序运行为一个进程:
* 程序-->进程
* 静态-->动态(有生命周期)
命令本身是一个可执行的程序文件(二进制格式文件,有可能会调用共享库文件)
多数程序文件都放在:/bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin
- 普通命令:/bin,/usr/bin,/usr/local/bin
- 管理命令:/sbin,/usr/sbin,/usr/local/sbin
shell命令是独特的程序,负责解析用户提供的命令:
环境变量,PATH:从哪些路径中查找用户键入的命令字符串所对应的命令文件(外部命令)
~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
注意:查找顺序自左向右,比如:ls 命令,先查找/usr/local/sbin 文件,再查找后边的文件;假如两个文件中都有ls,那么优先运行左边的。
四、命令行扩展:$()或` `
echo "This system's name is $(hostname)"
echo echo "This system's name is `hostname`"
以上两句输出效果相同
"" 或 '' 或` `之间的区别:
'' 强引用 不完成变量替换
"" 弱引用 可以实现变量替换
`` 命令执行
五、{}
echo file{1,2,3}
file1 file2 file3
echo file{1,2,3}{a,b}
file1a file1b file2a file2b file3a file3b
echo file{1..9}
file1 file2 file3 file4 file5 file6 file7 file8 file9
echo file{1..20..2}
file1 file3 file5 file7 file9 file11 file13 file15 file17 file19
echo file{a..Z}
filea file` file_ file^ file] file file[ fileZ
其显示顺序是按照ASCII字符代码表顺序显现
六、命令行历史
- 历史命令记录于主目录下的 .bash_history文件中
- 系统会自动保存我们输入的命令,history查询历史命令。
- 登录进shell后新执行的命令只会记录于缓存中,这些命令会在用户退出时追加保存至“.bash_history”这个文件夹中。
- 一些快捷命令:
!! 重复上一个命令
!n 执行history命令输出的第n条命令
!-n 执行history命令输出倒数的第n条命令
!string 重复前一个以“string”开头的命令
!?string 重复前一个包含string的命令
!$:p打印输出!$ (上一条命令的最后一个参数)的内容
!:p打印输出!(上一条命令的所有参数)的内容
** ctrl-r来在命令历史中搜索命令**
command !^ : 利用上一个命令的第一个参数做cmd的参数
command !$ : 利用上一个命令的最后一个参数做cmd的参数
command !* : 利用上一个命令的全部参数做cmd的参数
command !:n : 利用上一个命令的第n个参数做cmd的参数
七、文件通配符
符号 | 内容 |
---|---|
* | 匹配零个或多个字符 |
? | 匹配任何单个字符 |
[0-9] | 匹配数字范围 |
[a-z] | 字母 a到z |
[A-Z] | 字母A到Z |
[wang] | 匹配wang中任何一个字符 |
[^wang] | 匹配除wang外的任何一个字符 |
[:digit:] | 任意数字,相当于0-9 |
[:lower:] | 小写字母 |
[:upper:] | 大写字母 |
[:alpha:] | 任意大小写字母 |
[:alnum:] | 任意数字或字母 |
[:blank:] | 水平空白字符 |
[:space:] | 水平或垂直空白字符 |
八、练习题
1、显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录
ls -a /var/l*[[:digit:]]*[[:lower:]]
2、显示/etc目录下以任意一位数字开头,且以非数字结尾的文件或目录
ls -a /etc/[[:digit:]]*[^[:digit:]]
3、显示/etc/目录下以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录
ls -a /etc/[^[:alpha:]]*[[:alpha:]]*
4、显示/etc/目录下所有以rc开头,并后面是0-6之间的数字,其它为任意字符的文件或目录
ls -a /etc/rc[0-6]*
5、显示/etc目录下,所有以.d结尾的文件或目录
ls -a /etc/*.d
6、显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录
ls -a /etc/[mnrp]*.conf
7、只显示/root下的隐藏文件和目录
ls -d /root/.*
8、只显示/etc下的非隐藏目录
ls -d /root/[^.]*