1. Linux 系统特点
好的用户界面、优异的性能和稳定性
Windows属于:单用户、多任务
Linux属于:多用户、多任务
2. Linux分支
Ubuntu、debain、redhat等
3. 终端
在终端下可以输入命令对系统进行操作
如何使用Linux命令关机?
shutdown -h now(正常关机)、halt(关闭内存)、init 0
4. Linux系统的文件
Linux一切皆文件
window下是文件的,Linux中也是文件;
window下不是文件的,Linux中仍然是文件
目录结构
bin:全称binary,含义是二进制,该目录中存储的都是一些二进制文件,可以直接运行
dev:该目录中存放的是外接设备,外接设备是不能直接使用的,需要挂载
etc:该目录中存放一些配置文件
Home:表示家,除了root用户以外的其他用户的家目录
Proc:process,表示进程,存放Linux运行时候的进程
root:是root、用户自己的家目录。
Tmp:表示临时的,存放系统运行时产生的临时文件
User:存放用户自己安装的文件
Var:存放程序或目录的日志
5. Linux的基本指令
(1)基础指令
ls:(list)
用法1:
ls 列出当前工作目录下的所有文件和文件夹的名称
用法2
ls 路径 列出路径目录下的所有文件和文件夹的名称
/【表示根目录】./ 【表示当前目录】…/【表示上一级目录】
用法3
ls 选项 路径
含义:在列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示。
常见的语法:
#ls -l 路径
#ls -la 路径
选项解释:
-l:表示list,表示以详细列表的形式进行展示
-a:表示显示所有的文件/文件夹(包含了隐藏文件/文件夹)
pwd指令
用法:# pwd
(print working directory,打印当前工作目录)
cd指令
命令:#cd (change directory,改变目录)
作用:用于切换当前的工作目录的
语法:#cd 路径
mkdir指令
指令:mkdir (make directory,创建目录)
语法1:#mkdir 路径
【路径,可以是文件夹名称也可以是包含名称的一个完整路径】
语法2:#mkdir -p 路径
含义:当一次性创建多层不存在的目录的时候,添加-p参数,否则会报错
语法3:#mkdir 路径1 路径2 路径3 …. 【表示一次性创建多个目录】
touch指令
指令:touch
作用:创建文件
语法:#touch 文件路径 【路径可以是直接的文件名也可以是路径】
cp指令
指令:cp (copy,复制)
作用:复制文件/文件夹到指定的位置
语法:#cp 被复制的文档路径 文档被复制到的路径
注意:Linux在复制过程中是可以重新对新位置的文件进行重命名的,但是如果不是必须的需要,则建议保持前后名称一致。
注意:当使用cp命令进行文件夹复制操作的时候需要添加选项“-r”【-r表示递归复制】,否则目录将被忽略
mv指令
指令:mv (move,移动,剪切)
作用:移动文档到新的位置
语法:#mv 需要移动的文档路径 需要保存的位置路径
确认:移动之后原始的文件还在不在原来的位置?原始文件是不在原始位置的
补充:在Linux中重命名的命令也是mv,语法和移动语法一样。
rm指令
指令:rm (remove,移除、删除)
作用:移除/删除文档
语法:#rm 选项 需要移除的文档路径
选项:
-f:force,强制删除,不提示是否删除
-r:表示递归
在删除的时候如果不带选项,会提示是否删除,如果需要确认则输入“y/yes”,否则输入“n/no”按下回车。
注意:如果在删除的时候不想频繁的确认,则可以在指令中添加选项“-f”,表示force(强制)。
注意:删除一个目录的时候需要做递归删除,并且一般也不需要进行删除确认询问,所以移除目录的时候一般需要使用-rf*选项。
其中**称之为通配符,意思表示任意的字符,Linux*,则表示只要文件以Linux*开头,后续字符则不管。
vim指令
指令:vim (vim是一款文本编辑器)
语法:#vim 文件的路径
作用:打开一个文件(可以不存在,也可以存在)
例:使用vim来打开文件
输出重定向
一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析统计,则这时候需要使用到的输出重定向技术。
>:覆盖输出,会覆盖掉原先的文件内容
>>:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
**语法:#正常执行的指令 > / >> **文件的路径
注意:文件可以不存在,不存在则新建
Linux下的常用文件操作命令
按ESC键 跳到命令模式,然后:
:w 保存文件但不退出vi
:w file 将修改另外保存到file中,不退出vi
:w! 强制保存,不推出vi
:wq 保存文件并退出vi
:wq! 强制保存文件,并退出vi
q: 不保存文件,退出vi
:q! 不保存文件,强制退出vi
:e! 放弃所有修改,从上次保存文件开始再编辑
cat指令
作用1:cat有直接打开一个文件的功能。
**语法1:#cat 文件的路径
作用2:cat还可以对文件进行合并
**语法2:#cat **待合并的文件路径1 待合并的文件路径2 …. 文件路径n > 合并之后的文件路径
6.进阶指令(重点)
(1)df指令
作用:查看磁盘的空间
**语法:#df -h -h ** 表示以可读性较高的形式展示大小
(2)free指令
作用:查看内存使用情况
语法:#free -m -m 表示以mb 为单位查看
Swap:用于临时内存,当系统真实内存不够用的时候可以临时使用磁盘空间来充当内存。
(3)head指令
作用:查看一个文件的前n行,如果不指定n,则默认显示前10行。
语法:#head -n 文件路径 【n 表示数字】
(4)tail指令
作用1:查看一个文件的未n行,如果n不指定默认显示后10行
语法:#tail -n 文件的路径 n 同样表示数字
作用2:可以通过tail指令来查看一个文件的动态变化内容【变化的内容不能是用户手动增加的】
语法:#tail -f 文件路径
该命令一般用于查看系统的日志比较多。
(5)less指令
作用:查看文件,以较少的内容进行输出,按下辅助功能键(数字+回车、空格键+上下方向键)查看更多
语法:#less 需要查看的文件路径
在退出的只需要按下q键即可。
(6)wc指令
作用:统计文件内容信息(包含行数、单词数、字节数)
语法:#wc -l/w/c需要统计的文件路径
-l:表示lines,行数
-w:表示words,单词数 依照空格来判断单词数量
-c:表示bytes,字节数
(7)date指令(重点)
作用:表示操作时间日期(读取、设置)
语法1:#date 输出的形式:2019年 10月 20日 星期天 15:24:26
语法2:#date +%F (等价于#date “+%Y-%m-%d” ) 输出形式:2019-10-20
语法3:#date “+%F %T” 引号表示让“年月日与时分秒”成为一个不可分割的整体
等价操作#date “+%Y-%m-%d %H:%M:%S”
符号的可选值:+(之后) 或者 - (之前)
单位的可选值:day(天)、month(月份)、year(年)
%F:表示完整的年月日
%T:表示完整的时分秒
%Y:表示四位年份
%m:表示两位月份(带前导0)
%d:表示日期(带前导0)
%H:表示小时(带前导0)
%M:表示分钟(带前导0)
%S:表示秒数(带前导0)
(8)cal指令
作用:用来操作日历的
语法1:#cal 等价于 #cal -1 直接输出当前月份的日历
语法2:#cal -3 表示输出上一个月+本月+下个月的日历
语法3:#cal -y 年份 表示输出某一个年份的日历
(9)clear/ctrl + L指令
作用:清除终端中已经存在的命令和结果(信息)。
语法:clear 或者快捷键:ctrl + L
需要注意的是,该命令并不是真的清除了之前的信息,而是把之前的信息的隐藏到了最上面,通过滚动条继续查看以前的信息。
7.高级指令
(1)hostname指令
作用:操作服务器的主机名(读取、设置)
语法1:#hostname 含义:表示输出完整的主机名
语法2:#hostname -f 含义:表示输出当前主机名中的FQDN(全限定域名)
(2)id指令
**作用:查看一个用户的一些基本信息(包含用户id,用户组id,附加组id…),该指令如果不指定用户则默认当前用户。
语法1:#id 默认显示当前执行该命令的用户的基本信息
语法2:#id 用户名 显示指定用户的基本信息
验证上述信息是否正确?
验证用户信息:通过文件/etc/passwd
验证用户组信息:通过文件/etc/group
(3)whoami指令
作用:“我是谁?”显示当前登录的用户名,一般用于shell脚本,用于获取当前操作的用户名方便记录日志。
语法:#whoami
(4)ps -ef指令(重点)
指令:ps
作用:主要是查看服务器的进程信息
选项含义:
-e:等价于“-A”,表示列出全部的进程
-f:显示全部的列(显示全字段)
执行结果:
列的含义:
UID:该进程执行的用户id;
PID:进程id;
PPID:该进程的父级进程id,如果一个程序的父级进程找不到,该程序的进程称之为僵尸进程(parent process ID);
C:Cpu的占用率,其形式是百分数;
STIME:进行的启动时间;
TTY:终端设备,发起该进程的设备识别符号,如果显示“?”则表示该进程并不是由终端设备发起;
TIME:进程的执行时间;
CMD:该进程的名称或者对应的路径;
在ps的结果中过滤出想要查看的进程状态
**#ps -ef|grep **“进程名称”
(5)top指令(重点)
作用:查看服务器的进程占的资源(100%使用)
语法:
进入命令:#top (动态显示)
退出命令:按下q键
输出的结果:
表头含义:
PID:进程id;
USER:该进程对应的用户;
PR:优先级;
VIRT:虚拟内存;
RES:常驻内存;
SHR:共享内存;
计算一个进程实际使用的内存 = 常驻内存(RES)- 共享内存(SHR)
S:表示进程的状态status(sleeping,其中S表示睡眠,R表示运行);
%CPU:表示CPU的占用百分比;
%MEM:表示内存的占用百分比;
TIME+:执行的时间;
COMMAND:进程的名称或者路径;
在运行top的时候,可以按下方便的快捷键:
M:表示将结果按照内存(MEM)从高到低进行降序排列;
P:表示将结果按照CPU使用率从高到低进行降序排列;
1:当服务器拥有多个cpu的时候可以使用“1”快捷键来切换是否展示显示各个cpu的详细信息;
(6)du -sh指令
作用:查看目录的真实大小
语法:#du -sh 目录路径
选项含义:
-s:summaries,只显示汇总的大小
-h:表示以高可读性的形式进行显示
(7)find指令
作用:用于查找文件(其参数有55个之多)
语法:#find 路径范围 选项 选项的值
选项:
-name:按照文档名称进行搜索(支持模糊搜索)
-type:按照文档的类型进行搜索
文档类型:“-”表示文件,“d”表示文件夹
(8)service指令(重点)
作用:用于控制一些软件的服务启动/停止/重启
语法:#service 服务名 start/stop/restart
例如:需要启动本机安装的Apache(网站服务器软件),其服务名httpd
#service httpd start
通过ps命令来检查httpd服务是否启动:
(9)kill指令(重点)
作用:表示杀死进程 (当遇到僵尸进程或者出于某些原因需要关闭进程的时候)
语法:#kill 进程PID (语法需要配合ps一起使用)
与kill命令作用相似但是比kill更加好用的杀死进程的命令:killall
语法:#killall 进程名称
(10)ifconfig指令(重点)
作用:用于操作网卡相关的指令。
简单语法:#ifconfig (获取网卡信息)
Eth0表示Linux中的一个网卡,eth0是其名称。Lo(loop,本地回还网卡,其ip地址一般都是127.0.0.1)也是一个网卡名称。
注意:inet IP就是网卡的ip地址。
(11)reboot指令
作用:重新启动计算机
语法1:#reboot 重启
语法2:#reboot -w 模拟重启,但是不重启(只写关机与开机的日志信息)
(12)shutdown指令
作用:关机 (慎用)
语法1:#shutdown -h now “关机提示”或者 #shutdown -h 15:25 “关机提示”
如果想要取消关机计划的话,则可以按照以下方式去尝试:
①针对于centos7.x之前的版本:ctrl+c
②针对于centos7.x(包含)之后的版本:#shutdown -c
除了shutdown关机以外,还有以下几个关机命令:
#init 0
#halt
#poweroff
(13)uptime指令
作用:输出计算机的持续在线时间(计算机从开机到现在运行的时间)
语法:#uptime
(14)uname指令
作用:获取计算机操作系统相关信息
语法1:#uname 获取操作系统的类型
语法2:#uname -a al表示获取全部的系统信息(类型、全部主机名、内核版本、发布时间、开源计划)
(15)netstat -tnlp指令
作用:查看网络连接状态
语法:#netstat -t/n/l/p
选项说明:
-t:表示只列出tcp协议的连接;
-n:表示将地址从字母组合转化成ip地址,将协议转化成端口号来显示;
-l:表示过滤出“state(状态)”列中其值为LISTEN(监听)的连接;
-p:表示显示发起连接的进程pid和进程名称;
(16)man指令
作用:manual,手册(包含了Linux中全部命令手册,英文)
语法:#man 命令 (退出按下q键)
通过man命令查询cp指令的用法
#man cp
(17)通过命令行工具上传 和下载文件
工具:PSCP.exe(必须通过cmd命令行打开),为了使用方便可以将其放到环境变量目录中
如果不清楚哪些路径是环境变量路径,只需要将其放到C:/Windows目录下即可。
用法:
(下载到win)
a. pscp 选项 用户名@linux主机地址:资源路径 windows本地的地址
(上传到linux)
** b. pscp** 选项 资源路径 用户名@linux主机地址:远程路径
c. pscp 选项 -ls 用户名@linux主机地址 (列出远程路径下结构)
①下载到本地windows
要求将远程linux服务器下的/root/zyn整个目录下载到本地E:\zyn下
pscp -r root@106.54.253.141:/root/zyn E:/zyn
在CMD中输入之后输入密码
验证
②上传文件到linux
将"E:/编程学习资料"上传到云服务器/root/zyn
pscp -r "E:/编程学习资料" root@106.54.253.141:/root/zyn
验证 (文件夹名称出现乱码)