Linux基础-Linux操作系统及常用命令(二)

用户、权限管理命令

常用命令

  1. 查看当前用户:whoami
    1. whoami该命令用户查看当前系统当前账号的用户名。可通过cat /etc/passwd查看系统用户信息。
    2. 由于系统管理员通常需要使用多种身份登录系统,例如通常使用普通用户登录系统,然后再以su命令切换到root身份对传统进行管理。这时候就可以使用whoami来查看当前用户的身份。
  2. 查看登录用户:who 用户名
    1. who命令用于查看当前所有登录系统的用户信息。
    2. 常用选项:

       -m或am I	只显示运行who命令的用户名、登录终端和登录时间
       -q或--count	只显示用户的登录账号和登录用户的数量
       -u	在登录时间后显示该用户最后一次操作到当前的时间间隔
       -u或--heading	显示列标题
      
    3. 输出:

       命令输出:
       	用户名
       	登陆终端
       	登陆时间(登陆来源IP地址)
      
  3. 查看登录用户:w 用户名
    1. w命令也可以查看登录当前系统的用户信息。与who命令相比,w命令的功能更强大,它不但可以显示当前有哪些用户登录到系统,还可以显示这些用户正在进行的操作,并给出更加详细和科学的统计数据。
    2. w命令的格式如下:

       w  [选项]  [用户名]
      
    3. 如果w命令携带用户名,则只显示指定用户的信息,否则显示当前所有登录用户的信息。
    4. 常用选项:

       -h	只显示运行who命令的用户名、登录终端和登录时间
       -l	显示详细信息列表,此为预设值
       -s	使用短列表,不显示用户登录时间、JCPU和PCPU时间
       -u	忽略执行程序的名称,以及该程序的PCPU时间
      
    5. 命令输出:

       命令输出:
       USER			登陆的用户名
       TTY			登陆终端
       FROM		从哪个IP地址登陆
       LOGIN@	登陆时间
       IDLE			用户闲置时间
       JCPU			指的是和该终端连接的所有进程占用时间.这个事件并不包括去后台作业的时间,但却包括当前正在运行的后台作业所占用时间;
       PCPU			是指当前进程所占用的时间
       WHAT		当前正在运行的命令
      
  4. 退出登录账户: exit
    • 如果是图形界面,退出当前终端;
    • 如果是使用ssh远程登录,退出登陆账户;
    • 如果是切换后的登陆用户,退出则返回上一个登陆账号。
  5. 切换用户:su
    1. 可以通过su命令切换用户,su后面可以加“-”。su和su –命令不同之处在于,su -切换到对应的用户时会将当前的工作目录自动转换到切换后的用户主目录:
    2. 注意:如果是ubuntu平台,需要在命令前加“sudo”,如果在某些操作需要管理员才能操作,ubuntu无需切换到root用户即可操作,只需加“sudo”即可。sudo是ubuntu平台下允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,减少了root 用户的登陆和管理时间,提高了安全性

       su	            切换到root用户
       su root	      切换到root用户
       su -	         切换到root用户,同时切换目录到/root
       su - root   	切换到root用户,同时切换目录到/root
       su 普通用户	   切换到普通用户
       su - 普通用户   	切换到普通用户,同时切换普通用户所在的目录
      
  6. 添加、删除组账号:groupadd、groupdel
    • groupadd 新建组账号
    • groupdel 删除组账号
    • cat /etc/group 查看用户组
  7. 修改用户所在组:usermod
    1. 使用方法:usermod -g 用户组 用户名
  8. 添加用户账号:useradd
    1. 在Unix/Linux中添加用户账号可以使用adduser或useradd命令,因为adduser命令是指向useradd命令的一个链接,因此,这两个命令的使用格式完全一样。
    2. useradd命令的使用格式如下:

       useradd  [参数]  新建用户账号
      
    3. 参数

       -d <dirname>    指定用户登录系统时的主目录,如果不使用该参数,系统自动在/home目录下建立与用户名同名目录为主目录
       -m	自动建立目录
       -g	指定组名称
      
    4. 相关说明:
      • Linux每个用户都要有一个主目录,主目录就是第一次登陆系统,用户的默认当前目录(/home/用户);
      • 每一个用户必须有一个主目录,所以用useradd创建用户的时候,一定给用户指定一个主目录;
      • 用户的主目录一般要放到根目录的home目录下,用户的主目录和用户名是相同的;
      • 如果创建用户的时候,不指定组名,那么系统会自动创建一个和用户名一样的组名。
    5. 命令:

       useradd -d /home/abc abc -m 创建abc用户,如果/home/abc目录不存在,就自动创建这个目录,同时用户属于abc组
       useradd -d /home/a a -g test -m 创建一个用户名字叫a,主目录在/home/a,如果主目录不存在,就自动创建主目录,同时用户属于test组
       cat /etc/passwd	查看系统当前用户名
      
  9. 设置用户密码:passwd
    1. 在Unix/Linux中,超级用户可以使用passwd命令为普通用户设置或修改用户口令。用户也可以直接使用该命令来修改自己的口令,而无需在命令后面使用用户名。
  10. 删除用户:userdel

    userdel abc(用户名)	  删除abc用户,但不会自动删除用户的主目录
    userdel -r abc(用户名)  删除用户,同时删除用户的主目录
    
  11. 查询用户登录情况:last
    1. 不管是哪位用户从哪里登录,管理员都可以通过last命令查出,以及是否有人非法登录。
  12. 修改文件权限:chmod
    1. chmod 修改文件权限有两种使用格式:字母法与数字法。
    2. 字母法:chmod u/g/o/a +/-/= rwx 文件

       u	user 表示该文件的所有者
       g	group 表示与该文件的所有者属于同一组( group )者,即用户组
       o	other 表示其他以外的人
       a	all 表示这三者皆是
       +	增加权限
       -	撤销权限
       =	设定权限
       r	read 表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。
       w	write 表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。
       x	excute 表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。
              
       举例:
       chmod o+w file 给文件file的其它用户增加写权限:
       chmod u-r file 给文件file的拥有者减去读的权限:
       chmod g=x file设置文件file的同组用户的权限为可执行,同时去除读、写权限:
      
    3. 数字法:“rwx” 这些权限也可以用数字来代替

       r	读取权限,数字代号为 "4"
       w	写入权限,数字代号为 "2"
       x	执行权限,数字代号为 "1"
       -	不具任何权限,数字代号为 "0"
      
      1. 如执行:chmod u=rwx,g=rx,o=r filename 就等同于:chmod u=7,g=5,o=4 filename
      2. chmod 751 file:
        • 文件所有者:读、写、执行权限
        • 同组用户:读、执行的权限
        • 其它用户:执行的权限
      3. chmod 777 file:所有用户拥有读、写、执行权限
      4. 注意:如果想递归所有目录加上相同权限,需要加上参数“ -R ”。如:chmod 777 test/ -R 递归 test 目录下所有文件加 777 权限。
  13. 修改文件所有者:chown
    1. 使用方法:chown 用户名 文件或目录名
  14. 修改文件所属组:chgrp
    1. 使用方法:chgrp 用户组名 文件或目录名
  15. sudo权限
    1. root把本来只能超级用户执行的命令赋予普通用户执行.
    2. sudo的操作对象是系统命令

       visudo
       #实际修改的是/etc/sudoers文件
              
       # 设置哪些些用户可以使用sudo来操作
       root ALL=(ALL) ALL
       #用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
       %wheel ALL=(ALL) ALL
       #%组名 被管理主机的地址=(可使用身份) 授权命令(绝对路径)
      

案例:

  1. 给当前系统添加一个用户
    1. 打开ubuntu终端->sudo adduser 用户名(hua)->输入当前用户密码->输入新用户密码->再次输入->全名、房间号码…全部回车使用默认->最终输入y确认即可。
    2. 输入ls /home,会看见多了一个hua的用户
    3. 切换到hua目录
      1. su hua->输入密码:->whoami->hua
      2. 退出hua用户:exit
  2. 第二种添加用户的方式
    1. 使用adduser创建用户,用户名不能使用大写字母,那么还有一种创建用户的方法:

       sudo useradd -s /bin/bash -g Hua -d /home/Hua -m Hua
      
      1. -s:后面指出使用什么类型shell(命令解析器),linux下是bash
      2. -g: 后面指出创建的用户所属的组
      3. -d: 后面指出用户的目录
      4. -m: 如果-d指定的目录没有Hua就创建一个Hua。
    2. 此时会输出:useradd:“Hua”组不存在
    3. 那么就要添加用户组
      1. sudo groupadd Hua
    4. 再次执行1,ls /home,查看会多出一个Hua用户
    5. 给Hua用户设置密码:sudo passwd Hua
    6. 两次输入密码
  3. 删除用户:
    1. 方法1:sudo deluser 用户名(Hua)
      1. 执行删除
      2. 还要删除目录:sudo rm -r /home/hua/
    2. 方法2:sudo userdel -r Hua
      1. 不需要删除目录
  4. 查看当前Linux系统下有哪些用户:vi /etc/passwd

系统管理命令

时间相关

  1. 查看当前日历:cal
    1. cal命令用于查看当前日历,-y显示整年日历:
  2. 显示或设置时间:date
    1. 设置时间格式(需要管理员权限):date [MMDDhhmm[[CC]YY][.ss]] +format
    2. CC为年前两位yy为年的后两位,前两位的mm为月,后两位的mm为分钟,dd为天,hh为小时,ss为秒。如: date 010203042016.55
    3. 显示时间格式(date '+%y,%m,%d,%H,%M,%S'

       %Y,%y	年
       %m	月
       %d	日
       %H	时
       %M	分
       %S	秒
      

Linux系统的服务管理

  1. 类似windows的任务管理器,可以看到很多应用服务的情况.
  2. 指的是当前linux操作系统安装了那些进程服务

     systemctl是CentOS7的服务管理工具中主要的工具
     启动服务:systemctl start <服务名>
     关闭服务:systemctl stop <服务名>
     重启服务:systemctl restart <服务名>
     查看服务状态:systemctl status <服务名>
     添加开机启动项:systemctl enable <服务名>
     禁止开机启动项:systemctl disable <服务名>
     查看开机启动项:systemctl list-unit-files
    

进程相关

  1. 查看进程信息:ps
    1. 进程是一个具有一定独立功能的程序,它是操作系统动态执行的基本单元。
    2. 用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。
    3. ps命令可以查看进程的详细状况,常用选项(选项可以不加“-”)如下:

       -a	显示终端上的所有进程,包括其他用户的进程
       -u	显示进程的详细状态
       -x	显示没有控制终端的进程
       -w	显示加宽,以便显示更多的信息
       -r	只显示正在运行的进程
      
    4. ps -ef 显示出的结果:

       1.UID       用户ID
       2.PID        进程ID
       3.PPID      父进程ID
       4.C           CPU占用率
       5.STIME     开始时间
       6.TTY         开始此进程的TTY----终端设备
       7.TIME       此进程运行的总时间
       8.CMD       命令名
      
  2. 动态显示进程:top
    1. top命令用来动态显示运行中的进程。top命令能够在运行后,在指定的时间间隔更新显示信息。可以在使用top命令时加上-d <interval>来指定显示信息更新的时间间隔。
    2. 在top命令执行后,可以按下按键得到对显示的结果进行排序:

       M	根据内存使用量来排序
       P	根据CPU占有率来排序
       T	根据进程运行时间的长短来排序
       U	可以根据后面输入的用户名来筛选进程
       K	可以根据后面输入的PID来杀死进程。
       q	退出
       h	获得帮助
      
    3. 输出分析:

       任务进程
       第一行:
       10:01:23 — 当前系统时间
       126 days, 14:29 — 系统已经运行了126天14小时29分钟(在这期间没有重启过)
       2 users — 当前有2个用户登录系统
       load average: 1.15, 1.42, 1.44 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
              
       第二行:
       Tasks — 任务(进程),系统现在共有183个进程,其中处于运行中的有1个,182个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。
              
       第三行:cpu状态
       6.7% us — 用户空间占用CPU的百分比。
       0.4% sy — 内核空间占用CPU的百分比。
       0.0% ni — 改变过优先级的进程占用CPU的百分比
       92.9% id — 空闲CPU百分比
       0.0% wa — IO等待占用CPU的百分比
       0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
       0.0% si — 软中断(Software Interrupts)占用CPU的百分比
              
       第四行:内存状态
       8306544k total — 物理内存总量(8GB)
       7775876k used — 使用中的内存总量(7.7GB)
       530668k free — 空闲内存总量(530M)
       79236k buffers — 缓存的内存量 (79M)
              
       第五行:swap交换分区
       2031608k total — 交换区总量(2GB)
       2556k used — 使用的交换区总量(2.5M)
       2029052k free — 空闲交换区总量(2GB)
       4231276k cached — 缓冲的交换区总量(4GB)
              
       第五行以下:
       PID — 进程id
       USER — 进程所有者
       PR — 进程优先级
       NI — nice值。负值表示高优先级,正值表示低优先级
       VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
       RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
       SHR — 共享内存大小,单位kb
       S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
       %CPU — 上次更新到现在的CPU时间占用百分比
       %MEM — 进程使用的物理内存百分比
       TIME+ — 进程使用的CPU时间总计,单位1/100秒
       COMMAND — 进程名称(命令名/命令行)
      
  3. 终止进程:kill
    1. kill命令指定进程号的进程,需要配合 ps 使用。
    2. 使用格式:kill [-signal] pid
    3. 信号值从0到15,其中9为绝对终止,可以处理一般信号无法终止的进程。
      1. kill 9133 :9133 为应用程序所对应的进程号
    4. 有些进程不能直接杀死,这时候我们需要加一个参数“ -9 ”,“ -9 ” 代表强制结束: kill -9 9378
  4. 后台程序:&、jobs、fg
    • 用户可以将一个前台执行的程序调入后台执行,方法为:命令 &
    • 如果程序已经在执行,ctrl+z可以将程序调入后台
    • jobs查看后台运行程序
    • fg编号(编号为通过jobs查看的编号),将后台运行程序调出到前台

关机重启:reboot、shutdown、init

reboot	重新启动操作系统
shutdown –r now	重新启动操作系统,shutdown会给别的用户提示
shutdown -h now	立刻关机,其中now相当于时间为0的状态
shutdown -h 20:25	系统在今天的20:25 会关机
shutdown -h +10	系统再过十分钟后自动关机
init 0	关机
init 6 	重启

存储相关

  1. 检测磁盘空间:df
    1. df命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况。

       -a	显示所有文件系统的磁盘使用情况
       -m	以1024字节为单位显示
       -t <fs>	显示各指定文件系统的磁盘空间使用情况
       -T	显示文件系统
       -h 以g为单位显示
      
  2. 检测目录所占磁盘空间:du
    1. du命令用于统计目录或文件所占磁盘空间的大小,该命令的执行结果与df类似,du更侧重于磁盘的使用状况。
    2. du命令的使用格式如下:du [选项] 目录或文件名

       -a	递归显示指定目录中各文件和子目录中文件占用的数据块
       -s	显示指定文件或目录占用的数据块
       -b	以字节为单位显示磁盘占用情况
       -l	计算所有文件大小,对硬链接文件计算多次
      
  3. 查看内存占用:free

     内存占用情况:
     total:内存总数;
     used:已经使用的内存数;
     free:空闲的内存数;
     buffers Buffer:缓存内存数;
     cached Page:缓存内存数。
    

其他命令

  1. 字符界面和图形界面切换
    1. 在redhat平台下,可通过命令进行切换:

       init 3	切换到字符界面
       init 5	切换到图形界面
      
    2. 通过快捷键切换(适用大部分平台):

       Ctrl + Alt + F2	切换到字符界面
       Ctrl + Alt + F7	切换到图形界面
      
  2. 格式化:mkfs
    1. mkfs命令相当于DOS/Windows系统中的格式化命令,用于创建指定的文件系统。
    2. 使用格式如下:mkfs [选项] 设备文件名 [blocks]
    3. 选项:

       -V	详细显示模式
       -t <.fs>	指定文件系统类型,默认值为 ext2
       -c	在创建文件系统的同时,进行磁盘坏块检查
       blocks	文件系统块的大小
      

网络管理

  1. 网络中的基本概念
    1. IP地址:在网络通信中主机的标识符(好比手机号码)
    2. mac地址:主机的物理网卡的唯一标识符(好比身份证号码)
    3. 子网掩码:用于区分主机的IP地址中的网络地址和主机地址,并由此确定该主机的IP地址的网段
    4. 网关:就是一个网络中的主机连接到另一个网络的主机的关口
    5. DNS:域名解析服务器,把域名解析成对应的IP地址
  2. ifcfg-eth解释

     文件 /etc/sysconfig/network-scripts/ifcfg-eth0在/etc/sysconfig/network-script在这个目录下面,存放的是网络接口(网卡)的脚本文件(控制文件),ifcfg-eth0是默认的第一个网络接口,如果机器中有多网络接口,那么名字就将依此类推ifcfg-eth1,ifcfg-eth2,ifcfg-eth3......(这里面的文件是相当重要的,涉及到网络能否正常工作)。
     TYPE=Ethernet #网卡类型
     DEVICE=eth0 #网卡接口名称
     ONBOOT=yes #系统启动时是否自动加载
     BOOTPROTO=static #启用地址协议 --static:静态协议 --bootp协议 --dhcp协议
     IPADDR=192.168.1.11 #网卡IP地址
     NETMASK=255.255.255.0 #网卡网络地址
     GATEWAY=192.168.1.1 #网卡网关地址
     DNS1=8.8.8.8 #网卡DNS地址
     BROADCAST=192.168.1.255 #网卡广播地址 
            
     查看ip:
     ip addr
    
  3. 防火墙

     centos7的防火墙程序服务名为:firewalld
     防火墙配置命令:firewall-cmd
     防火墙帮助:
     fireweall-cmd --help
        
     查看防火墙状态:
     firewall-cmd --state
        
     查看端口情况(返回no代表被关闭了)
     firewall-cmd --query-port=8080/tcp
        
     拿到zone名称(一般是public)
     firewall-cmd --get-active-zones
        
     查看所有打开的端口:
     firewall-cmd --zone=public --list-ports
        
     开启端口:
     firewall-cmd --zone=public --add-port=端口号/tcp --permanent(--permanent参数为永久生效,不加则重启后失效)
        
     更新防火墙规则:
     firewall-cmd --reload
        
     删除端口:
     firewall-cmd --zone=public --remove-port=端口号/tcp --permanent
    
  4. 查看或配置网卡信息:ifconfig
    1. 如果我们只是敲:ifconfig,它会显示所有网卡的信息:

       eth0	  网络接口名称
       Link encap	链路封装协议
       Hwaddr	网络接口的MAC地址
       Inet addr	IP地址
       Bcast	广播地址
       Mask	子网掩码
       UP	网络接口状态标识,UP已经启用,DOWN已经停用
       BROADCAST	广播标识,标识网络接口是否支持广播
       RUNNING		传输标识,标识网络接口是否已经开始传输分组数据
       MULTICAST	多播标识,标识网络接口是否支持多播
       MTU,Metric	MTU:最大传输单位,单位:字节。Metric:度量值,用于RIP建立网络路由用
       RX bytes	接收数据字节统计
       TX bytes	发送数据字节统计
      
    2. 我们可以通过ifconfig配置网络参数:
      • 只有root才能用ifconfig配置参数,其他用户只能查看网络配置
      • ifconfig 网络接口名称 [地址协议类型] [address] [参数]
      • 地址协议类型如:inet(IPv4),inet6(IPv6)
      • 如:ifconfig eth0 inet 192.168.10.254 netmask 255.255.255.0 up
    3. 常用参数:

       -a	显示所有网络接口状态
       inet  [IP地址]	设置IP地址
       netmask [子网掩码]	设置子网掩码
       up	启用网络接口
       down	关闭网络接口
      
    4. ifconfig配置的网络参数在内存中,计算机重新启动之后就失效了,如果需要持久有效就需要修改网络接口的配置文件:
      1. redhat修改/etc/sysconfig/network-scripts/ifcfg-eth0文件

         IPADDR=IP地址
         GATEWAY=默认网关
        
      2. ubuntu修改/etc/NetworkManager/system-connections/Wired connection 1文件

         [ipv4]
         method=manual
         addresses1=IP地址;24;默认网关;
        
    5. 查看当前系统的IP地址:ip addr
  5. 测试远程主机连通性:ping
    1. ping通过ICMP协议向远程主机发送ECHO_REQUEST请求,期望主机回复ECHO_REPLY消息
    2. 通过ping命令可以检查是否与远程主机建立了TCP/IP连接
    3. 使用方法:ping [参数] 远程主机IP地址
    4. 参数:

       -a	每次相应时都发出声音警示
       -A	表示以实际往返相应时间为间隔,连续发送消息
       -f	连续不断发送消息,不管是否收到相应
       -n	只显示主机IP,不需要把IP解释成主机名
       -c	发送指定次数数据报信息后停止,ping -c 5 192.168.10.254
       -i	每次发送消息时间间隔,默认一秒,ping -i 2 192.168.10.254
       -s	分组数据大小,默认56字节
       -w	以秒为单位的超时值,一旦超时,就立即停止
      
  6. 网络路由设置:route
    1. route可以增加,修改,显示路由信息,使用格式如下:

       route [-v] [-A family] add default [gw 默认网关地址] [[dev interface]]
      
    2. 参数:

       add	增加路由信息
       del	删除路由信息
       -v	显示路由信息
       -A	指定网络协议inet(IPv4),inet6(IPv6)
       gw	指定默认网关地址
       dev	指定网络接口
      
    3. 示例:route add default gw 192.168.1.1 dev eth0

  7. 监控网络状态:netstat
    1. netstat命令监控网络状态,包括接口设置,IP路由,各种网络协议的统计,netstat输出信息说明如下:

       Proto	协议,如:tcp,udp
       Recv-Q	尚未读取的数据字节数
       Send-Q		尚未发送的数据字节数
       Local_address		本地主机地址与端口号
       Foreign_address	远程主机与端口号
       State	网络连接状态
       RefCnt	引用计数,表示加接到相应套接字的进程数量
       Flags	标志字段
       Type		套接字类型,如:(SOCK_DGRAM, SOCK_STREAM,SOCK_RAW)
       State	套接字状态
       Path	套接字路径名
      
    2. netstat常用命令参数:

       -a	列出所有端口
       -i	显示网络接口列表
       -at	所有tcp端口
       -au	所有udp端口
       -l	所有监听端口
       -lt	tcp监听端口
       -lu	指定网络接口
       -s	显示所有协议统计信息
       -r	当前路由状态
       -p	输出中显示 PID 和进程名称,可以与其它开关一起使用,如:-pt
      
  8. 查看域名对应的ip:nslookup
    1. 举例:nslookup www.baidu.com

ftp服务器的搭建

  1. 所谓的服务器搭建就是一个软件的使用
  2. Linux下能够实现ftp服务器的软件有很多,目前使用:vsftpd
  3. 要做的工作:
    1. 服务器端:
      1. 修改配置文件:
        1. 限制哪些用户可以登录
        2. 登录成功后能够干那些事情:只能下载、只能上传、即能上传也能下载。
      2. 重启服务
        1. 重启服务配置才能够生效
    2. 客户端
      1. 实名用户登录
      2. 匿名用户登录
      3. 使用第三方软件:lftp客户端访问ftp服务器
  4. ftp服务器是干什么?
    1. 只有一个功能:负责文件的上传、下载。
    2. A放把文件上传到ftp服务器,B通过ftp客户端下载。
  5. ubuntu系统开root用户:(必须开这个,否则无法安装vsftpd)
    1. 输入:sudo passwd root
    2. 设置密码
    3. 使用root权限: 只需要在终端上输入:su 回车键然后输入设置的新密码,就可以使用了\

使用

  1. 服务端搭建
    1. 在另一台Linux虚拟机上搭建服务器
    2. 切换到一个用户下(比如hua),安装vsftpd: sudo apt-get install vsftpd
    3. 修改配置文件
      1. cd /etc,ls查看可以看到有个vsftpd.conf
      2. 使用gedit编辑打开: sudo gedit vsftpd.conf
      3. vsftpd.conf部分内容分析:

         listen=NO 是否监听 ----设置为YES
         anonymous_enable=NO 是否允许匿名用户登录   ----设置为YES
         local_enable=YES 是否允许本地用户登录     -----默认
         write_enable=YES 实名用户拥有写的权限(实名用户能够上传文件)----删除#
         local_umask=022                 ----删除#
         anon_upload_enable=YES  匿名用户可以向服务器上传数据  ----删除#
         anon_mkdir_write_enable=YES 匿名用户可以在ftp服务器上新建目录  ----删除#
        
    4. 重启服务器:sudo service vsftpd restart
  2. 客户端登录
    1. 实名用户登录(也要安装vsftpd)
      1. 连接:

         ftp 127.0.0.1(自己充当服务器、自己充当客户端)
         ftp 192.168.36.xxx(对方IP)
        
      2. ftp + ip(服务器的)
      3. 输入用户名、密码
      4. 文件的上传下载
        1. 下载:get 非目录
        2. 上传:put 非目录
    2. 匿名用户登录
      1. 连接:ftp + ip (跟实名一样)
      2. 用户名输入:anonymous 固定的
      3. 密码:直接回车即可
  3. 关闭连接
    1. quit/exit/bye

远程操作

SSH介绍

  1. SSH为Secure Shell的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。
  2. SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。常用于远程登录,以及用户之间进行资料拷贝
  3. 利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是 UNIX 系统上的一个程序,后来又迅速扩展到其他操作平台。SSH 在正确使用时可弥补网络中的漏洞。SSH 客户端适用于多种平台。几乎所有 UNIX 平台—包括 HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
  4. 使用SSH服务,需要安装相应的服务器和客户端。
    1. 客户端和服务器的关系:如果,A机器想被B机器远程控制,那么,A机器需要安装SSH服务器,B机器需要安装SSH客户端。

远程登录

  1. Linux平台相互远程
    1. 操作命令:ssh -l username hostip

       -l	选项, 是字母“l”,不是数字“1”
       username	被远程登录的用户名
       hostip	被远程登录的ip地址
      
      1. 注意:远程登录的两台机器必须要能ping通
    2. 首先,查看需要被远程机器的ip:
      1. Dos下:输入ipconfig查看
      2. unix/linux下; 输入ifconfig查看
    3. 输入远程登录命令,比如:sudo ssh -l edu 10.221.20.16
      1. 可以不用sudo。
      2. 另一台机器的用户名为edu、IP地址为 10.221.20.16
    4. 接着,提示输入登陆密码:
      1. 输入你要连接的那台机器的密码。
    5. 登录成功
  2. Windows远程登录Linux
    1. 如果想在 Windows 平台下远程登录 Linux,这时候,Windows 需要安装 安装相应软件包。这里介绍是Xmanager。
    2. Xmanager是一款小巧、便捷的浏览远端X窗口系统的工具。它包含Xshell、Xftp等软件:
      • Xshell:是一个Windows平台下的SSH、TELNET和RLOGIN终端软件。它使得用户能轻松和安全地在Windows平台上访问Unix/Linux 主机。
      • Xftp:是一个应用于 Windows 平台的 FTP 和 SFTP 文件传输程序。Xftp能安全地在Unix/Linux 和 Windows 平台之间传输文件。
    3. 配置Xshell,远程登录:
      1. 打开Xshell
      2. 文件->新建
      3. 输入名称,比如:ubuntu,选择协议为ssh,host(主机):输入你要连接机器的IP地址。端口号默认。
      4. 选择确定即可
      5. 在所有会话中找到你刚才建立的ubuntu,双击连接
      6. 输入你要连接主机的用户名
      7. 输入登录密码
      8. 远程等成功
    4. 注意:
      1. Linux默认采用的编码格式是UTF-8,Windows默认采用的编码格式是ANSI(GB2312、GBK),所以需要设置一下相应编码:
      2. windows要把防火墙关闭。
      3. linux的虚拟机网络连接方式要选用“桥接模式”
  3. MacOS登录
    1. 打开终端,输入:用户名@ip地址,然后输入密码即可;root@172.16.166.3
Table of Contents