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是目前比较可靠的,专为远程登录会话和其他网络服务 提供安全性的写协议
- 利用ssh协议可以有效防止远程管理过程中的信息泄露
- 通过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
- 把本地目录下的01.py文件复制到远程家目录下的 Desktop/01.py
选项 | 含义 |
-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
- Host name(要取得名字)
配置结束后就可以直接使用:ssh HostName登录了.
3.4
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
提示:主组设置完后成需要重新登录才能生效
- 修改用户主组(passwd的GID)
- usermod -g 组 用户名
- 修改用户的附加组
- usermod -G 组 用户名
- 修改用户的登录shell
- usermod -s /bin/bash
- 修改用户主组(passwd的GID)
注意:默认使用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 | 修改权限 |
- 修改文件 |目录的拥有者
- chown 用户名 | 文件名
- 递归修改文件 | 目录的组
- chgrp -R 组名 文件名 |目录名
- 递归修改文件权限
- 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
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已经在环境变量中)
- 如果不设置软连接就配置环境变量:
- 没有-s选项是一个硬连接
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中安装软件,可以通过设置镜像源,选择一个访问网速更快的服务器,来提供软件下载/安装服务
- 提示:更换服务器之后,需要一个相对比较长的更新过程,需要耐心等待,更新完成之后,再安装软件都会从新设置服务器中下载软件了
- 所谓的镜像源,就是所有服务器内容是相同的(镜像),但是根据位置不同,国内服务器通常都是快一点