Linux网络、shell

一 网络

### 网络
# 网络配置
	-子网掩码
	-dhcp
    -网关
    -dns
# mac网络配置
    # https://blog.csdn.net/hadues/article/details/129214087
    # https://blog.51cto.com/u_15687422/5389794

#  win 上有网络模式
	-桥接:跟宿主机在同一个网段
    -Nat地址转换:虚拟机自有一套网络
    	-win上直接选它
        -mac上选新建 vmnet3
        -pd:host-only
    -仅主机

DHCP

### 2.1 DHCP协议用途

动态主机设置协议(Dynamic Host Configuration Protocol, 缩写:DHCP),是一个用于IP网络的网络协议,位于OSI模型的应用层,包括两个主要用途:

用于内部网络或网络服务提供商自动分配IP地址给用户
用于内部网络管理员对所有电脑做中间管理

### 2.2 DHCP工作原理

DHCP是一种使网络管理员能够集中管理和自动分配IP网络地址的通信协议。在IP网络中,每个链接Internet的设备都需要分配唯一的IP地址,DHCP使网络管理员可以从中心节点监控和分配IP地址。

DHCP使用了租约的概念,称为计算机IP地址的有效期,租期时间的长短取决于连接Internet时间的长短,透过较短的租期,DHCP能够在一个计算机比IP地址多的环境中动态地重新配置网络。

DHCP支持为计算机分配静态地址,如需要永久性IP地址的Web服务器。


# 如果之前装机没配好--->后期可以再配置
	-vmware网段设置好
    -虚拟机选用了这个nat地址转换
    -虚拟机中,使用命令和修改文件
    	-/etc/sysconfig/network-scripts
        -ifcfg-ens32  #ifcfg开头的文件,如果有多个网卡,有多个ifcfg-ensxx文件
        -vi ifcfg-ens32
        TYPE=Ethernet
        DEFROUTE=yes
        NAME=ens32
        UUID=cc56788f-4d01-4848-82d1-f8c4dab9aa86
        DEVICE=ens32
        ----------------------------------------
        ONBOOT=yes
        BOOTPROTO=static
        IPADDR=10.0.0.100
        GATEWAY=10.0.0.254
        DNS1=119.29.29.29
        DNS2=114.114.114
	-修改完后重启网卡
     systemctl restart network #重启网卡
     ip addr # 查看ip地址
    
    
    
# 保存一个模板机
	-shutdown now  #关机
    - 克隆一个虚拟机(完整克隆)
    - 开启,进入,修改ip  10.0.0.100
    -关机
    -以后想再复制一个虚拟机,直接基于模板机克隆即可

二 shell

############# shell是什么
-Bash Shell是一个命令解释器(python解释器),它在操作系统的最外层,负责用户程序与内核进行交互操作的一种接口,将用户输入的命令翻译给操作系统,并将处理后的结果输出至屏幕
-没有图形化界面了
-远程链接工具,链接上,就打开了一个shell窗口,可以输入命令

-进入和退出
    bash
    exit

#############shell 能干什么
使用Shell实现对Linux系统的大部分管理,例如:
1.文件管理(文件创建,移动,复制,删除,编辑…)
2.权限管理(不同用户不通权限)
3.用户管理(创建,删除….)
4.磁盘管理(挂载)
5.网络管理
6.软件管理
原来win上通过 点点点  完成的操作,现在都用bash命令来操作


#############shell 如何使用
	1 直接输入命令 –> 效率低 –>适合少量的工作
    	ls
        pwd
    2 Shell Script(shell 脚本) –> 效率高–>适合复杂重复性的工作
    	-django项目部署:
        	uwsgi -x xx.xml
            celery work,beat
            
        -vi test.sh
        for i in {1..100}
        do
         echo "create test$i"
        done
        -方式一:chmod +x test.sh   #加入执行权限
        	./test.sh   # 可以执行
        -方式二:
        	bash test.sh

#############Shell提示符
	### 1 [root@lqz ~]#   解释
    root:用户
    @:没有含义
    lqz:主机名
    ~ :路径,用户家路径,root用户家路径是  /root
    # : 超级用户
    $ :普通用户

    
    ### 2 主机名
    	hostname  # 查看主机名
    
    ### 3 创建用户(先听)
    	useradd lqz  # 在/home 路径下创建一个根用户同名的文件夹--->这个用户家路径
        passwd lqz   # 给用户设置密码
        #使用lqz登录 --->final-shell重新使用lqz链接
        # root用户链接了,切换成lqz用户
        	su 用户名  # 要不要输入密码,取决于你是谁
          
   ### 4  whoami
	看我是谁

Shell基础语法

# 格式
#命令      选项       参数
command [-options] [arguments]

# 以ls命令为例
	ls -a
    ls --all
    ls -al  # 等同于  ls -l  等同于  ll
    ls -al /home
# 必须以命令开头,选择和参数,可以有,也可以没有


shell 补全

# 敲了命令,按tab,如果有多种选择,都会列出来,如果没有了,只有这一个,直接补齐

# 查看本机ip
	ip addr
# 使用 ifconfig:找不到,外部命令,第三方软件支持        win:ipconfig
	yum install net-tools -y
    ifconfig # 查看ip了
    
    
    
# 问题:
	-刚刚不能上网了---->dns有问题--->解决:加了个dns2
    -把yum源改成了阿里云的源---->
    	/etc/yum.repos.d
		http://mirrors.aliyun.com/repo/Centos-7.repo   # 下载Centos-7.repo 放在这个路径下即可
         yum clean all
		yum makecache

shell命令快捷键

Ctrl + a    #光标跳转至正在输入的命令行的首部
Ctrl + e    #光标跳转至正在输入的命令行的尾部
Ctrl + c    #终止前台运行的程序
Ctrl + z    #将任务暂停,挂至后台
Ctrl + l    #清屏,和clear命令等效。  
Ctrl + k    #删除从光标到行末的所有字符
Ctrl + u    #删除从光标到行首的所有字符
Ctrl + r    #搜索历史命令, 利用关键字,Tab建选中
Ctrl + w    #按单词或空格进行向前删除
Ctrl + 左右建 #按单词或空格进行向前向后跳

#在命令行前加面加 "#" 则该命令不会被执行

命令History

# history 可以查看命令历史
# 使用上下键可以快速选择之前执行过的命令
# !!  执行上一条命令
# !数字  执行history历史中第 数字  行的命令
# !yum   最近一次的yum命令
# history -d 100  删除第100条历史记录
# history -c      清空记录(保存到文件中的还有)
# history -w      保存历史集合,保存到当前用户的家目录 .bash_history
# > .bash_history  清空文件的保存(操作完,不让别人看你执行的命令)

命令别名

# 设置别名
alias xx='ls -al'  # 以后敲xx等同于ls -al
alias lqz='ifconfig'

#取消别名
unalias lqz

# 上述操作只在当前会话生效,永久生效
echo "alias lqz=ls -al" >> /etc/bashrc  # 所有人都生效
echo "alias lqz=ls -al" >> /root/bashrc #只针对于root

Shell获取帮助

# 命令 --help  提示你怎么用

# man ls 
q退出
空格翻页,上下键翻页

内部命令,什么是外部命令

# 内部命令
	linux内置的命令  ls    pwd
# 外部命令 --第三方软件支持的
	ifconfig
    
    
    
# type -a pwd   查看是内部还是外部


# yum provides ifconfig

# 查看环境变量--->任意路径敲命令,都能找到,命令在环境变量中
echo $PATH  #用 : 分割

# 外部命令,一般都在 :/usr/sbin/

外置命令内存缓存

如果是外置命令还会涉及到一个内存缓存,也就是说,当我们出现重复执行相同的命令,会通过缓存调取执行,也就意味着不会搜索PATH路径
posted @ 2023-08-08 21:53  星空看海  阅读(14)  评论(0编辑  收藏  举报