目录
01 内部命令:属于shell解析器的一部分(没有单独对应的系统文件)
02 外部命令:独立于shell解析器之外的文件程序(每个外部命令对应了系统中的一个文件)
3.在Linux上安装完成ssh服务器后,接下来在Windows系统下使用 MobaXterm 进行连接测试ssh服务器是否安装成功
01 Linux基础
1. Linux简介
1.1 Linux简介
Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。(Android也是基于Linux内核开发的)
Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机。
1.2 Linux历史
Linux的出现,最早是一位名叫Linux Torvalds的计算机业余爱好者,但是他是芬兰赫尔辛基大学的学生。他的目的是想设计一个代替Minix(是由一位名叫Andrew Tannebaum的计算机教授编写的一个操作系统示教程序)的操作系统,这个操作系统可用于386、486或奔腾处理器的个人计算机上,并且具有Unix操作系统的全部功能。
Linux操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:UNIX操作系统、MINIX操作系统、GNU计划(自由软件集体协作计划)、POSIX(标准可移植操作系统接口)和lnternet网络。
1981-1991年间DOS操作系统一直是微机上操作系统的主宰。此时计算机硬件价格虽逐年下降,但软件价格仍居高不下。当时Apple的MacOS操作系统可以说是性能最好的,但是其天价没人能够轻易靠近。1991年4月,LinusTorvalds开始酿并着手编制自己的操作系统。1991年8月,LinusTorvalds开始在网上寻找志同道合的合作伙伴,同年10月5日LinusTorvalds在新闻组comp.os.minix发布了大约有一万行代码的Linux 1.3 Linux特点vo.01版本,正式向外宣布Linux内核系统的诞生。这段消息可以称为Linux的诞生宣言,并且一直广为流传。
Linux出现于1991年,是由芬兰赫尔辛基大学学生LinusTorvalds和后来加入的众多爱好者共同开发完成。
1.3 Linux特点
- 多用户,多任务:Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
- 主流:目前的Linux操作系统主要应用于生产环境,主流企业级Linux系统仍旧是RedHat或者CentOS
- 免费:Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变。这让Linux吸收了无数程序员的精华,不断壮大。
- 更新方便:CentOS独有的yum命令支持在线升级,可以即时更新系统,不像RedHat那样需要花钱购买支持服务!
- 开源
1.4 Linux系统构架
Linux系统一般有四个组成部分:内核、shell、文件系统和应用程序。
内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。另外,shell编程语言具有普通编程语言的很多特点,用这种编程语言编写的shell程序与其他应用程序具有同样的效果。
文件系统存放在磁盘等存储设备上的组织方法。Linux系统能支持多种目前流行的文件系统,如EXT2、EXT3、FAT、FAT32、VFAT和ISO9660。
标准的Linux系统一般都有一套称为应用程序的程序集,它包括文本编辑器、编程语言、X Windows、办公套件、Internet工具和数据库等。
1.5 Linux启动过程
我们在使用Linux操作系统的时候,我们只需要按下电源键,等待,然后输入账户和密码就可以使用了。那么在按下电源到输入账号密码之间,操作系统都做了什么?
linux系统启动流程可以简单总结为以下几步:
1)开机BIOS自检,加载硬盘。(计算机电源加电质检)
2)读取MBR,进行MBR引导。
3)grub引导菜单(Boot Loader)。(是计算机启动过程中运行的第一个软件程序)
4)加载内核kernel。(读取内存映像并进行解压缩操作,完成核心环境搭建)
5)启动init进程,依据inittab文件设定运行级别(内核加载完毕)
6)init进程,执行rc.Sysinit文件。(设定PATH运行变量、设定网络配置、启动swap分区、设定/proc、系统函数、配置Selinux等。)
7)启动内核模块,执行不同级别的脚本程序。(加载系统内核模块)
8)执行/etc/rc.d/rc.local(将需要开机启动的任务加入到该文件末尾,系统会逐行去执行并启动相应命令。)
9)后启动mingetty,进入系统登陆界面。
2. Linux文件系统
- bin(binaries)存放二进制可执行文件
- sbin(super user binaries)存放二进制可执行文件,只有root才能访问
- dev(devices)用于存放设备文件
- etc(etcetera)存放系统配置文件
- home 存放用户文件的根目录
- boot 存放用于系统引导时使用的各种文件
- lib(library)存放跟文件系统中的程序运行所需要的共享库及内核模块
- usr(unix shared resources)用于存放共享的系统资源
- var(variable)用于存放运行时需要改变数据的文件(web文件所在)
- tmp(temporary)用于存放各种临时文件
- mnt(mount)系统管理员安装临时文件系统的安装点
系统根目录:/
用户根目录:/home /用户名
1. etc目录
保护用户信息的文件:/etc/passwd
保存密码的文件:/etc/shadow
保存用户组的文件:/etc/group
保存用户组密码的文件:/etc/gshadow
用户配置文件:/etc/default/useradd
-
cat /etc/passwd 格式
保护用户信息的文件:
/etc/passwd (先用 sudo su 提权)
root | :x | :0 | :0 | :root | :/root | usr/bin/zsh |
账号名称 | 账号密码 | 账号UID | 账号UID | 用户说明 | 用户家目录 | shell解释器 |
UID:0是超级用户root的标识号,1-99由系统保留,作为管理账号,普通用户的标识号从100开始。Linux系统中,这个界限是500。
“用户名”:代表用户账号的字符串
“密码”:一些系统中,存放着加密后的用户口令。现在很多都使用了都使用了shadow技术,把真正的加密后的用户口令存放到etc/shadow文件中,而在/etc/shadow文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。
“用户标识号”:是一个整数,系统内部用它来标识用户。0是超级用户root的标识号,1~99由系统保留,作为管理账号,普通用户的标识号从100开始。
"组标识号”:字段记录的是用户所属的用户组(用户默认的组ID)。它对应着/etc/group文件中的一条记录。
“注释性描述”:字段记录着用户的一些个人情况,例如用户的真实姓名、电话、地址等,这个字段并没有什么实际的用途。
“主目录”:也就是用户的起始工作目录,它是用户在登录到系统之后所处的目录。而用户主目录的名称就是该用户的登录名。
"shell”:用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。
可用这个命令 排查有没有新增可疑用户。
-
/etc/shadow 格式
保存密码文件
/etc/shadow
格式:
用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段
查看命令:man 5 shadow
用户名 | 登录系统的用户名 |
密码 | 加密密码 |
最后一次修改时间 | 用户最后一次修改密码距现在的天数,从1970-1-1起 |
最小时间间隔 | 两次修改密码之间的最小天数 |
最大时间间隔 | 密码有效天数 |
警告时间 | 从系统警告到密码失效的天数 |
账号闲置时间 | 账号闲置时间 |
失效时间 | 密码失效的天数 |
标志 | 标志 |
-
/etc/group 格式
保存用户组的文件
/etc/group
用户组密码是用来指定组管理员的
cat命令主要用来查看文件信息,内容的。
-
/etc/gshadow 格式
保护用户组密码的文件
/etc/gshadow
组名:加密密码:组管理员:组附加用户列表
-
/etc/apt/sources.list
系统更新源文件
/etc/apt/sources.list
修改更新源的方法:
vim编辑器:i
下载安装工具:
更新更新源:vim /etc/apt/sources.list,使用https的更新源
进行更新:apt-get update
安装软件:apt-get install 软件名称
更新更新源不能成功:
gpg --keyserver hkp://pgpkeys.mit.edu --recv-key ED444FF07D8D0BF6
gpg -a --export ED444FF07D8DD0BF6 | sudo apt-key add -
或者:wgetarchive.kali.org/archive-key.asc //下载签名
apt-key add archive-key.asc //安装签名
修改DNS:
vim /etc/resolv.conf , 也可以直接去目录下找到文件用文本编辑器打开修改
nameserver 8.8.8.8
nameserver 114.114.114.114
2. /var 目录
/var 目录:用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。
/var 子目录 | 功能(作用) |
/var/lib/ | 程序运行中需要调用或改变的数据保存位置。如MySQL的数据库保存在/var/lib/mysql/目录中。 |
/var/log/ | 登录文件放置的目录,其中所包含比较重要的文件如/var/log/messages, /var/log/wtmp等。【日志文件】 |
/var/run/ | 一些服务和程序运行后,他们的PID(进程ID)保存位置。 |
/var/spool/ | 里面主要都是一些临时存放,随时会被用户所调用的数据,例如/var/spool/mail存放新收到的邮件,/var/spool/cron存放系统定时任务 |
/var/www/ | RPM包安装的apache的网页主目录【浏览器】 |
/var/nis 和 /var/yp | NIS服务机制所使用的目录,nis主要记录所有网络中每一个client的连接信息;yp是Linux的nis服务的日志文件存放的目录。 |
/var/tmp | 一些应用程序在安装或执行时,需要在重启后使用的某些文件,此目录能将该类文件暂时存放起来,完成后再行删除。【临时文件】 |
3. Linux常用命令
命令格式:命令-选项参数
如:ls -a
ls: 显示文件和目录列表(list)
常用参数:
-l (long,文件的详细信息)
-a (all)注意隐藏文件、特殊目录
-t (time)文件建立的先后时间排序文件 例如:ls -lt
例如:
01 不带任何参数运行ls命令将列出当前工作目录的内容:ls
02 列出任何目录的内容,如 /etc目录的内容: ls /etc
这里需要填写绝对路径(注意大小写):
03 列出文件的详细信息,权限等: ls -l
首字母
-:普通文件
d:目录文件
c:字符设备文件
b:块设备文件
p:管道文件
I:链接文件
s:socket文件
rwx:读、写、执行权限
04 一个目录中总是包含一些隐藏的文件(至少有两个),因此,要展示目录中的所有文件,使用-a 或 -al 标志: ls -a
05 按文件建立的先后时间排序文件:ls -t
Linux命令的分类
01 内部命令:属于shell解析器的一部分(没有单独对应的系统文件)
cd切换目录(change directory)
- cd /路径 #切换到指定文件夹
- cd ./ #当前
- cd ../ #上一级目录
- cd .. #上一级目录
- cd ~ #根目录
cd /路径 切换到当前的下一级文件夹:需要填写绝对路径
pwd显示当前工作目录(print working directory)
--help 帮助
02 外部命令:独立于shell解析器之外的文件程序(每个外部命令对应了系统中的一个文件)
ls显示文件和目录列表(list)
mkdir创建目录(make directory)
cp复制文件或目录(copy)
03 查看帮助文档
内部命令:help+命令 (help cd)
外部命令:man 5+passwd (man ls)
man n password(待查的词)
man (manual,使用手册,指南)
n 代表的意思:
0 | /usr/include 下的头文件 |
1 | 可执行程序和shell命令 |
2 | 系统调用 |
3 | 系统库函数 |
4 | /dev 下的特殊文件 |
5 | 文件格式和约定(比如/etc/passwd) |
6 | 游戏 |
7 | 其他 |
8 | 仅root可用的系统管理命令 |
9 | 内核相关的内容 |
操作文件或目录的常用命令
pwd | 显示当前工作目录(print working directory) |
touch | 创建空文件 |
mkdir | 创建目录(make directory) |
cp | 复制文件或目录(copy) |
mv | 移动文件或目录、文件或目录改名(move) |
rm | 删除文件(remove)用rm删除的文件可恢复 |
rm -r | 同时删除该目录下的所有文件(recursive) |
rm -f | 强制删除文件或目录(force) |
rmdir | 删除空目录(remove directoriy) |
cat | 显示文本文件内容(catenate) |
more、less | 分页显示文本文件内容 |
head、tail | 查看文本中开头或结尾部分的内容 |
head -n 5 a.log | 查看a.log文件的前5行 |
tail -f b.log | 实时读取文件的新内容(或循环读取) |
find命令 | 按照文件名查找文件(不是全局搜索) |
find / -name.txt | 查找根目录下的.txt的文档 |
ps | 显示瞬间的进程状态 |
ps -a | 显示现行终端机下的所有程序,包括其他用户的程序 |
ps -A | 显示所有程序 |
ps -c | 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的指示 |
ps -e | 此参数的效果和指令“A”参数相同 |
ps e | 列出程序时,显示每个程序所使用的环境变量 |
ps f | 用ASCII字符显示树状结构,表达程序间的相互关系 |
ps -H | 显示树状结构,表示程序间的相互关系 |
kill | 杀死一个进程(Windows的杀掉进程:taskkill) |
find命令:
find -name *.txt //查找当前路径下面的以.txt结尾的文档
find . -name "*.c" // 将目前目录及其子目录下所有延伸文档名是c的文件列出来
find . -type f // 将目前目录其其下子目录中所有一般文件列出
find . -ctime -20 // 将目前目录及其子目录下所有最近20天内更新过的文件列出
find /var/log -type f -mtime +7 -ok rm {} \; //查找/var/log目录中更改时间在7日以前的普通文件,并在删除之前询问它们
find .-type f -perm 644 -exec ls -l {} \; //查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件
find / -type f -size 0 -exec ls -l {} \; //为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径。
du命令:是同级目录或文件所占磁盘空间大小的命令。
du 命令的格式如下:
[root@localhost ~]# du [选项] [目录或文件名]
-a: 显示每个子文件的磁盘占用量、默认只统计子目录的磁盘占用量
-h: 使用习惯单位显示磁盘占用量,如KB、MB、或GB等;
-s: 统计总磁盘占用量,而不列出子目录和子文件的磁盘占用量
su 命令:切换用户
su root:前提条件,设置了root账户的密码
sudo su // 允许系统管理员让用户执行一些root权限的命令
sudo -i:使用sudo来一交互式方式打开新的shell会话,并将环境变量设置为超级用户的环境。当运行sudo -i时,会被要求输入当前用户的密码,然后进入一个全新的shell,它的环境变量和路径设置与超级用户(root)相同。这意味着可以像在root账户下一样执行命令。
在Linux系统中,有些普通用户需要借助root账号来执行一些操作,但我们并不能把root密码给普通用户,就有了sudo;
sudo可以临时切换到指定账号进行操作;
使用方法:sudo [ -u 用户账号] 需要执行的命令;切换到root时,可以直接执行sudo执行命令即可;
sudo-l :列出所有可以执行的命令;
使用条件:
1. 必须以root身份执行visudo,添加需要执行sudo命令的用户;
2. 执行visudo,实际上修改的是/ect.sudoers文件;
3. 为什么要使用visudo,而不直接使用vim /etc/sudoers 呢?这是因数visudo在修改完成后可以对语法进行检查;
4. 使用visudo -c进行语法检查, 当sudoers文件有语法错误时,所有的sudo命令都无法使用。
df命令:用于显示Linux系统中各文件系统的硬盘使用情况,包括文件系统所在硬盘分区的总容量、已使用的容量、剩余容量等。
df命令的基本格式为:
[root@localhost ~]# df [选项] [目录或文件]
df命令常用选项及作用
-a:显示所有文件系统信息,包括系统特有的 /proc、/sysfs 等文件系统;
-m:以MB为单位显示容量;
-k:以KB为单位显示容量,默认以KB为单位;
-h:使用人们习惯的KB、MB或GB等单位自行显示容量;
-T:显示该分区的文件系统名称;
-i:不用硬盘容量显示,而是以含有inode的数量来显示。
区别:du命令是面向文件的,只会计算文件或目录占用的磁盘空间。也就是说,df命令统计的分区更准确,是真正的空闲空间。
free命令:显示当前内存和交换空间的使用情况
netstat:显示网络状态信息
-a:显示所有连接和监听端口
-t:(tcp)仅显示tcp相关选项;
-u:(udp)仅显示udp相关选项;
-n:拒绝显示别名,能显示数字的全部转化成数字;
-p:显示建立相关链接的程序名;
-o:显示对应的pid
ifconfig:网卡网络配置详解(Windows是ipconfig)
ping:测试网络的连通性;
Ping -c 5 qq.com (-c 5 就是ping几次,执行5次;不加的话只能Ctrl+c 才能退出去)
shutdown 系统关机
-r 关机后立即重启
-h 关机后不重新启动
halt 关机后关闭电源
Reboot 重新启动
init 0 关机
init 重启
小游戏:
01 hacknet
这个游戏讲的是一位传奇黑客Bit,死后的一段故事。Bit是CSEC高级黑客组织的一员,也是著名网络安全公司En Tech一名员工。
02 在线靶场:bandit
overthewire.org/wargames/bandit/bandit0.html
这个游戏要在虚拟机上玩,因为它需要Linux系统启动ssh条件。
如果启动了,那么用kali连接:ssh -p 2220 bandit0@bandit.labs.overthewire.org
需要输入密码:bandit0
然后进入第二关。先用ls查看所有的文件,然后用cat ./ 文件名,来查询出密码。接着通过ssh -p 2220 bandit2@网址进入下一关。
备份压缩命令:
gzip压缩(解压)文件或目录,压缩文件后缀为gz
bzip压缩(解压)文件或目录,压缩文件后缀为bz2
tar文件、目录打(解)包
zip
unzip filename.zip
gzip命令
命令格式:gzip[选项] (解压缩)的文件名 gz
-d 将压缩文件解压(decompress)
-l 显示压缩文件的大小,未压缩文件的大小,压缩比(list)
-v 显示文件名和压缩比(verbose)
-num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9 或--best表示最慢压缩方法(高压缩比)。系统缺省值为6
[root@runoob.com a]# ls //显示当前目录文件
a.c b.h d.cpp
[root@runoob.com a]# gzip * //压缩目录下的所有文件
[root@runoob.com a]# ls
a.c.gz b.h.gz d.cpp.gz
[root@runoob.com a]#
tar命令 gz
-c 建立一个压缩文件的参数指令(create)
其中zxvf含义分别如下
z | gzip | 压缩格式 |
x | extract | 解压 |
v | verbose | 详细信息 |
f | file(file=archieve) | 文件 |
-t 查看tarfile里面的文件
# touch a.c
# tar -czvf test.tar.gz a.c //压缩a.c文件为test.tar.gz
操作用户的命令
1. 添加新的用户账号便用useradd命令
useradd 选项 用户名
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录,
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组
-s Shel文件 指定用户的登录Shell.
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。如:useradd -d /home/sam -m sam
此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/home/sam(/home为默认的用户主目录所在的父目录)。
2. 修改用户账号
就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shel等。修改已有用户的信息使用usermod命令,其格式如下:
usermod 选项 用户名
常用的选项包括-c,-d,-m,-g,-G,-s,-u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
另外,有些系统可以使用选项:-l 新用户名
这个选项指定一个新的账号,即将原来的用户名改为新的用户名。例如:usermod -s /bin/ksh -d/home/z -g developer sam
此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。
3. 删除帐号
如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。删除一个已有的用户账号使用userdel命令,其格式如下:
userdel 选项 用户名
常用的选项是-r,它的作用是把用户的主目录一起删除。例如:
# userdel -r sam
此命令删除用户sam在系统文件中(主要是/etc/passwd,/etc/shadow,/etc/group等)的记录,同时删除用户的主目录。
- 添加组:groupadd
-g 指定gid
- 修改组:groupmod
-n 更改组名(new group)
- 删除组:groupdel
- groups 显示用户所属组
4. Linux权限管理
三种基本权限
- r 读权限(read)查看文件数据
- w写权限(write)修改、删除
- x执行权限(execute)运行程序
- 通过数字给文件权限
更改操作权限
- chmod修改文件权限命令(change mode)
参数:-R下面的文件和子目录做相同权限操作(Recursive递归的)
例如:chmod u+x a.txt
- 用数字来表示权限(r=4,W=2,×=1,-=0)
例如:chmod 750 b.txt
rwx用二进制表示是111,十进制4+2+1=7
r-x用二进制表示是101,十进制4+0+1=5
5. VIM编辑器
vi/vim是Unix/Linux上最常用的文本编辑器而且功能非常强大。
只有命令,没有菜单。
什么是vim?
Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说,vi是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。vim则可以说是程序开发者的一项很好用的工具。
为什么学vi?
1)所有的UnixLike系统都会内建vi文本编辑器,其他的文本编辑器则不一定会存在;
2)很多个别软件的编辑接口都会主动呼叫vi(例如未来会谈到的crontab,visudo,edquota等指令);
3)vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计;
4)因为程序简单,编辑速度相当快速。
VIM工作模式
以逆时针的顺序来看上图:
首先输入vim 文件名进入一般模式
一般模式:在电脑上输入的任何内容都会识别为命令
i:光标前插入文本(用得比较多)
a:光标后插入文本
o:光标下一行插入新的行
输入完成后,按esc键退出,然后输入:进入底行模式
退出方式::wq q q!(强制退出) wq!(强制保存退出)
基本上vi/vim共分为三种模式,分别是一般模式(command mode),编辑模式(insert mode)和末行模式(last line mode)
01 一般模式
用户刚刚启动vi/vim,便进入了命令模式。此状态下敲击键盘动作会被VIM识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当做了一个命令。
02 编辑模式
在一般模式下按下i就进入了输入模式
03 末行模式
在命令模式下:(英文冒号)就进入了底线命令模式
VIM插入命令
VIM常用快捷键
6. SSH远程连接
首先SSH是什么?SSH(Secure SHell)是Linux、Unix、Mac及其他网络设备最常用的远程CLI管理协议,SSH使用秘钥对数据进行加密,保证了远程管理数据的安全性。
SSH2是现在广泛使用的ssh版本
SSH协议使用TCP协议,端口号为22
Openssh是ssh的一个开源程序,绝大多数Linux版本均使用openssh作为ssh程序
SSH分为服务端与客户端,SSH服务端默认启动,作为常驻服务运行
可以使用Service ssh status命令查看ssh的状态
1. Linux安装ssh服务
sudo apt-get install sshd
2. Linux启动ssh服务
service ssh start/stop/restart/status, 启动/停止/重启/状态
修改sshd_config参数
vim /etc/ssh/sshd_config #编辑此文件
输入:vim /etc/ssh/sshd_config 回车进入vim工作模式
按i进入编辑模式,在Authentication选项中#PermitRootLogin prohibit-password(充许root登录,但是禁止root用密码登录)将该行改为PermitRootLogin yes(允许root登录,设为yes)注意去掉前面的#
再按Esc键,输入英文的:进入末行模式,然后输入wq退出vim工作模式。
再重启ssh:service ssh restart
3.在Linux上安装完成ssh服务器后,接下来在Windows系统下使用 MobaXterm 进行连接测试ssh服务器是否安装成功
1)运行Xterm软件(终端模拟器),选择"Session",
2)点击"SSH"并进行设置,如下图所示:
选择“协议”为“ssh”,“remote host” 为 Linux 的 IP 地址,用户名为当前用户名。端口号使用默认值22。
ping一下确认能通信
Linux init 进程
init进程是系统所有进程的起点
init程序首先是需要读取配置文件/etc/inittab
- ·运行级别
许多程序需要开机启动。它们在Windows叫做"服务”(service),在Linux就叫做“守护进程”(daemon)。init进程的一大任务,就是去运行这些开机启动的程序。但是,不同的场合需要启动不同的程序,比如用作服务器时,需要启动Apache,用作桌面就不需要。
Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。也就是说,启动时根据“运行级别",确定要运行哪些程序。
- 7个运行级别
·运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
·运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
·运行级别2:多用户状态(没有NFS)
·运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
·运行级别4:系统未使用,保留
·运行级别5:X11控制台,登陆后进入图形GUI模式
·运行级别6:系统正常关闭并重启,跌认运行级别不能设为6,否则不能正常启动
黑客常用命令
系统信息
arch | #显示机器的处理器架构(1) |
uname -m | #显示机器的处理器架构(2) |
uname -r | #显示正在使用的内核版本 |
dmidecode -q | #显示硬件系统部件-(SMBIOS/DMI) |
hdparm -i/dev/hda | #罗列一个磁盘的架构特性 |
hdparm -tT/dev/sda | #在磁盘上执行测试性读取操作 |
cat /proc/cpuinfo | #显示CPUinfo的信息 |
cat /proc/interrupts | #显示中断 |
cat /proc/meminfo | 校验内存使用 |
cat /proc/swaps | #显示哪些swap被使用 |
cat /proc/version | 显示内核的版本 |
cat /proc/net/dev | #显示网络适配器及统计 |
cat /proc/mounts | #显示已加载的文件系统 |
Ispci -tv | #罗列PCl设备 |
Isusb -tv | #显示US |
date显示系统日期
cal 2007 | #显示2007年的日历表 |
date 041217002007.00 | #设置日期和时间 - 月日时分年.秒 |
clock -w | #将时间修改保存到BIOS |
关机(系统的关机、重启以及登出)
shutdown -h now | #关闭系统(1) |
init 0 | #关闭系统(2) |
telinit 0 | #关闭系统(3) |
shutdown -h hours:minutes & | #按预定时间关闭系统 |
shutdown -c | #取消按预定时间关闭系统 |
shutdown -r now | #重启(1) |
reboot | #重启(2) |
logout | #注销 |
文件和目录
cd /home | #进入'/home'目录 |
cd .. | #返回上一级目录 |
02 Linux与Windows区别
(1)使用的费用不同
Linux是一项开源的项目,所以它免费提供给编程爱好者使用,而Windows则是需要购买的一款系统,目前最新的正版Windows系统售价888元。
(2) 适合使用对象不同
Linux适合企业公司服务器系统架构,而Windows适合大众使用。
(3)操作风格不同
Windows是面向大众化的,所以操作上比较符合普通人的操作习惯,大多都是通过界面化的操作。
而Linux在很多情况下需要通过命令行来进行操作。(4) 支持的软件不同
Windows由于使用人数较多,所以支持Windows的软件在数量和质量上都比Linux有优势。
Linux平台只有开发者维护,缺少资金的大量支持,所以软件方面的数量和质量比较缺乏。(5) 文件格式不同
Windows操作系统内核是NT,而Linux是shell。
(6) 安全性不同
Windows系统常常成为黑客和病毒的攻击目标,所以需要安装一些安全防护软件来保护计算机的安全。
而Linux相比较Windows来说则安全很多,使用Linux是完全不需要安装额外的安全软件。(7)可定制性不同
Windows的操作范围大多已经受到微软的限制,所以基本上是系统怎样设置,用户就只能规矩操作。
而Linux提供了更高的定制性,它支持开发者通过编码来定义适合自己的操作系统。(8)程序可移植性不同
Windows的程序可移植性差,程序基本不兼容Linux.
而Linux程序的可移植性好,不仅可以在不同的Linux之间移植,还可以移植到Windows上面来。
Linux严格区分大小写
Windows不区分大小写
目录和ttl值
感谢KIKI老师的教导。