1 基础知识

基础知识

桥接和仅主机模式的区别

桥接模式

在桥接模式下,相当于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,空格后面的用户是当前所在的目录,#代表是管理员账户,普通用户是$。

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

命令执行的优先顺序

alias>内部命令>外部命令(hash>PATH)

执行一条命令的时候,会现在alias中查找,如果找不到就在内部命令中去查找,如果还找不到的话就在外部命令中去查找,如果依然找不到的话就会在hash缓存中去查找,最后找不到的话就会去PATH下去找。

那怎么使用命令不受别名的影响呢?

  • /bin/ls:路径执行
  • \ls:反斜线
  • 'ls':单引号
  • "ls":双引号

命令的格式

command options arguments:options是选项,arguments是参数

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和hwclock

显示硬件时间

  • -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

screen

使用场景

比如复制一个很大的文件时,系统会等待复制完成才可以继续输入命令,而且一旦不小心关闭终端,复制就结束了,这样就要用到screen。

screen的安装

[root@centos6 ~]# mount /dev/sr0 /media/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@centos6 ~]# rpm -ivh /media/Packages/screen-4.0.3-19.el6.x86_64.rpm 
warning: /media/Packages/screen-4.0.3-19.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
    package screen-4.0.3-19.el6.x86_64 is already installed

echo

输出,相当于易语言的调试输出或者java的println

[root@centos6 ~]# echo nihao
nihao
[root@centos6 ~]# echo $SHELL
/bin/bash

发出报警声,e表示扩展

[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

$()或反引号:引用命令的执行结果
创建一个当前时间的txt文件

[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:从历史搜索模式退出

    [root@centos6 ~]# history 
    1  ifconfig 
    2  ifcon
    3  ifconfig 
    4  ls
    5  ls -l
    6  ls -a

    在登录shell的时候,会读取命令历史文件中的记录,在~/.bash_history里面,登录进shell后新执行的命令是保存在缓存中的,这些命令在退出shell的时候才会追加到.bash_history中。

bash常用的快捷键介绍

  • Ctrl + l: 清屏,相当于clear
  • Ctrl + c: 终止命令
  • Alt + number: 按住Alt输入指定数字后,松开Alt,输入字符 重复显示该字符n次
  • Alt + .: 重新调用前一个命令中最后一个参数

猜你喜欢

转载自www.cnblogs.com/fanjieaml/p/9124840.html