Linux 准备工作/SSH远程连接/常用命令

Linux 准备工作/SSH远程连接/常用命令

一、Linux有什么作用:

  • 商业服务器百分之90以上都是Linux系统。
  • 开源软件都先支持Linux。
  • 大数据分析、机器学习首选Linux。
  • 整个互联网地基靠Linux撑起来。

二、准备工作:

  • 查看IP:

    • [root@localhost ~]# ip addr

      1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
          link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
          inet 127.0.0.1/8 scope host lo
             valid_lft forever preferred_lft forever
          inet6 ::1/128 scope host 
             valid_lft forever preferred_lft forever  
      # 第一个是本机ip地址,也就是回环IP 不走网卡的
      2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
          link/ether 00:0c:29:37:a8:09 brd ff:ff:ff:ff:ff:ff
          inet 192.168.65.32/22 brd 192.168.67.255 scope global noprefixroute dynamic ens33
             valid_lft 506sec preferred_lft 506sec
          inet6 fe80::98e6:e7e9:dc3a:a3a/64 scope link noprefixroute 
             valid_lft forever preferred_lft forever
      # 第二个是 192.168.65.32/22 外网IP地址 如果是内网IP地址的话,可以将虚拟机网络更改为桥接模式
      
    • 如果该网络ens33没有IP地址怎么办?

      • [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33

        TYPE="Ethernet"
        PROXY_METHOD="none"
        BROWSER_ONLY="no"
        BOOTPROTO="dhcp"
        DEFROUTE="yes"
        IPV4_FAILURE_FATAL="no"
        IPV6INIT="yes"
        IPV6_AUTOCONF="yes"
        IPV6_DEFROUTE="yes"
        IPV6_FAILURE_FATAL="no"
        IPV6_ADDR_GEN_MODE="stable-privacy"
        NAME="ens33"
        UUID="42c1e011-fe4a-48c6-9f25-6d85590b0d34"
        DEVICE="ens33"
        ONBOOT="yes"    # 把no 更改为yes
        
      • 然后输入命令(将网络服务进行重启):service network restart

    • 安装ifconfig命令:

      • yum install net-tools

      • 安装完成后执行:[root@localhost ~]# ifconfig

        [root@localhost ~]# ifconfig 
        br-53cc6a947569: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
                inet 172.18.0.1  netmask 255.255.0.0  broadcast 172.18.255.255
                inet6 fe80::42:cbff:fe2b:1706  prefixlen 64  scopeid 0x20<link>
                ether 02:42:cb:2b:17:06  txqueuelen 0  (Ethernet)
                RX packets 0  bytes 0 (0.0 B)
                RX errors 0  dropped 0  overruns 0  frame 0
                TX packets 0  bytes 0 (0.0 B)
                TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        
        docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
                inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
                inet6 fe80::42:8eff:fe70:360d  prefixlen 64  scopeid 0x20<link>
                ether 02:42:8e:70:36:0d  txqueuelen 0  (Ethernet)
                RX packets 576  bytes 52753 (51.5 KiB)
                RX errors 0  dropped 0  overruns 0  frame 0
                TX packets 561  bytes 1459647 (1.3 MiB)
                TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        
        ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
                inet 192.168.65.32  netmask 255.255.252.0  broadcast 192.168.67.255
                inet6 fe80::98e6:e7e9:dc3a:a3a  prefixlen 64  scopeid 0x20<link>
                ether 00:0c:29:37:a8:09  txqueuelen 1000  (Ethernet)
                RX packets 1872693  bytes 642682737 (612.9 MiB)
                RX errors 0  dropped 0  overruns 0  frame 0
                TX packets 326324  bytes 27146858 (25.8 MiB)
                TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        
        lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
                inet 127.0.0.1  netmask 255.0.0.0
                inet6 ::1  prefixlen 128  scopeid 0x10<host>
                loop  txqueuelen 1000  (Local Loopback)
                RX packets 137  bytes 12605 (12.3 KiB)
                RX errors 0  dropped 0  overruns 0  frame 0
                TX packets 137  bytes 12605 (12.3 KiB)
                TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        
        vethe725d12: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
                inet6 fe80::ac99:2bff:fe04:34b6  prefixlen 64  scopeid 0x20<link>
                ether ae:99:2b:04:34:b6  txqueuelen 0  (Ethernet)
                RX packets 0  bytes 0 (0.0 B)
                RX errors 0  dropped 0  overruns 0  frame 0
                TX packets 8  bytes 648 (648.0 B)
                TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        
  • 替换默认源:

    • http://mirrors.163.com/.help/centos.html

    • 查看服务器的版本:[root@localhost ~]# cat /etc/redhat-release

      [root@localhost ~]# cat /etc/redhat-release 
      CentOS Linux release 7.5.1804 (Core)    # 版本为7.5
      
    • 安装wget命令:yum install wget

    • 开始替换163的源,因为下载、安装一些东西速度较快:

      1.首先备份/etc/yum.repos.d/CentOS-Base.repo :

      mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
      

      2.打开上面的网页:找到下载对应版本repo文件:

      cd   /etc/yum.repos.d/  #  cd 到这个目录中
      

      3.下载repo文件,点击centos7(通过上面命令查看centos版本)鼠标右键,点击复制链接地址,然后回到终端执行:

      wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
      

      4.运行下面命令生成缓存:

      yum clean all
      yum makecache
      
  • 安装Vim:

    • 执行命令:yum install vim

三、远程连接SSH:

3.1:认识SSH:
  • SSH:英文全称Secure Shell 安全外壳协议
  • 建立再应用层基础上的安全协议
  • 可靠,专为远程登陆会话和其他网络服务提供安全性的协议
  • 有效防止远程管理过程中的信息泄漏问题
  • SSH客户端适用于多种平台。
  • SSH服务端几乎支持所有UNIX平台。
3.2:服务器安装SSH服务:
  • 安装SSH:

    yum install openssh-server
    
  • 启动SSH:

    service sshd start 
    
  • 设置开机运行:

    chkconfig sshd  on
    
  • 查看ssh进程:

    ps  -ef  | grep  ssh
    
  • 基本上界面化的操作系统都没有安装ssh。

3.3:客户端安装SSH工具:
  • Linux平台需要安装客户端软件:

    yum install openssh-clients
    
  • Window可以搜索一些常用的软件,比如:Xshell。

3.4:客户端链接SSH服务:
  • 进入黑窗口,进行下面操作:

    ssh root[用户名]@192.168.1.8[公网IP地址]
    
    The authenticity of host '192.168.1.8 (192.168.1.8)' can't be established.
    ECDSA key fingerprint is SHA256:kVeo07JOZKNIeBIQN30MFXCBLBFrCzb/6t9dGfUqU0g.
    Are you sure you want to continue connecting (yes/no)? yes  #  输入yes
    
    root@192.168.1.8's password:     # 输入暗文的登陆密码,就OK
3.5:SSH config 简介:
  • SSH config 语法关键字

    Host别名
    HostName主机名[IP]
    Port端口[默认22]
    User用户名[root]
    IdentityFile密钥文件的路径
  • 通过再~/.ssh/config创建一个config文件:

    cd ~ # 进入家目录
    mkdir .ssh  # 创建隐藏文件夹
    cd .ssh  # 进入.ssh目录
    touch config  # 创建一个config文件
    
    vim config  # 用vim打开config文件
    host "fe_cow"  # 文件别名
    	HostName 192.168.1.8  # IP地址
    	User root  # 用户名
    	Port  22  # 端口默认就是22 
    # 进行保存退出
    

    执行命令:ssh fe_cow[文件别名]

    The authenticity of host '192.168.1.8 (192.168.1.8)' can't be established.
    ECDSA key fingerprint is SHA256:kVeo07JOZKNIeBIQN30MFXCBLBFrCzb/6t9dGfUqU0g.
    ECDSA key fingerprint is MD5:9c:38:f9:93:73:74:fb:cf:15:30:0b:e5:b4:97:ab:f9.
    Are you sure you want to continue connecting (yes/no)? yes # 填写yes
    Warning: Permanently added '192.168.1.8' (ECDSA) to the list of known hosts.
    root@192.168.1.8's password:   # 输出暗文密码
    

    也可以再config文件里配置多个远程链接服务器:

    vim config  # 用vim打开config文件
    host "fe_cow"  # 文件别名
    	HostName 192.168.1.8  # IP地址
    	User root  # 用户名
    	Port  22  # 端口默认就是22 
    host "cu_cow"  # 文件别名
    	HostName 192.169.1.3  # IP地址
    	User  root # 用户名
    	Port  22  # 端口
    # 进行保存退出
    再终端执行: ssh  cu_cow 
    # 执行上面命令后,就会链接到文件别名为cu_cow的服务器上
    
3.6:SSH安全免密码登录:ssh key
  • ssh key 使用非对称加密方式生成公钥/私钥

  • 私钥存放在本地~/.ssh目录

  • 公钥可以对外公开,放在服务器的~/.ssh/authorized_keys(存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥)

  • Linux生成密钥的方式

    1.登录到Linux服务器,进入到~/.ssh目录中:

    cd ~/.ssh
    

    2.执行命令ssh-keygen

    [root@localhost .ssh]# ssh-keygen  # 执行生成密钥命令
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): fe_cow   # 密钥的文件名
    Enter passphrase (empty for no passphrase):   #  这里我没有设置密码
    Enter same passphrase again:                  #  没有设置密码
    Your identification has been saved in fe_cow.
    Your public key has been saved in fe_cow.pub.
    The key fingerprint is:
    SHA256:/95IMeDY9MD8LFlnJJkY1n2cWXTBHn+/Ca5MEboiChI root@localhost.localdomain
    The key's randomart image is:
    +---[RSA 2048]----+
    |          o+.+o+O|
    |         +. +o.=+|
    |          *.. +.o|
    |         =.O.o .o|
    |E       S.=.*   o|
    | .       ....+  .|
    |..   . . ...o . o|
    |. . . . . oo + o |
    |   .       += .  |
    +----[SHA256]-----+
    

    3.查看当前目录中的生成密钥文件ls -a

    [root@localhost .ssh]# ls -a
    .  ..  config  fe_cow[是私钥]  fe_cow.pub[后缀名.pub代表的是公钥]  known_hosts
    
  • 再Linux平台使用公钥与私钥,进行免密码登录:

    1.登录服务器,进入.ssh目录(cd ~/.ssh/ )查看公钥文件cat fe_cow.pub

    cat fe_cow.pub
    
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYb2VqVd647SmfHrF/f7Thoj4tbU3ohKej3aOFBH2N1a35MH6ml6DTCsFW78we+X9RnFp4qOpr2WNKuX/6AFXulOrMUPryJ7fkGqTcEB8fD7/qZIhSNahCs4xh7O3g9D0W1EVJR9uxtVQ86nXrnbED8O1G93CN0cfHqtGC6jbRGRJ5rErdAb+b0qN5143udQEFGa+h4gj3dXi16QvkJEbYnYB4KuLagNmYLHH/Gml8EdDNLWFnC4lKbCMVXi5KocqhXQc7TkupCU13XpG8HuzBrkaWJYbc2YgEGIs0wCUhXQeOZLN0gbjH47g6SErioZuKTXVroHJKYCsd3o5tV root@localhost.localdomain
    

    2.再当前目录创建authorized_keys文件,然后将公钥保存到authorized_keys文件中:

    vim authorized_keys
    

    3.接下来执行命令:

    eval `ssh-agent`
    
    ssh-add ~/.ssh/fe_cow   # 将私钥进行添加到ssh 
    

    4.远程登录 ssh root@192.168.65.246:可以发现已经不需要登录密码了。

3.7:SSH安全端口:
  • 端口安全指的是尽量避免服务器的远程连接端口被不法分子知道,为此而改变默认服务器端口号的操作

  • 修改/etc/ssh/sshd_config 配置

    • 打开 sshd_config文件:

      vim /etc/ssh/sshd_config
      ....................
        8 # The strategy used for options in the default sshd_config shipped with
        9 # OpenSSH is to specify options with their default value where
       10 # possible, but leave them commented.  Uncommented options override the
       11 # default value.
       12 
       13 # If you want to change the port on a SELinux system, you have to tell
       14 # SELinux about this change.
       15 # semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
       16 #
       17 #Port 22 
       18 #AddressFamily any
       19 #ListenAddress 0.0.0.0
       20 #ListenAddress ::
       21 HostKey /etc/ssh/ssh_host_rsa_key
       22 #HostKey /etc/ssh/ssh_host_dsa_key
       23 HostKey /etc/ssh/ssh_host_ecdsa_key
       24 HostKey /etc/ssh/ssh_host_ed25519_key
       25 
       26 # Ciphers and keying
      ....................................
      
    • 将17行代码打开, 或者也可以监听两个端口,再增加一个Port 10010端口,保存后退出。

    • 重新启动sshd配置文件:service sshd restart

      [root@localhost ~]# service sshd restart 
      Redirecting to /bin/systemctl restart sshd.service
      

四、Linux常用命令:

4.1:软件操作命令:
  • 软件包管理器:yum
  • 安装软件:yum install xxx
  • 卸载软件:yum remove xxx
  • 搜索软件:yum serach xxx
  • 清理缓存:yum clean packages
  • 列出已安装:yum list
  • 软件包信息:yum info xxx
4.2:服务器硬件资源和磁盘操作:
  • 内存:free -m

    [root@localhost ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:           1821         610         183          25        1027         925
    Swap:          2047           1        2046
    
  • 硬盘:df -h

    [root@localhost ~]# df -h
    文件系统                 容量  已用  可用 已用% 挂载点
    /dev/mapper/centos-root   17G  4.3G   13G   26% /
    devtmpfs                 899M     0  899M    0% /dev
    tmpfs                    911M     0  911M    0% /dev/shm
    tmpfs                    911M   26M  886M    3% /run
    tmpfs                    911M     0  911M    0% /sys/fs/cgroup
    /dev/sda1               1014M  142M  873M   14% /boot
    tmpfs                    183M     0  183M    0% /run/user/0
    overlay                   17G  4.3G   13G   26% /var/lib/docker/overlay2/ddb654b92ae1ff55dbd2738f2a35dc62a48d8c9189025012909bd3cbf02cf326/merged
    shm                       64M     0   64M    0% /var/lib/docker/containers/5ae1582f11bdbd3472fd2921784223bf560a8b16497ca7ed6ccfd90317ff1944/mounts/shm
    
  • 负载:w/top

    [root@localhost ~]# w
     09:46:21 up 2 days, 20:52,  2 users,  load average: 0.00, 0.04, 0.06
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     tty1                      02119  7:01   5.06s  5.06s -bash
    root     pts/0    192.168.67.214   09:39    5.00s  0.02s  0.00s w
    # load average: 0.00[表示最近一分钟的平均负载]
     			   0.04[表示最近五分钟的平均负载]
    			   0.06[表示最近十五分钟的平均负载]
    			   当服务器大于0.6或大于0.7 就已经很危险
    
  • 查看cup信息:cat /proc/couinfo

    [root@localhost ~]# cat /proc/cpuinfo 
    processor	: 0  # 逻辑处理器的ID
    vendor_id	: GenuineIntel  
    cpu family	: 6
    model		: 142
    model name	: Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
    stepping	: 10
    microcode	: 0x96
    cpu MHz		: 1799.998
    cache size	: 6144 KB
    physical id	: 0   # 物理封装的处理器ID
    siblings	: 1   # 位于相同物理封装的处理器中的内核数量
    core id		: 0   # 每个核心的ID
    cpu cores	: 1    # 位于相同物理封装的处理器中内核数量
    apicid		: 0
    initial apicid	: 0
    fpu		: yes
    fpu_exception	: yes
    cpuid level	: 22
    wp		: yes
    flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec ibpb ibrs stibp arat spec_ctrl intel_stibp arch_capabilities
    bogomips	: 3599.99
    clflush size	: 64
    cache_alignment	: 64
    address sizes	: 43 bits physical, 48 bits virtual
    power management:
    
4.3:文件和文件夹操作命令:
  • Linux 文件目录结构

    • 根目录:/

    • 家目录:/hmoe

    • 临时目录:/tmp

    • 配置文件:/etc

    • 用户程序目录:/usr

    • 图解:
      在这里插入图片描述

  • 文件操作基本命令

    命令解释
    ls =ls -al查看目录下的文件
    touch新建文件
    mkdir新建文件夹
    cd进入目录
    rm删除文件和目录
    cp复制
    mv移动
    pwd显示路径
    • 循环创建文件夹: mkdir -p xxx[一级目录文件夹]/xxx[二级目录文件夹]/xxx[三级目录文件夹]
    • 删除文件夹:rm -r xxx[文件夹]
    • 强制删除文件夹:rm -rf xxx[文件夹]
4.4:系统用户操作命令:
命令解释
useradd添加用户
adduser添加用户
userdel删除用户
passwd设置密码

1.首先创建一个用户:useradd user_name[新创建用户名](新创建的用户名再/home/user_name目录下)

2.给新创建用户设置密码:passwd user_name(连续输入两次密码)

3.删除该用户信息:userdel user_name[用户名]

drwx------. 2   1001[删除后组变成了1001表示已经找不到]   1001 62 34 20:04 user_name
4.5:防火墙相关设置:
  • 作用:保护服务器安全

  • 设置防火墙规则:

    • 开发80,22端口
  • 关闭防火墙:

  • 安装:yum install firewalled

  • 启动:service firewalld start

  • 重启:service firewalld restart

  • 检查状态:service firewalld status

  • 关闭或禁用防火墙:service firewalld stop/disable

  • 查看防火墙的区域:firewall-cmd --get-zones

    [root@localhost home]# firewall-cmd --get-zones
    block dmz drop external home internal public trusted work  # 这些都是区域
    
  • 查看防火墙默认区域:firewall-cmd --get-default-zone

    [root@localhost home]# firewall-cmd --get-default-zone
    public  # 默认区域
    
  • 查看防火墙每个区域配置的信息:firewall-cmd --list-all-zone

4.6:提权操作sudo和文件传输操作:
  • 提权:sudo

    • 给一个用户增加操作权限:visudo

      96 # %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, 			LOCATE, DRIVERS
      97 
      98 ## Allows people in group wheel to run all commands
      99 %wheel  ALL=(ALL)       ALL
      100 %user_name     ALL=(ALL)       ALL
      101 ## Same thing without a password
      102 # %wheel        ALL=(ALL)       NOPASSWD: ALL
      103 
      104 ## Allows members of the users group to mount and unmount the
      105 ## cdrom as root
      106 # %users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom
      
    • 再第100行添加: %user_name[用户名字]就可以了,再登陆user_name用户,可以进行操作权限。

    • user_name用户,操作的时候,前面一定要加sudo xxx[sudo 后面紧跟执行命令] 。

  • 文件下载

    • wget、curl

    • 通过wget命令进行下载,举个栗子:

      wget http://www.baidu.com
      # 会发现当前文件夹中多出个index.html文件
      -rw-rw-r--. 1 user_name user_name 2381 123 2017 index.html
      
    • 通过cur命令进行下载,举个栗子:

       curl -o baidu.html[下载文件名] http://www.baidu.com
      # 会发现当前文件夹中多出个baidu.html文件
      -rw-rw-r--. 1 user_name user_name 2381 34 20:46 baidu.html
      
  • 文件上传

    • 将本地文件上传到服务器上:
      • 语法:scp txt_name.txt[文件名] root@192.169.66.06:/tmp/[用户名@IP地址:/远程服务器目录/]
      • 登陆192.169.66.06服务器会发现,再tmp目录下, 有txt_name文件。
    • 将从服务器上下载文件到本地:
      • 语法:scp root@192.169.66.06:/tmp/txt_name.txt[用户名@IP地址:/远程服务文件所在目录] ./[下载到本地当前 目录中]
      • 查看本地当前目录,会发现从服务器中的tmp目录中,将txt_name.txt下载到了本地当前目录中。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值