Linux的一些相关知识,Linux 与windows与mac的区别
xxx.xxx.xxx.xxx 四段
格式正确的IP地址为:
第一段1-255,从第二段起0-255
ip地址可以分为外网ip和内网ip,分别对应公网和私网
公网:全世界都可以互相访问的网,比如万维网www
私网/内网/局域网:在某个单元内部(家庭,教师,公司)能够互相访问的网络
服务器一般使用Linux操作系统
32位和64位
32位,232,只能寻址4G的空间,实际大概只有3G 210=1K ,220=1M,230=1G
64位,264
bin:binary——存放二进制文件,可以被运行
dev:device——存放外接设备(磁盘,光盘),不能被直接使用,需要被挂载——#mount
etc:存放配置文件,例如网站解析软件的配置文件,数据库的配置文件,各类插件
home:存放,除roo用户t外其他用户的家目录
mnt:当外接设备需要挂载的时候,需要挂载到/mnt目录下对应目录(必须是挂载到目录)
proc:process——存放Linux运行时的进程
root:该目录是root用户自己的家目录
sbin:super binary——存放可以被执行的二进制文件(必须有超级管理员权限的用户才能执行)
tmp:临时文件,系统运行时候产生的临时文件
usr:用户自己安装的软件——类似windows下的program files
var:存放程序/系统的日志文件的目录
补充个人习惯:
app+:存放下载的软件
data:存放数据库信息
// # + 指令 + [选项 ] +[ 操作对象]
一个指令可以包含多个选项,多个操作对象
用法一:#ls
list——列表,列出当前工作目录下,所有文件和文件夹的名称
用法二:#ls + 路径
列出当指定路径下,所有文件和文件夹的名称
补充:绝对路径和相对路径
./表示当前目录,和不加./直接使用指令是一样的
. . /表示上一级目录
用法三:#ls +选项+路径
列出指定路径下的文件、文件夹名称,并以指定格式进行显示
01: #ls -l 路径
-l表示列表list,以详细列表的形式进行展示
02: #ls -la 路径
-la表示显示所有的文件/文件夹(包含隐藏文件——文件名以.开头)
03:#ls -lh 路径
列出指定路径下的所有文件、文件夹的名称,以列表的形式并且在显示文档的大小时,以可读性较高的形式显示
(h:文件大小带单位了,自动适配合适单位)
一般linux中的目录大小都为4k
用法:无参数,print working diretory 打印当前所在目录
change directory:
格式:#cd 路径
案例1:当前在“/”下,需要使用绝对路径切换到/usr /local ——# cd /usr /local
案例2:快速切换到当前用户的家目录——#cd ~:
make directory
eg.在当前路径下创建目录 wenjian1——#mkdir wenjian1(验证:#ls)
(关于ls列出的文件:蓝色表示文件夹,黑色表示文件,绿色文件表示拥有所有权限的文件)
eg.在指定路径下创建目录wenjian2——#mkdir /root/yunwen
直接$ mkdir yunwei/a/b/c/xiaoli 不能创建多级目录,报错No such file or directory
加上-p 没问题,可以用ls验证当前目录下是否有下一级目录
(说明:在命令提示符中,# 代表有 root权限,$ 代表普通用户)
eg.在当前路径创建文件Linux.txt——$ touch Linux.txt
copy:复制文件,文件夹到指定位置
eg.#cp Linux.txt /home/root1214/yunwei
特别:
windows中复制文件时不能同时改名,只能后面再重命名。Linux中cp命令是可以复制时同时改名的,但不建议这么做
当使用cp命令进行文件夹多级复制时需要添加选项 -r,否则文件夹将被忽略复制
(-r的意思是递归复制,recursive递归的,文件夹类型下面可能还有文件夹,此处可以理解为递归)
与上面mkdir命令的创建多级文件夹相区别mkdir是-p,cp是 -r
move:移动文档到新的位置(原始文件不在了)
格式:#mv 需要移动的文档 目标位置
eg.使用mv命令来移动一个文件或文件夹(此处移动多级文件夹时可不用加-r)
remove
格式:#rm 选项 需要移除的文档(可同时删除多个)
选项:
删除一个目录下有公共特性的文档——可以用通配符*
eg.删除都以Linux开头的文件
#rm -f Linux*
vim是一款文本编辑器
作用:打开文件(文件可以不存在,自动新建)
格式: vim 文件路径
(不修改的退出文件的方法:输入:,然后输入q,回车)
(修改后保存退出文件的方法:输入:,然后输入wq,回车)
(修改后放弃修改退出文件的方法:输入:,然后输入q!,回车)
一般命令的输出显示在终端窗口,当需要保存命令结果到指定文件进行后续的分析统计时,需要使用输出重定向技术。
eg.保存ls -la的执行结果到当前目录下的ls.txt(文件不存在会自动生成)——#ls -la > ls.txt
用vim打开检测 ——#vim ls.txt(vim打开文件时,最后一行会显示文件行数)
文件中输入:set nu可以显示行号
(和vim区别:vim打开文件后会进入文件,需要使用固定方法退出文件)
————vim适合修改编辑文件
(cat是在命令行里直接打开文件,展示一下而已,并没有进入文件,不需要退出)
————cat适合仅查看文件内容
格式:#cat +文件目录
格式:#cat 文件路径1 文件路径2 … 文件路径n > 新文件路径
eg.#cat Linux.txt ls.txt > today.txt
格式:#df -h(不加-h没有单位,默认字节,加-h以合适的单位显示)
格式:
free (单位:无,默认字节)
free -m (单位:M)—— 常用
free -g (单位:G)
free -h(单位:自动)
(swap:缓存空间,当系统真实内存不够用时可以临时使用磁盘空间(外存)来充当内存,但是速度慢)
格式:#head -n 文件路径
格式1:#tail -n 文件路径 (-1表示最后一行)
格式2:#tail -f 文件路径 —— 查看一个文件的动态变化
(变化内容不能是在命令行外手动添加的,需要启动另一个命令行对该文件操作,可以看到变化)
#tail -f 一般是用于查看系统日志,这个文件经历了哪些操作(类似历史记录)
补充:查看某条指令的操作手册:#man+指令
作用:查看文件
(以较简洁的方式进行输出内容,只显示一页,按下辅助功能键查看更多信息,按q退出)
辅助功能键:
格式:#less + 文件路径
作用:统计文件内容信息
(类似word左下角统计字数什么,行数,单词数,字节数,需要配合管道使用)
格式:
#wc 文件路径 ——行数,单词数,字节数
#wc -l 文件路径 ——行数(常用)
#wc -w 文件路径——单词数(依照空格来区分识别单词,并不实用)
#wc -c 文件路径——字节数
作用:读取和设置时间(一般不用设置,直接同步网络)
补充:更改时区——使用timedatectl命令
# timedatectl set-timezone Asia/Shanghai #设置亚洲上海时区
格式2:#date +%F(或#date “+%Y-%M-%d”)
输出:2021-12-14
格式3:#date “+%F %T”(或#date “+%Y-%m%d %H:%M:%S”)
输出:2021-12-14 00:32:42
格式4:获取指定时间间隔前后的时间(用于备份)
#date -d “-1 day” “+%Y-%m-%d %H:%M:%S” ——前一天的这个时间(day可以改为,month,year)
上面的+号不是连接的意思,是格式中必须有的,并且后面字母的大小写一定要规范,详情可以#date --help
备注:
%F:表示完整的年月日,等同%Y%m%d
%T:表示完整的时分秒,等同%H%M%S
%Y:四位年份
%m:两位月份(带前导0)
%d:两位日期(带前导0)
%H:两位小时(带前导0)
%M:两位分钟(带前导0)
%S:两位秒数(带前导0)
calendar
格式1:#cal——输出当前所在月份的日历(等同于#cal -1)
格式2:#cal -3 ——输出最近三个月的日历(上个月 本月 下个月)
格式3:#cal -y 年份——输出某一年份的日历
作用:清除终端中已经存的命令和结果(信息)
(注意:该命令并没有清除所有信息,只是起到了一个翻页效果)
管道的符号:一根竖线“|”
管道的作用:“过滤“,”特殊用法“,”扩展处理“
格式:管道不能单独使用,必须配合前面的其他指令,主要是辅助作用
”# ls / |grep y“,观察这个指令——意思是:从ls列出的信息中筛选出带有y的
斜杠/表示根目录
管道符|作为分界线,前面指令的输出作为后面指令的输入
后面的指令指明了筛选要求,这样就起到了过滤作用
grep :(缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行。
eg.统计某个目录下的文档的总个数:管道+wc命令
#ls / | wc -l
作用:主机名(读取,临时修改)
格式1:#hostname ——输出完整的主机名
格式2:#hostname -f——输出当前主机名中的FQDN(全限定域名-同时带有主机名和域名的名称)
作用:查看一个用户的一些基本信息(包含用户id,用户组id,附加组id)
[root1214@localhost ~]$ id
uid=1000(root1214) gid=1000(root1214) 组=1000(root1214) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
验证上述信息:
(通过cat命令来查看用户信息相关的配置文件 passwd和group)
查看用户信息:通过文件/etc/passwd
查看用户组信息:通过文件/etc/group
(中间可以不带空格whoami,或者直接who,有一点点区别,瞅瞅)
(pts是伪终端或虚拟终端)
who:显示当前真正登录系统中的用户(也就是最先登陆是什么名字就显示什么,不会显示su切换的登陆者)
who am i: 同上吧…
whoami: 显示当前正在使用主机的用户的用户名(仅用户名)
作用:一般用于shell脚本中,收集日志(方便查看是哪个用户名做了哪些更改)
作用:主要是查看服务器当前运行的进程信息
-e:表示列出全部的进程
-f:列出所有的列(显示全字段)
UID:用户id
PID:进程id——【最为重要】
PPID:该进程的父进程id(如果一个程序的父级进程找不到,该进程称之为僵尸进程,需要手动结束,kill指令,可以再配合管道筛选)
C:cpu的占用率(单位百分比)
STIME:启动时间
TTY:发起该进程的终端的设备号
(显示问号的,则不是终端发起的)
TIME:进程已运行时间
CMD:该进程名称(或对应的路径)
案列:
比如在日常工作中,我们要查看某个服务的端口号
# ps -ef|grep gnome-panel
(如果没有相关的,也至少会匹配到一个,也就是当前这条指令$ ps -ef|grep gnome-panel所产生的进程,可以看到设备终端号为pts/0)
输出结果:
root1214 5373 3104 0 17:46 pts/0 00:00:00 grep --color=auto gnome-panel
# netstat -tnlp| grep 5373
作用:动态展示服务器正在运行进程信息
格式:
PID:进程id
USER:进程对应的用户
PR:进程优先级
NI:用户进程空间内改变过优先级的进程占用cpu的百分比(下来再查一下)
VIRT:虚拟内存——申请的
RES:常驻内存——实际使用的
SHR:共享内存——原进程所依赖的其他系统组件所消耗的内存(算在进程的常驻里边了,但实际不是该进程所消耗的)
SHR包含于RES,一定小于RES
计算一个进程实际使用的内存=常驻内存RES - 共享内存SHR
S:表示进程状态,其中S表示sleep,R表示run
%CPU:cpu占用百分比
%MEM:内存占用百分比
TIME+:执行的时间
COMMAND:进程的名称或者路径
此处可以使用的快捷键(运行top时)
M——将内存按照内存MEM从高到低进行降序排序(大写)
P——按照cpu占用情况降序
1——当服务器拥有多个cpu时,使用1来切换是否展示各个cpu的详细信息
作用:查看目录的真实大小
-s:(summaries)只显示汇总的大小
-h:以较高可读性的形式进项显示
格式:#du -sh 路径
(不加路径,显示当前目录的真实大小)
参数比较多,用时候查manual
格式:#find 路径 选项 文件名
选项:
-name:按照文档名称进行搜索(支持模糊搜索)
-type + 类型:按照文档类型搜索
(f表示文件,d表示文件夹,l表示链接文件)
案例1:使用find来搜索根目录下的文件:httpd.conf ——#find / -name httpd.conf
案例2:搜索ect目录下所有的conf 后缀的文件——$ find /etc -name *.conf
(如果需要统计数量,就加上管道,再加wc -l命令——$ find /etc -name *.conf | wc -l)
案例3:搜索/etc/sane.d/目录下所有的文件——$ find /etc/sane.d/ -type f
(find指令是可以搜出隐藏文件的)
作用:用于控制一些软件服务的启动、停止、重启
语法:#service 服务名 start/stop/restart
作用:表示杀死进程
格式:
#kill + PID
#killall + 进程名称
kill不带参数下,kill 发送SIGTERM(15)信号给进程,告诉进程,你需要被关闭,请自行停止运行并退出。
kill -9 发送SIGKILL信号给进程,告诉进程,你被终结了,请立刻退出。
TERM(或数字9)表示“无条件终止”;
因此 kill - 9 表示强制杀死该进程;与SIGTERM相比,这个信号不能被捕获或忽略,同时接收这个信号的进程在收到这个信号时不能执行任何清理。
作用:重新启动计算机
语法1:#reboot
语法2:#reboot -w(模拟重启,实际不重启——只是在日志文件中记录了开关机信息)
作用:关机
(远程连接时慎用,可能需要物理开机)
语法1:
立即关机#shutdown -h now
定时关机#shotdown -h 15:25 “关机提示信息”
取消关机:
除了shutdown指令关机,还有以下几个关机命令
作用:输出计算机的运行时长
[root@localhost ~]# uptime
13:55:05 up 13 min, 2 users, load average: 0.00, 0.09, 0.16
当前时间 ,运行时长,用户数量,平均负载:最近1分钟,5分钟,15分钟
作用:获取操作系统相关信息
语法1:#uname——获取当前操作系统类型
语法2:#uname -a——获取完整信息(常用于获取系统内核版本信息)
#uname -a
Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
当前系统+ 完整主机名 +系统内核版本 +系统发行时间 +GNU计划(开源)
作用:查看网络的连接状态
语法:#netstat -tnlp
-t:表示只列出tcp协议的连接
-n:表示将ip地址,端口名,以对应数字显示(numerical)
-l:表示过滤出state列(状态)中,状态值为LISTEN(正在监听)的连接
-p:显示对应连接的进程PID和进程名称
常用默认端口号
80-apache(web服务器软件)
22-sshd
3306-数据库
manual——手册
作用:展示Linux所有命令的相关信息
语法:#man 命令 (按q退出)
补充:
在命令行中快速清空已输入信息的光标前后内容的快捷键:
前:ctrl + u
后:ctrl + k