1、远程连接linux的原理

1.1 依赖openssh、openssl软件

openssl是C语言库,对SSL协议的实现。
openssh依赖于openssl,没有openssl的话openssh就编译不过去,也运行不了。

查看方法:

  1. rpm -qa openssh openssl
  2. openssh-7.4p1-12.el7_4.x86_64
  3. openssl-1.0.2k-8.el7.x86_64

1.2 SSH服务端介绍

启动Linux系统时,默认情况下,SSH服务器端程序就会随系统一起启动,SSH服务是一个守护进程,它在系统后台永久运行,并时刻响应来自SSH客户端的连接请求。

SSH服务端的进程名为:sshd,负责实时监听远程SSH客户端的连接请求并进行处理。
这些请求包括共钥认证、秘钥交换等。

1.3 SSH客户端介绍

SSH客户端最常用的工具:CRT,xsehll、putty
SSH协议:secure shell protocol简写,两个版本,SSH 1.x,2.x,不兼容

1.4 排错方法

1)网络排错
ping, tracert,traceroute,nmap ip -p 端口,telnet
2)端口排查
telnet ip 22端口,看能不能通。
3)服务排错
防火墙、ssh服务

2、Linux基本管理

2.1 Linux系统应用管理

1)查看Linux系统版本
cat /etc/redhat-release
cat /etc/issue
2)查看内核信息
uname -a

2.2 selinux简单讲解

SELinux(Security-Enhanced Linux)是美国国家安全局(NSA)对于强制访问控制模块,一般关闭

永久修改vim /etc/selinux/config
SELINUX=disabled
临时修改 setenforce 0
setenforce:设置selinux临时状态。
getenforce :查看selinx当前状态。

2.3 Linux运行级别

2.3.1 Linux系统有7个运行级别(runlevel)

运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

2.3.2 查看当前运行级别

运行级别参考文件: /etc/inittab
systemctl get-default

2.3.3 设置默认级别(永久性的):

设置开机不自启图形界面(3级别):systemctl set-default multi-user.target
设置开机启动图形界面(5级别):systemctl set-default graphical.target

2.3.4 运行级别切换(暂时性的)

init 0123456
init 0 关机命令
init 6 系统重启命令
init 3 切换到命令行模式
init 5 切换到图形界面模式

2.4 关闭防火墙

centos7执行关闭命令: systemctl stop firewalld.service
再次执行查看防火墙命令:systemctl status firewalld.service
执行开机禁用防火墙自启命令 : systemctl disable firewalld.service

2.5 关机命令

1)halt 立刻关机
2)poweroff 立刻关机
3)shutdown -h now 立刻关机(root用户使用)
4)shutdown -h 10 10分钟后自动关机 如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消
5)init 0

2.6 重启命令

1)reboot
2)init 6
3)shutdown -r now 立刻重启(root用户使用)
4)shutdown -r 10 过10分钟自动重启(root用户使用)
5)shutdown -r 20:35 在时间为20:35时候重启(root用户使用) 如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消

2.7 添加普通用户账号

#快捷方式:useradd liyuanchuan && echo "liyuan" | passwd --stdin liyuanchuan && history  -c
[root@aliyun  ~]# useradd test12 
[root@aliyun  ~]# passwd test12 
Changing password for user test12.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@aliyun  ~]#

2.8 命令行解释

[root@logsvr log]#
@符前面是whoami,@符后面是hostname,~是当前用户所在的路径
Linux命令提示符由PS1环境变量控制
详见:https://www.yuque.com/nicechuan/ganswy/ilkuoz

2.9 编辑命令行技巧

Ctrl + a 跳到命令行的开头
Ctrl + e 跳到命令行的末尾
Ctrl + u 将光标出到开头行清除
Ctrl + k 将光标出到行尾的内容清除
ctrl + r 再历史记录中匹配最近命令
ctrl + l 清屏
esc+.  显示上一个命令的最后一个参数

2.10 修改主机

查看当前主机名:
hostname
修改主机名:
hostnamectl set-hostname my-aliyun

2.11 su 切换用户

如:su - test,切换到test用户
su 后端不加用户,默认root

作业:
su 和 su -的区别?

3、基本的Linux命令操作示例

3.1 命令行基本结构

[root@localhost ~]# 命令[选项][参数]
# 命令 + [参数选项] + [文件或路径]
date +%F +%R
ls -l /tmp/
cat /tmp/a.txt

3.2 补全tab功能

1)命令的补全
2)路径的补全
3)有一些命令可以进行参数的补全。

3.3 Linux帮助命令

1、man 命令
1)q退出,空格前进。2)前进crtrl + f 3)后退ctril + b
2、命令 —help 或 命令 -h 或者后面加个morecat

3.4 计算命令—wc

统计行数和字节数、单词数

[root@aliyun  ~]# wc /tmp/1.txt 
192012 192012 384024 /tmp/1.txt
行数  单词数 字节数 
[root@aliyun  ~]# wc -l /tmp/1.txt 
192017 /tmp/1.txt
[root@aliyun  ~]# wc -w /tmp/1.txt 
192018 /tmp/1.txt
[root@aliyun  ~]# wc -m /tmp/1.txt 
384036 /tmp/1.txt

3.5 ls简单解释

列出文件和目录

ls -ld  /etc/
-l:查看目录下面的详细信息
-d:查看文件夹的详细信息
-a :显示隐藏文件
-A:和a效果一样,没有.和..

3.6 删除rm

rm -f /etc/test
-r:删除目录

3.7 cd命令

切换路径
绝对路径:以/开头的目录
相对路径:不是以/开头的目录
.:当前目录
..:上一级目录
-:切换到上一次目录所在的位置
~: 家目录
如:切换到/etc目录
cd /etc/
cd ..(切换到上一级目录)
cd - 切换到上一次目录所在的位置
cd 切换到家目录

3.8 pwd命令

[root@aliyun ~]# pwd
/root # 查看当前路径

3.9 touch命令

touch创建文件
touch:如果存在则更新访问时间,不存在则创建
如:创建/tmp/test.txt文件
touch /tmp/test.txt

3.10 cat命令

cat:查看文件的内容
查看文件/etc/redhat-release内容
cat /etc/redhat-release

3.11 mkdir命令

mkdir:创建目录 文件夹
-p:递归创建目录。连续创建新的目录
(make directory)
如:创建/tmp/abc目录
mkdir /tmp/abc
创建/tmp/test/test2/test3目录
mkdir -p /tmp/test/test2/test3

3.12 echo命令

echo 输出内容
如:输出hello world 内容
echo ‘hello world’
echo ‘test’ > a 向a文件输入内容

3.13 mv 移动

1)格式 mv 文件 目标文件路径
如:移动ab文件到/tmp
创建文件ab:touch ab
移动文件到/tmp:mv ab /tmp/
2)重命名
如:重命名test12为test68
创建文件:touch test12
重命名:mv test12 test68

3.14 which命令

which:查看命令所在文件的位置
如:which cat
which ls

3.15 head命令

head :查看文件的从头开始行数,默认10行
如:查看/etc/passwd的前十行
head /etc/passwd
查看/etc/passwd的前二十行
head -n20 /etc/passwd
-n :指定行数

3.16 tail命令

tail:查看文件的后面开始的行数,默认10行
如:查看/etc/passwd的后十行
tail /etc/passwd
-n:指定行数
-f :查看变化的文件
more:查看文件前几行,按空格下一屏幕,q退出。

3.16.1 more命令

分页查看文件内容

3.17 history命令

history:查看历史命令

3.18 登录命令

1)w:显示当前登录的用户以及他们在做什么
2)whoami 显示当前登录系统有效的用户名
3) who 显示当前有哪些用户登录
who -r 显示当前系统运行级别
4)last:显示/var/log/wtmp文件,显示用户登录历史及系统重启历史
5)lastlog: 显示每一个用户最近一次的成功登录信息;
-u USERNAME: 显示特定用户最近的登录信息

3.19 cp复制命令

-r :递归复制

4、举例

4.1 例

在/data/目录下面创建一个文件。两种方法。
touch,摸下,如果存在则更新访问时间,不存在则创建

4.2 例

为test.txt增加内容”this is test,linux”
1)vim
a键插入,esc退出编辑,冒号wq保存退出。
cat /tmp/test.txt 查看刚刚保存的文字。
2)echo
[root@redhat ~]# echo “nihao , china ,welcom to my country” > /tmp/test2.txt
[root@redhat ~]# cat /tmp/test2.txt
nihao , china ,welcom to my country

4.3 例

把文件test.txt拷贝到/tmp下
cp用法:
cp 需要拷贝的文件 目标目录 && cp 需要拷贝的文件 目标目录或者目标目录的名称
cp
cp用到的参数
-r:递归,用于复制目录
如: 复制/etc/目录到/tmp目录下面
cp -r /etc/ /tmp/

4.4 例

移动文件/data目录到/root下
mv参数:
-i:如果目的文件存在,询问是否覆盖
-f: 强制执行,不会询问
重命名
mv 文件—>重命名文件
mv c.txt d.txt

4.5 例

进入/data/目录删除文件test.txt文件
最好的方式是mv移动到/tmp下