美文网首页
Linux重点知识

Linux重点知识

作者: 小小小神树 | 来源:发表于2018-03-16 18:59 被阅读0次

## SSH(secure shell)协议         单词含义  安全的外壳   

SSH客户端<-------------------------->SSH服务器

数据传输是加密的,可以防止信息泄露;

数据传输是压缩的,可以提高传输速度。

域名

是IP地址的别名,方便记忆查询。

例如百度的ip地址为163.177.151.110        但输入域名www.baidu.com更方便

端口号

SSH服务器            端口    22

Web服务器                        80

HTTPS服务器                   443

FTP服务器                         21                Windows用

ssh [-p port] user@remote                    ssh -p 22 Python@169.254.46.170

user        指在远程机器的用户名,默认为当前用户

remote    是远程机器的地址,可以是IP / 域名,或别名(下面有解析)

port         是SSH Server监听的端口,如果不指定,就为默认值 22

注意:

ssh 这个终端命令只能在Linux和Unix系统下使用

若要在Windows中使用,需下载安装PuTTY或者XShell客户端软件 www.xshellcn.com

退出用户连接    输入  exit  即可

##SCP   (secure copy)     在Linux下远程拷贝文件

命令格式与SSH基本相同      但此处的 -P    必须是大写的

把本地当前目录下的01.py文件复制到远程家目录下的Desktop/01.py下

注意“:”后面的路径如果不是绝对路径,则以用户的家目录作为参照路径

scp -P port 01.py user@remote:Desktop/01.py

反过来把远程家目录下的01.py文件复制到本地当前目录下的01.py

scp -P port user@remote:Desktop/01.py 01.py

加上 -r 可以传送文件夹

把当前目录下的demo文件夹复制到远程家目录下的Desktop

scp -P  port -r demo user@remote:Desktop

反之亦然

scp -P port -r user@remote:Desktop/demo demo

注意:

scp同样只能在Linux和Unix下使用,在Windows下载PuTTy使用pscp命令同样功能,或安装

FileZilla使用FTP服务进行文件传输            端口为21

但以上每次登陆服务器或远程计算机都需要输入密码,所以配置密钥可以免密码登录

配置公钥

在.ssh目录下输入 ssh-keygen 即可生成钥匙,一路回车即可,会生成公钥私钥两个文件

上传公钥到服务器

执行 ssh-copy-id -p port user@remote  可以让远程服务器记住我们的公钥

id_rsa.pub 为公钥

id_rsa 为私钥                <---------------->                   authorized_keys

 SSH客户端                                                                           SSH服务器  

本地使用私钥对数据进行加密/解密

服务器使用公钥对数据进行加密/解密

##非对称加密算法:

使用公钥加密的数据,需要使用私钥解密;

使用私钥加密的数据,则需要使用公钥解密。

运行原理:

客户端使用私钥对数据进行加密 -> 通过网络将数据发送给服务器 -> 服务器使用公钥对接收到的数据进行解密 -> 服务器使用公钥对数据进行加密 -> 通过网络将数据发送给客户端 -> 客户端再使用私钥对数据进行解密

配置别名

因为每次输入ssh -p port user@remote:   会比较繁琐,因此将ssh 后面用别名代替

先在~/.ssh目录下创建config文件

touch config

在config文件中编辑以下内容

Host 别名名称

    HostName 服务器IP地址即remote

    User 服务器用户名

    Port 端口

保存之后就可以用ssh 别名名称 代替了

例如   ssh myserver        等于        ssh -p port user@remote

#scp 使用同理       若要复制文件夹需加 -r     且别名后必须加“:”

例如   scp -r ~/Desktop myserver:~/Desktop/sources

用户 和 权限 的基本概念

读                read                r                数字代号    4

写                write               w                                   2

执行            excute            x                                    1

一共十个字母    往后每三个字母一组区分看    意思为 “可读    可写    可执行”

第一个字母为“d”,表示为文件夹;若为“-”,表示为文件。

①对应用户的权限    ②对应组的权限    ③对应其他用户的权限

而③到用户中间的数字意思为    硬链接数

表示有多少种方式可以访问到当前目录/文件      简单理解为目录/文件夹总数 + 1

chmod的使用      增减权限

chmod +/- rwx 文件名/目录名

例如chmod +w 01.py            chmod -rw 02.py

##在Mac终端不一样的用法

chmod 用户+操作+权限 文件

用户部分:使用字母 u 表示文件拥有者(user),g 表示拥有者所在群组(group),o 表示其他用户(other),a 表示全部用户(all,包含前面三种用户范围);

操作部分:“+” 符号表示增加权限,“-” 符号表示取消权限,“=” 符号表示赋值权限;

权限部分:“r” 符号表示可读(read),“w” 表示可写(write),“x” 表示可执行权限(execute);

文件部分:如不指定文件名,表示操作对象为当前目录下的所有文件。

例如 chmod g+w 123.txt    chmod o-r,g+x 123.txt

#但测试过    u   无效        就是用户的权限修改不了

可以用数字方式修改,下拉有方法    例如 chmod 755 01.py

超级用户 root

root账号通常用于系统的维护和管理,对操作系统的所有资源具有所有访问权限

sudo        (substitute user)         表示使用另一个用户的身份

使用sudo命令表示使用了超级用户root的身份,但需要输入密码,每次有效期5分钟。

组管理

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

sudo groupadd 组名                添加组

sudo grouddel 组名                 删除组

cat /etc/group                查看组信息        etc目录存放的大都是系统文件

chgrp -R 组名 目录/文件名        递归修改目录/文件的所属组

若没加sudo,会提示权限不够

用户管理

useradd -m -g 用户名                        -m    自动建立用户家目录

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

passwd 用户名                                 设置密码,如果是普通用户,直接用passwd可以修改密码

userdel -r 用户名                                删除用户, -r 会自动删除用户家目录

cat /etc/passwd | grep 用户名                查看用户信息

id 用户名                                                   查看用户各种ID

使用useradd添加的用户,默认不在sudo组中,就是没有sudo权限。以下添加

usermod -G sudo 用户名

修改用户的主组    (passwd 中的 GID)

usermod -g 组 用户名

修改用户的附加组

usermod -G 组 用户名

修改用户登录 Shell

usermod -s /bin/bash

Which   查询命令所保存在的位置        

例 which ls                which useradd

/etc/passwd            用于保存用户信息的文件

/usr/bin/passwd        用于修改用户密码的程序

/bin    (binary)    是二进制执行文件目录,主要用于具体应用

/sbin    (system binary)    是系统管理员专用的二进制代码存放目录,主要用于系统管理

/usr/bin    (user commands for applications)    后期安装的一些软件

/usr/sbin    (super user commands for applications)    超级用户的一些管理程序

切换用户

su - 用户名                                加“-”表示切换用户及目录,不加保留前用户目录

chown                            修改拥有者

chgrp                              修改组

chmod                             修改权限

修改文件/目录的拥有者

chown 用户名 文件名/目录名

递归修改文件/目录的组                -R    表示递归

chgrp -R 组名 文件名/目录名

递归修改文件权限

chmod -R 755 文件名/目录名

“7”表示拥有者权限         “5”表示组权限        “5”其他用户权限

常见数字组合

777    ----->        u=rwx,g=rwx,o=rwx

755    ----->        u=rwx,g=rx,o=rx

644    ----->        u=rw,g=r,o=r

例如    chmod 755 01.py    

时间和日期

date                查看系统时间

cal                  calendar 查看日历,-y 选项可以查看一年的日历

磁盘信息

df -h                disk free 显示磁盘剩余空间

du -h 目录名        disk usage显示目录下的文件大小

“-h” 以直观方式显示文件大小

进程信息

ps                                process status 查看进程的详细情况

ps aux                        参数a,u,x            ps a                ps u

                                    a显示终端上的所有进程,包括其他用户的进程

                                    u显示进程的详细状态

                                    x显示没有控制终端的进程

top                                动态显示运行中的进程并且排序        退出按“q”

kill [-9]进程代号           终止指定代号的进程,-9表示强行终止

find命令

find 路径 -name "搜索条件"               若不输入路径,表示在当前目录搜索

例如     find Desktop/ -name "*.py"

软链接

ln -s 被链接的源文件 链接文件                                类似Windows的快捷方式

必须带 -s ,否则建立的是硬链接文件

源文件要使用绝对路径,如果使用相对路径,一旦移动链接文件,无法使用

ln -s /Users/xuge/Desktop/01.py kuaijie_dakai

硬链接

相当于深复制与浅复制的概念

打包解包

windows    常用rar

Mac            常用zip

Linux           常用tar.gz

打包文件   

tar -cvf 打包文件.tar 被打包的文件     例如 tar -cvf py.tar 01.py 02.py

解包文件

tar -xvf 打包文件.tar

参数c,v,f,x

c    生成档案文件,创建打包文件

v    列出归档解档的详细过程,显示进度

f    指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后

x    解开档案文件

注意:f 选项必须放最后,其他随意

压缩/解压缩

gzip

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

①     tar只负责打包不负责压缩

②    用gzip压缩tar打包后的文件,其扩展名一般为“xxx.tar.gz”

在Linux中最常见的压缩文件格式就是“xxx.tar.gz”

在打包解包时加一个参数“-z”,可以调用gzip,方便实现压缩与解压缩

压缩文件

tar -zcvf 打包文件.tar.gz 被压缩的文件

解压缩文件

tar -zxvf 打包文件.tar.gz

解压缩到指定路径    -C

tar -zxvf 打包文件.tar.gz -C 目标路径

bzip2

用法与gzip一样,但扩展名不一样            xxx.tar.bz2

参数为 -j

tar -jcvf 打包文件.tar.bz2 被压缩的文件

tar -jxvf 打包文件.tar.bz2

APT

apt    Advanced Packaging Tool    是Linux下的一款安装包管理工具

安装软件

sudo apt install 软件包

卸载软件

sudo apt remove 软件名

更新已安装的包

sudo apt upgrade

相关文章

网友评论

      本文标题:Linux重点知识

      本文链接:https://www.haomeiwen.com/subject/kmxkqftx.html