[TOC]
桥接模式
在桥接模式下,相当于VM虚拟出了一个交换机,然后交换机也连接在物理的连接上,这时,虚拟主机都可以获取到和物理主机在同一个网段上的地址。所以可以通过桥接模式,来连接同一个局域网内的虚拟主机。比如你可以连接你的小伙伴的虚拟的主机,如果他也是桥接在当前的局域网中
仅主机模式
在仅主机的模式下,也相当于虚拟出了一个虚拟交换机,各个虚拟机都连接在虚拟的交换机上,同时你的物理主机也会连接在这台交换机上,地址是由你的VMWare的DHCP服务来分配的,所以自己的虚拟主机之间是可以互通的,但是即使你和你的小伙伴的地址是同一个网段内的都是不可以互通的
设备的文件名
如linux的哲学思想所说一切皆文件,在linux中设备也可以看做成是文件,设备文件放在/dev目录下面,磁盘通过不同的接口接在设备上,其设备名也是不一样的
- IDE硬盘:/dev/hd[a-z]
- SCSI硬盘:/dev/sd[a-z]
- SATA硬盘:/dev/sd[a-z]
- SAS硬盘:/dev/sd[a-z]
- U盘:/dev/sd[a-z]
- CDROM:/dev/sr0
磁盘只有在分区之后才能使用,分区之后的命名为,这里就拿sda来说,比如第一个分区就叫做sda1,第二个分区就叫做sda2,以此类推
终端terminal
- 设备终端:比如我们使用的键盘,鼠标和显示器
- 物理终端(/dev/console):控制台console口
- 虚拟终端(/dev/tty,tty[2-6]):tty可以有N个,使用Ctrl+Alt+F[2-6]可以切换虚拟终端
- 图形化终端(/dev/tty1):在Centos6中是Ctrl+Alt+F1,但是在Centos7中,在哪一个终端启动即位于哪一个终端上
- 串行终端(/dev/ttyS#):串行终端由ttyS+数字,可以有很多个
- 伪终端(/dev/pts/#):当使用xshell,CRT或者putty等客户端SSH连接到linux主机上的时候,就会有/dev/pts/0,后面的数字根据连接数递增
- 命令提示符:[root@centos6 ~]# 是命令提示符,root代表当前用户,@后面的是当前的主机名,相当于hostname,空格后面的用户是当前所在的目录,#代表是管理员账户,普通用户是$
命令执行顺序
alias>内部命令>外部命令(hash>PATH)
执行一条命令的时候,会先在alias中查找,如果找不到就在内部命令中去查找,如果还找不到的话就在外部命令中去查找,如果依然找不到的话就会在hash缓存中去查找,最后找不到的话就会去PATH下去找
那怎么使用命令不受别名的影响呢?
- /bin/ls:路径执行
- \ls:反斜线
- 'ls':单引号
- "ls":双引号
简单命令
cat
查看文件的内容,比如我们可以查看一下当前系统所安装的shell有哪些:
[root@centos6 ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
还可以查看一下当前的shell:
[root@centos6 ~]# echo $SHELL
/bin/bash
type
用来查看命令的类型,内置命令和外置命令会有不同的显示结果
# 内置命令
[root@centos6 ~]# type cd
cd is a shell builtin
# 外置命令
[root@centos6 ~]# type cat
cat is hashed (/bin/cat)
which
查看外部命令的路径
[root@centos6 ~]# which cat
/bin/cat
enable
查看已经启用的内部命令,常用选项:
- -n command:禁用指定的内部命令
- -n:查看已经禁用的内部命令
- -a:启用指定的内部命令
[root@centos6 ~]# enable -n cd
[root@centos6 ~]# enable -n
enable -n cd
[root@centos6 ~]# enable cd
[root@centos6 ~]# enable -a |wc -l
61
hash
外部命令在第一次执行的时候,会在系统下的路径去找,当执行过以后就会缓存下来,可以通过hash查看缓存的命令,常用选项:
- -d command:删除指定的hash
- -r:清除所有的hash
[root@centos6 ~]# hash
hits command
2 /usr/bin/tty
1 /bin/cat
9 /bin/date
1 /usr/bin/man
[root@centos6 ~]# type cat
cat is hashed (/bin/cat)
alias
查看别名或定义别名
[root@centos6 ~]# alias
alias copy='cp'
alias cp='cp -i'
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'
定义新的别名
[root@centos6 ~]# alias copy='cp'
取消别名
[root@centos6 ~]# unalias copy
取消所有别名
[root@centos6 ~]# unalias -a
当前定义的别名只在本次会话中有效,重启终端以后不会生效,如果想对当前用户生效,可以将别名写入~/.bashrc,如果想对本机所有用户生效,可以将别名写入/etc/.bashrc
[root@centos7 ~]# cat .bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
date
查看日期,此为软时间
[root@centos6 ~]# date
Thu May 17 19:19:07 CST 2018
输出指定格式的日期
[root@centos6 ~]# date "+%F %T %u"
2018-05-17 19:23:53 4
设置软时间
[root@centos6 ~]# date -s "2018-5-12 12:12:12"
Sat May 12 12:12:12 CST 2018
cal
显示当前月份的日历
[root@centos6 ~]# cal
May 2018
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
显示指定的年月
[root@centos6 ~]# cal 8 2018
August 2018
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
clock
显示硬件时间,常用选项:
- -s:将硬件时间写到软件时间
- -w:将软件时间写到硬件时间
[root@centos6 ~]# date
Wed Aug 8 18:18:20 CST 2018
[root@centos6 ~]# clock -s
[root@centos6 ~]# date
Thu May 17 20:24:33 CST 2018
关机
- init 0:关机
- init 6:重启
- poweroff
- shutdown -h +minute:多少分钟后关机
- shutdown -h +0:立即关机
- shutdown 19:11:指定时间关机
- shutdown -c:取消关机
whoami
显示当前的用户
[root@centos6 ~]# whoami
root
who am i
显示当前用户的详细信息
[root@centos6 ~]# who am i
root pts/0 2018-05-17 14:01 (172.18.118.140)
who
显示当前所有用户
[root@centos6 ~]# who
root pts/0 2018-05-17 14:01 (172.18.118.140)
root pts/1 2018-05-17 14:55 (172.18.118.140)
w
显示当前所有用户的详细信息
[root@centos6 ~]# w
20:59:59 up 6:07, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 172.18.118.140 14:01 1.00s 2.42s 0.60s w
root pts/1 172.18.118.140 14:55 1:39m 3.68s 0.01s man date
echo
输出,相当于易语言的调试输出或者java的println,默认打印完成后换行
- -n:打印后不换行
- -e:激活转义字符
- \a:发出警告声
- \b:删除前一个字符
- \c:最后不加上换行符号
- \f:换行但光标仍旧停留在原来的位置
- \n:换行且光标移至行首,默认
- \r:光标移至行首,但不换行
- \t:插入tab
- \v:与\f相同
- \\:插入\字符
- \nnn:插入nnn(八进制)所代表的ASCII字符
[root@centos6 ~]# echo nihao
nihao
[root@centos6 ~]# echo $SHELL
/bin/bash
[root@centos6 ~]# echo -e "\a"
$
$varname:引用变量的值
[root@centos6 ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@centos6 ~]# a=1
[root@centos6 ~]# echo $a
1
$()或反引号:引用命令的执行结果
[root@centos6 ~]# touch $(date "+%H时%M分%S秒").txt
[root@centos6 ~]# ls
21时16分59秒.txt Documents install.log.syslog Public
anaconda-ks.cfg Downloads Music Templates
Desktop install.log Pictures Videos
[]或(()):表示算术运算
[root@centos6 ~]# echo $[19+10]
29
[root@centos6 ~]# echo $((19+10))
29
${}或$${varname}:强调了变量的起始和终止的范围
[root@centos6 ~]# s=123
[root@centos6 ~]# echo ${s}456
123456
{}
连续的值
[root@centos6 ~]# echo {1..10}
1 2 3 4 5 6 7 8 9 10
[root@centos6 ~]# echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
[root@centos6 ~]# echo {A..z}
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z
添加步长
[root@centos6 ~]# echo {1..10..2}
1 3 5 7 9
history
查看命令历史,常用选项:
- -c:清空历史
- -a:追加本次会话新执行的命令历史至历史文件
- -w /PATH/TO/SOMEFILE:保存历史列表到指定的历史文件
- -r:读取历史文件中的所有历史到当前终端的历史
- -n:仅读取未度过的历史到当前终端的历史缓存
- !n:执行第n条的命令
- !!:再执行一次上次执行的命令
- Ctrl + r:来在命令历史中搜索命令
- Ctrl + g:从历史搜索模式退出
在history中显示命令操作时间
[root@centos6 ~]# export HISTTIMEFORMAT=$(date +"%F %T")' '
[root@centos6 ~]# export HISTTIMEFORMAT="%F %T"' '
在登录shell的时候,会读取命令历史文件中的记录,在~/.bash_history里面,登录进shell后新执行的命令是保存在缓存中的,这些命令在退出shell的时候才会追加到.bash_history中。
bash常用快捷键
- Ctrl + l:清屏,相当于clear
- Ctrl + c:终止命令
- Alt + number:按住Alt输入指定数字后,松开Alt,输入字符 重复显示该字符n次
- Alt + .:重新调用前一个命令中最后一个参数