linux 学习2 (基于ubuntu)

一.远程管理命令

  • 关机/重启
    •  shutdown
    •   reboot(重启)
    •   halt(直接关机)
  • 查看或配置网卡信息
    • ifconfig
    • ping
  • 远程登录和复制文件
    • ssh
    • ping

  1. 关机/重启

序号 命令 对应英文 关机/重启
1 shutdown 选项  时间 shutdown 关机/重启

    1.1 shutdown可以进行关机/重启

选项 含义
-r 重启

      提示:

      •  参数 表示多长使劲后执行命令
      • 袁冲维护服务器时候,最好不好关闭服务器,而应该重启系统  

      

常见命令实例:
  重启系统: shutdown -r now
  关闭系统: shutdown now
  指定时间关闭系统: shutdown 21:09
  指定间隔一定时间关机: shutdown +10(十分钟后关机)
  取消关机计划:shutdown -c
  
  
其他方法:
    关机:halt,init 0  
    重启:reboot.init 6

注意:在执行这些命令时候最好先执行一下:sync(同步内存数据到硬盘,防止数据丢失)

   2. 查看/配置网卡信息

序号 命令 对应英文 作用
1 ifconfig configure a network interface 查看/配置计算机当前网卡配置信息
2 ip add show   看/配置计算机当前网卡配置信息
3 ping ip地址 ping 检测目标ip地址的连接是否正常

    2.1  网卡和ip地址

      网卡

        •   网卡是专门负责通讯的硬件设备
        •   ip地址是设置在网卡上的地址信息

       ip地址 

        •  每台电脑都有ip地址,是保证计算机通讯的保证
        •    ip是唯一的  

    2.2  ifconfig  

ifconfig可以查看/配置计算机当前的网卡配置信息
  1. 查看网卡的配置信息
    ifconfig
  2. 查看网卡对应的ip地址
    ifconfig | grep intet

  注意:一台计算机中可能给有一个或者多个虚拟网卡,

    在linux中物理网卡通常以ensxx表示

    127.0.0.1被成为本地回旋地址,一般用来测试本机网卡是否正常

  

      2.3    ping 

1. 检测目标主机连接是否正常   ping ip地址 2. 检测本地网卡工作是否正常
提示:
  •   ping一般用于检测当前计算机与目标计算机的网络是否通畅,时间的数字越大,速度越慢
  • ping的工作原理与潜水艇的声呐相似.ping这个命令就是取自声呐的声音
  •   网络管理员之间也常将ping当做动词---ping一下计算机xx,看他是否开着

  原理:网络上的机器都有唯一的ip地址,我们给目标ip地址发送一个数据包,对方就要返回一个数据包,

根据返回数据包以及时间,我们可以确定目标主机的存在.

  要停止这个ping这个动作,快捷命令为:ctrl+c

  

    2.4操纵网卡命令(重启和启动,关闭,启动命令)

systemctl restart network
systemctl start network
systemctl stop network

   2.5启用和停止网命令

ifup 网卡名
例:
    ifup ens33  # 启用网卡 
    ifdown ens33 # 停止网卡

  3. 远程登录和复制文件

序号 命令 对应英文 作用
1 ssh用户名@ip secure shell 关闭/重新启动 
2 scp用户名@ip:万建明或路径 用户名@ip:文件名或者路径 secure copy 远程复制文件

    3.1 ssh基础(重点)

      在linux中,ssh是非常常用的工具,通过ssh客户端我们可以连接到运行了的远程服务器上

      ssh客户端是一种使用secure shell (ssh)协议连接远程计算机的软件程序  

      ssh是目前比较可靠的,专为远程登录会话和其他网络服务 提供安全性的写协议
      1.  利用ssh协议可以有效防止远程管理过程中的信息泄露      
      2.   通过ssh协议可以对所有传输数据进行加密,也能够防止dns和 ip欺骗

       ssh的另一项有点是传输数据是经过压缩的,可以提高传输速率

   

 

             

     (1) 域名和端口号

      域名:

      •  由一串用小数点分隔的名字组成: www.baidu.com
      •    ip地址的别名,方便记忆

      端口号:

      •    ip地址:通过ip地址找到网络上的计算机
      •    端口号:通过端口号可以找到计算机上运行的程序
        •  ssh服务器默认端口号是22,如果是默认端口号,在连接的时候,可以省略 
序号 服务 端口号
1 ssh服务器 22
2 web服务器 80
3 HTTPS 443
4 FTP服务器 21

    (2)ssh客户端的简单使用  

  

ssh [-p port]user@remote
  •   user是远程计算机上的用户名,如果不指定的话默认为当前用户
  •   remote是远程计算机的地址,可以是 ip/域名 ,或者而是后面会提到的别名
  • port是sshServer监听的端口,如果不指定,就为默认值22

    提示:

    •  使用exit退出当前登录用户
    •  logout(在运行级别是图形化界面是无效的)

    注意:

    • ssh这个终端命令只能在linux或者unix系统下使用
    • 如果在windows系统中,可以安装PuTTY 或者安装 Xshell使用           

      

    (3)ssh客户端安装(两个软件2选1)

      http://www.xshellcn.com/%20下载安装

      https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

    3.2 scp(掌握)

  • scp就是secure copy,是linux下用来进行远程拷贝的命令
  • 他的地址格式与ssh基本相同,需要注意的是,在指定端口时用的是大写的-P而不是小写的

  实例:

    •  把本地目录下的01.py文件复制到远程家目录下的 Desktop/01.py
      •   scp -P port 01.py user@remote: Desktop/01.py
      • 后面的路径如果不是绝对路经,则以用户的家目录作为参照
    • 把远程家目录下的Desktop/01.py文件复制到本地当前目录下的 01.py
      •   scp -P port user@remote:Desktop/01.py 01.py
    • 加上-r选项可以复制文件夹 
      • 把当前目录下的Desktop demo复制到远程计算机家目录下的Desktop
      • scp -P port -r demo user@remote:Desktop 
    •  
      • 把远程计算机家目录下的Desktop复制到当前目录下的Desktop
      • scp -P port -r user@remote:Desktop demo
选项 含义
-r

若给出的源文件,则scp

将递归复制该目录下所有文件和子目录,目标文件必须为一个目录名

-p 若远程服务器的端口不是22,,则需要大写字母-P选定指定端口

                      

   注意:

  • scp这个终端命令只能在linux或者unix系统下使用
  • 如果在windows系统中,可以安装PuTTY 使用pscp命令行工具或者安装FileZilla使用FTP进行文件传输   
    •  下载
    • filezlla的操作基本上是靠拖拽

   3.3 ssh 高级(了解,使用频率高) 

    •  免密码登录

    • 配置别名      

      • 有关ssh配置信息都保存在用户家目录下的..ssh目录下

 

1. 免密码登录
  步骤
  •   配置公匙
    • ssh -keygen 即生成 ssh钥匙 然后一路回车即可
  • 上传公匙到服务器  
    • ssh-copy-id -p port user@remote 可以额昂远程服务器记住我们的公匙

  

    非堆成加密算法:

    •   使用公钥加密的数据,必须使用私钥解密
    •       使用私钥加密的数据,必须使用公钥解密      
2. 配置别名(针对使用频率较高的服务器)
  常规的每一次都需要输入ssh -p port user@remote等一串 ,配置别名可以让我们省去许多麻烦
  步骤:
  • 在.ssh文件夹创建一个config文件 ~/.ssh/config
  • 在config文件中加入以下内容
    • Host name(要取得名字)
      •  HostName ip地址 
      • User oldname(原来服务器的名字)
      •  Port 22      

  配置结束后就可以直接使用:ssh HostName登录了.

  3.4lrzsz软件包

yum install lrzsz
rz   # 上传
sz 文件名   # 下载指定文件

二. 用户权限相关命令(使用频率不高,理解为主)

  1.1 基本概念

    

 用户是linux系统工作中重要的一环,用户管理包括用户管理与组管理

 在linux中,不管是从本机还是远程登录系统,每个系统都必须有一个账号,并且对于不同系统中的不同资源拥有不同的使用权限 

 在linux中,可以指定每一个用户针对不同文件或者目录又有不同的权限  

rwx作用到文件
  1) [ r ]代表可读(read): 可以读取,查看
  2) [ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是
  对该文件所在的目录有写权限,才能删除该文件.
  3) [ x ]代表可执行(execute):可以被执行
rwx作用到目录
  1) [ r ]代表可读(read): 可以读取, ls查看目录内容
  2) [ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
  3) [ x ]代表可执行(execute):可以进入该目录

序号 权限 英文 代号
1 r 4
2 w 2
3 执行 x 1

  1.2 组

    为了方便管理,提出组的概念,同一组的具有相同权限

    

    tip:在实际开发中先为组设置好权限,然后把不同用户添加到相应的组当中

  1.3 ls -l扩展

    ls  -l可以查看文件夹下的详细信息,从左到右一次是

  • 权限 第一个字母如果是d为文件夹,如果是-则是文件
  • 硬连接数 通俗的讲,就是有多少种方式可以访问当前文件夹
  • 拥有者
  • 组,在linux中,会出现很多组和用户名相同的情况
  • 大小
  • 时间
  • 名称

  

  

  

   1.4 chmod 简单使用 (重要)

 

  • chmod可以修改用户/组 对目录/文件的权限
  • 命令格式
    •   chmod +/- r/w/x 文件名/目录名

  1.5 超级用户

    1.超级用户介绍

  • linux系统中的root账号通常用于系统维护和管理,对操作系统的所有资源具有所有访问权限
  • 在大多数版本linux中,都不推荐直接使用root账号登录
  • 在linux安装的过程中,系统会自动创建一个用户账号,而这个默认的用户就是'标准用户'===> stander user

  sudo

  • su是substitute user 的缩写,表示使用另一个用户的身份
  • sudo命令用来以其他身份来执行命令,预设的身份为root
  • 用户使用sudo时,必须先输入密码,之后会有五分钟的有效期(超过时间需要重输入密码)
    •   若未经授权用户企图使用sudo,则系统会发出警告邮件给管理员

    2.sudo的用法

1 使用普通用户登录
2 查看/root目录,提示无权限
3 所以我们要使用sudo命令来查看
4 但是提示此用户不在/etc/sudoers文件里面
5 我们需要使用visudo命令将liulaoshi加入到/etc/sudoers文件中,注意最好不要使用vim命令直接编辑此文件(vi有语法错误提示)
6 将用户加入到文件中后,我们就可以用liulaoshi用户使用sudo命令查看/root目录
7.就是说这样我们的普通用户也就具有的了超级用户的权限了

  2.1 组管理 终端命令

  提示: 添加组/删除组都需要通过sudo命令执行

序号 命令 作用
1 groupadd 组名 添加组
2 groupdel 组名 删除组
3 cat  /etc/group 确认组信息
4 chgrp -R   组名  文件/目录名  修改 文件/目录所属组

  提示:

    组信息保存在 /etc/group中

    /etc 目录朱南门保存系统信息的目录

  3 用户管理终端命令

      提示:创建用户/删除用户/修改其他用户密码的终端命令都需要通过sudo执行

   3.1 创建用户/设置密码/删除用户

序号 命令 作用 说明
1 useradd -m -g 组名 新建用户名 添加新用户

-m 自动建立用户家目录

-g 指定用户所在组,否则会建立和用户名一样的组

-d  指定文文件夹

2

passwd 用户名 设置用户密码 如果是普通用户,直接使用passwd可以修改账密码
3  userdel 用户名  删除用户  -r 会自动删除用户的家目录
4  cat  /etc/passwd |grep 用户名  确认用户信息  新建用户后,用户信息会保存在 /etc/passwd文件中

      提示:

      •   创建用户忘记加-m选项,最简单的方法是直接删除用户,并且再次创建用户
      •       创建用户的时候,不指定组名,会自动创建一个和用户名一样的组
      •       用户信息会保存在 /etc/passwd文件中

  3.2 查看用户信息

序号 命令 作用
1 id()

查看用户的UID(保存在/etc/passwd)和GID(保存在 /etc/group)

2 who 查看当前所有登录的用户名
3 whoami 查看当前登录用户的用户名

    

     passwd 文件

    /etc/passwd 文件是存放用户信息,由6个分号组成的7个信息

  •   用户名
  • 密码
  • UID
  • GID
  • 用户名或者本地账号(没有就使用用户名)
  • 家目录
  • 登录使用的shell,就是登录之后,使用的终端命令,ubuntu默认是使用shell(可以输入命令的终端窗口)

    usermod

  

  •  usermod可以设置用户的主组/附加组 和登录shell
  •  主组:通常在新建用户的时候指定,在/etc/passwd的第四列GID对应的组
  • 附加组:在etc/group    

   提示:主组设置完后成需要重新登录才能生效

    1.  修改用户主组(passwd的GID)   
      1.   usermod -g 组 用户名   
    2.  修改用户的附加组
      1.   usermod -G 组 用户名        
    3.    修改用户的登录shell 
      1.   usermod -s  /bin/bash       

    注意:默认使用ueradd 添加用户没有权限的使用sudo命令

      以root身份执行的.可以使用以下命令,将用户添加到sudo附加组中

      sudo -G sudo 的用户名

  which (重要)

  • /etc/passwd 用于保存用户信息的文件
  • /usr/bin/passwd 用于修改用户密码的程序

  which命令可以查看执行命令所在位置

  

which ls
#输出
  /bin/ls
which useradd
#输出
/user/sbin/useradd

  bin和sbin

    •  在linux中,绝大多数可执行文件都是保存在 /bin,/sbin,/usrbin,/usr/sbin
    • /bin(binary)是二进制执行文件的目录,主要用于具体的应用
    • /sbin(system bindary) 是系统管理员中专用方二进制代码存放目录,主要用于系统管理
    • /usr/bin(user commands for applications)后期安装的一些软件
    • /usr/sbin(super user commands for appilications) 超级用户的一些管理权限
    •       

  提示:cd 这个命令是内置在系统内核中的,没有文件保存,因此用which无法找到cd'命令的位置

  3.3 切换用户

序号 命令 作用 说明
1 su -  用户名 切换用户,并切换用户目录 可以切换到用户家目录,否则保持位置不变
2 exit 退出当前登录用户  
  •   su 后面不接用户名,直接切换到root用户,不推荐使用,,不安全
  •       exit流程(退出当前用户,退回到上一个用户,知道没有登录用户就退出shell)

  3.3 修改文件的权限

序号 命令 作用
1 chown 修改拥有者
2 chgrp 修改组
3 chmod 修改权限
  1. 修改文件 |目录的拥有者
    1.  chown 用户名 | 文件名 
  2. 递归修改文件 | 目录的组
    1. chgrp -R 组名 文件名 |目录名 
  3. 递归修改文件权限
    1. chmod -R 755 文件名 |目录名       

  chown root.root liulaoshi.py # 修改文件所属主和所属组
  chown root:root liulaoshi.py # 修改文件所属主和所属组,这两个命令一样

     

  

  常见实例:

chmod u+r /opt/liulaoshi.py  # 给用户添加只读的权限
chmod u+w /opt/liulaoshi.py  # 给用户添加可写的权限
chmod u+x /opt/liulaoshi.py  # 给用户添加可执行文件的权限

chmod g+r /opt/liulaoshi.py
chmod g+w /opt/liulaoshi.py
chmod g+x /opt/liulaoshi.py

chmod o+r /opt/liulaoshi.py
chmod o+w /opt/liulaoshi.py
chmod o+x /opt/liulaoshi.py


chmod u-r /opt/liulaoshi.py  # 给用户删除只读的权限
chmod u-w /opt/liulaoshi.py  # 给用户删除可写的权限
chmod u-x /opt/liulaoshi.py  # 给用户删除可执行文件的权限

chmod g-r /opt/liulaoshi.py
chmod g-w /opt/liulaoshi.py
chmod g-x /opt/liulaoshi.py

chmod o-r /opt/liulaoshi.py
chmod o-w /opt/liulaoshi.py
chmod o-x /opt/liulaoshi.py
View Code

  chmod设置权限时候,可以简单的使用三个数字分别对应拥有者,组,其他用户权限

直接修改文件目录的 读,写,执行权限,但是不能精确到 拥有者,组,其他
chmod +/- ,r/w/x 文件名/目录名

           

          

  
四. 系统信息相关命令

  

学习通过远程登录查看系统信息以及运行情况
  • 时间和日期
    •   date
    • cal
  •  磁盘和目录空间
    •   df
    •   du
  •  进程信息
    •   ps
    • top      

  4.1 时间和日期

序号 命令 作用
1 date 查看系统时间
2 cal  calendar 查看日历 -y选项可以查看当前一年的日历
date指令-显示当前日期 
1) date (功能描述:显示当前时间) 2) date +%Y (功能描述:显示当前年份) 3) date +%m (功能描述:显示当前月份) 4) date +%d (功能描述:显示当前是哪一天) 5) date "+%Y-%m-%d %H:%M:%S"(功能描述:显示年月日时分秒)

date指令-设置日期
基本语法
date -s 字符串时间
应用实例
案例1: 设置系统当前时间 , 比如设置成 2020-11-11 11:22:22


cal指令
查看日历指令
基本语法
  cal -y 显示一年的
  cal 2010 显示2010所有的

  4.2 查看磁盘信息

序号 命令 作用  
1 df -h disk free 显示磁盘剩余空间 
2 du -h[目录名] disk usage 显示目录下文件大小
    •   选项
    • 参数 含义
      -h 以人性化方式显示文件大小
          

  4.3 进程信息

含义:正在执行的程序

1) 在LINUX中,每个执行的程序(代码) 都称为一个进程。每一个进程都分配一
个ID号。
2) 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例
如www服务器。
3) 每个进程都可能以两种方式存在的。 前台与后台,所谓前台进程就是用户目
前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法
看到的进程,通常使用后台方式执行。
4) 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到
关机才才结束。


ps -ef是以全格式显示当前所有的进程
-e 显示所有进程。 -f 全格式。
ps -ef|grep xxx

序号 命令 作用
1 ps  aux process status 查看进程的详细状态
2 top 动态显示运行中的程序并且排序((通过小写字母q退出)
3 kill  终止指定代号的进程,-9表示强行终止
    •  选项
选项 含义
a 显示终端上所有进程,包括其他用户的进程
u 显示进程的详细状态
x 显示没有控制终端的进程

    提示:使用kill命令时,最好终止由当前用户开启的进程,而不要终止以root身份开启的进程,否则可能导致系统奔溃  

    4.3.2 查看进程树pstree

基本语法:
  pstree [选项] ,可以更加直观的来看进程信息
  常用选项:
    -p :显示进程的PID
    -u :显示进程的所属用户
应用实例:
案例1:请你树状的形式显示进程的pid
案例2: 请你树状的形式进程的用户id

五. 其他命令

  

  • 查找文件
    •   find
  • 软连接
    •   ln
  • 打包和压缩
    •   tar
  • 软件安装
    •   apt-get      

  5.1 查找文件

    •   find  可以找到指定目录的文件
序号 命令 作用
1 find [路径] -name ".py" 查找指定目录下扩展名是.py的文件,包含子目录
2 find [路径] -user 用户名  查找属于指定用户的文件
3 find -size +20 按指定大小搜索文件
4 find -type d -name ‘’haha 查找指定类型的文件
      •  如果没有写路径,表示当前目录下
      •      之前学习的通配符,仍然可用
符号 代表类型
d 文件夹
f 文件
l 软连接
实例:
  find -name '1*' #1开头的文件

  find Desktop/ -name '.py' #以py为扩展名的文件

  5.2 软连接

序号 命令 作用
1 ln -s 指向的路径 连接路径和名称 建立文件的软连接,用通俗的话讲,类似于windows的快捷方式

    注意:  

    •   没有-s选项是一个硬连接  
      •   两个占用相同大小的磁盘空间,工作中几乎不会建立硬连接
    • 源文件要使用绝对路径,不要使用相对路径,这样软连接移动后仍然能正常使用 
    •       删除软连接: rm -rf 连接名称
    •      安装完软件之后要为软件创建一个软件接到/etc/bin/目录下,这样就可以直接在命令行直接执行软件(因为/etc/bin已经在环境变量中)
    •   如果不设置软连接就配置环境变量:

        1.修改系统环境变量文件

          vim /etc/profile/

        添加内容:新安装软件的文件目录到bin

     

  5.3 硬连接

  

使用ln命令时候,没有加-s选项,创建出来的二就是一个硬连接
  硬链接:当文件删除时候,硬连接仍然可以访问文件

   

   注意:

    •  在linux中,只有文件 硬连接数==0才会被删除
    •    在使用 ls -l可查看一个文件的硬链接数量
    •    在日常的工作中,几乎不会建立文件的硬连接        

  5.5 打包压缩

    

  • 打包压缩常用
  • 不同系统的打包压缩是不一样的,扩展名不一样
    •   wnidows 常用rar
    • mac常用zip
    • Linux常用tar.gz

  5.5.1 打包/解包

    •  tar是linux常用的和工具,此命令可以把一系列文件打包到一个打的文件中,也可以,把一个打包大文件恢复成一系列文件 
#打包文件
tar -cvf 打包文件.tar 被打包的文件/路径...

#解包文件
tar -xvf 打包文件.tar
    •  选项说明
选项 含义
c 生成档案文件,创建打包文件
x 解开档案文件
v 列出归档的详细过程,显示进度
f 指定档案文件名称,f后面一定是.tar文件,所有必须放选项后面
      •    f必须放最后,其他随意  
    •  多个文件打包中间以空格键隔开 

    

  5.5.2 压缩/解压缩 

    5.5.2.1 gzip

      tar和gzip的命令结合可以实现文件的打包和压缩

      • tar只负责打包,不负责压缩
      • gzip压缩tar打包后的文件,文件扩展名一般用 xxx.tar.gz 
    •   xxx.tar.gz是linux最常用的压缩格式
    • tar命令有一个选项-z可以直接调用gzip,从而方便压缩
    • 命令格式如下

    

#压缩
tar -zcvf 打包文件.tar.gz 被压缩文件目录

#解压
tar -zxvf 打包文件.tar.gz

#解压到指定路径
tar -zxvf 打包文件.tar.gz -C 路径  
参数 含义
-C 解压到指定路径

    5.5.2.2 bzip2

      tar和bzip2的命令结合可以实现文件的打包和压缩 

      • tar只负责打包,不负责压缩
      •  bzip2压缩tar打包后的文件,器文件扩展名一般用 xxx.tar.bz2 

      在tar命令有一个选项-j可以调用bzip2,从而可以方便实现压手和解压缩的功能

      命令格式如下

#压缩
tar -jcvf 打包文件.tar.bz2 被压缩文件目录

#解压
tar -jxvf 打包文件.tar.bz2

#解压到指定路径
tar -jxvf 打包文件.tar.bz2 -c 路径  

  5.6 locate

  locaate指令可以快速定位文件路径。 locate指令利用事先建立的系统中所有文件名称及路径
的locate数据库实现快速定位给定的文件。 Locate指令无需遍历整个文件系统,查询速度较快。
为了保证查询结果的准确度,管理员必须定期更新locate时刻。
• 基本语法
locate 搜索文件
• 特别说明
由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate
数据库。
----->locate 1.txt

  6. 软件安装

   6.1 安装   

  • apt是 advance packaging Toll的简写.是inux下的一种安装包管理工具
  • 可以在终端中方柏霓的使用该命令 安装/卸载/升级

  #安装过软件

  sudo apt install 软件包

  #卸载软件

  sudo apt remove 软件名

  

  #更新已安装的包

  sudo .apt upgrade



  实例:
  #小火车提示:
   sudo apt insatall sl

  #htop当期进程排名软件
  sudo apt insatall htop
  

  提示:安装命令不用记,没有安装,系统会提示你安装


  

   6.2 配置软件源

  • 如果希望更加快速的ubuntu中安装软件,可以通过设置镜像源,选择一个访问网速更快的服务器,来提供软件下载/安装服务
  • 提示:更换服务器之后,需要一个相对比较长的更新过程,需要耐心等待,更新完成之后,再安装软件都会从新设置服务器中下载软件了
  • 所谓的镜像源,就是所有服务器内容是相同的(镜像),但是根据位置不同,国内服务器通常都是快一点

  

  

  

  

  

  

           

       

原文地址:https://www.cnblogs.com/tjp40922/p/10166045.html