Linux 基础之常见基本指令

Linux

服务器概念

就是系统性能非常好的电脑~~

minix3 – 一个教授封装最初的一个系统后用于教学 后来因为有bug改进后就变成了今天的Linux


硬件        内核(承上启下,操作系统)        软件 (无法直接操作硬件)
    
内存管理 , 进程调度 , 文件管理等    

Linux 基础之常见基本指令_第1张图片

Linux 基础之常见基本指令_第2张图片


Linux 基础之常见基本指令_第3张图片

工作细节

环境分类:

​ 开发环境 :

​ 测试环境:

生产环境:

回归测试 : 从头到尾再测试一遍

虚拟机

Linux 基础之常见基本指令_第4张图片

-----------------------------------

Linxu结构目录

Linxu没有磁盘的说话 , 根目录就是 / ,想当于window里面的此电脑操作

1. /  根
每一个文件和目录从根目录开始。
只有root用户具有该目录下的写权限。请注意,/root是root用户的主目录,这与/不一样
--------------------------------------------------------
2. /bin中 用户二进制文件
包含二进制可执行文件。
在单用户模式下,你需要使用的常见Linux命令都位于此目录下。系统的所有用户使用的命令都设在这里。
-------------------------------------------------------
3. /sbin目录 系统二进制文件,比较铭感重要的
就像/bin,/sbin同样也包含二进制可执行文件。
但是,在这个目录下的linux命令通常由系统管理员使用,对系统进行维护。例如:iptables、reboot、fdisk、ifconfig、swapon命令
-------------------------------------------------------
4. /etc  配置文件
包含所有程序所需的配置文件。
也包含了用于启动/停止单个程序的启动和关闭shell脚本。例如:/etc/resolv.conf、/etc/logrotate.conf

hosts:设备名称(或域名)到ip地址的解析,相当于本地存在的dns功能。
--------------------------------------------------------
5. /user  用户程序
包含设备文件。
这些包括终端设备、USB或连接到系统的任何设备。例如:/dev/tty1、/dev/usbmon0
---------------------------------------------------------
6. /home HOME目录
所有用户用home目录来存储他们的个人档案。
例如:/home/john、/home/nikita

ssh (安全外壳协议):

ssh为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。

SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

命令基本格式

命令提示符

[root@localhost ~]#

其中:
	root			当前登陆用户
	localhost	主机名
	  ~		当前所在目录(家目录) 
			如果是root代表/root;
			如果是普通用户user1代表/home/user1
	  #		超级用户的提示符#
			普通用户提示符$		

查询目录中的内容: ls

ls [选项] [文件或目录]
选项:
	-a	显示所有文件,包括隐藏文件
	-l	显示详细信息
	-h	人性化显示文件大小

文件处理命令 : pwd

查询所在目录位置 : pwd 
//英文全拼 : print working directory

切换所在目录 :

cd [目录]
	命令英文原意: change directory

简化操作:
cd ~   :切换到用户目录(家目录)
cd     :切换到用户目录
cd -   :切换到上一个访问目录
cd ..  :切换到上一级目录
cd .   :切换到当前目录 

创建文件: touch

touch 文件名	:创建文件

创建目录 : makdir

//make directories
-p 递归创建 多级文件夹
mkdir  目录名	:创建目录
mkdir -p xx/yyy/zz	:创建多级目录

删除空目录 : rmdir

remove empty directory

删除文件或者目录: rm -rf

//remove
rm -rf [文件或目录]
命令英文原意:remove
选项:
	-r		递归删除目录
	-f		强制

rm -r 目录	:递归文件夹 带提示
rm -f 文件	:删除文件
rm -rf 文件/文件夹	:递归删除,无提示

禁止: rm -rf  /*  删除所有文件

复制命令 : cp

cp [选项] [原文件或目录] [目标目录]
命令英文原意:copy
选项:
	-r		复制目录

cp 源文件 备份文件	:备份文件
cp -r 源目录 目标目录

剪切或改名命令: MV

mv [原文件或目录] [目标目录]
命令英文原意:move

mv 文源文件件 目标文件目录	:剪切
mv 源文件 不存在的文件	:重命名
mv 源文件 文件夹/不存在的文件	:剪切重命名

命令搜索命令

whereis which PATH环境变量

whereis 命令名
#搜索命令所在路径及帮助文档所在位置
选项:
	-b		只查找可执行文件
	-m	值查找帮助文件
whereis 命令名	:搜索命令所在来的路径与帮助文档所在的位置
-----------------------------------------------------
which 命令名
#搜索命令所在路径及别名
which 命令名:搜索命令所在路径与别名
------------------------------------------------------\
PATH环境变量:定义的是系统搜索命令的路径
相当于window下的path
echo $PATH  : 查看环境变量

文件搜索命令

find [搜索范围] [搜索条件]
示例:
	find / -name install.log
	#避免大范围搜索,会非常耗费系统资源
	#find是在系统当中搜索符合条件的文件名.如果需要匹配,使用通配符匹配,通配符是完全匹配
	
	find /root -iname install.log   #按名字查询: 不区分大小写
	
	find /root -user root   #按照所有者搜索
	
	find /root -nouser  #查找没有所有者的文件
	

Linux中的通配符

按时间查询

按文件大小查询

文件搜索命令:find

*		匹配任意内容
?		匹配任意一个字符
[]		匹配任意一个中括号内的字符
-----------------------------------------------------
find /var/log -mtime +10
#查找10天前修改的文件

-10		10天内修改文件
10			10天当天修改的文件
+10		10天前修改的文件

atime	文件访问时间
ctime		改变文件属性时间
mtime	修改文件时间
---------------------------------------------------
find  / -size 25k
#查找文件大小是25KB的文件,注意k是小写的.

-25k		小于25KB的文件
25k		等于25KB的文件
+25k		大于25KB的文件

find / -size 25M
#查找文件大小是25MB的文件,注意M是大写的.
 --------------------------------------------------
 find /etc -size +20k -a -size -50k
#查找/etc/目录下,大于20KB并且小于50KB的文件

-a		and		逻辑与,两个条件都满足
-o		or			逻辑或,两个条件满足一个即可

find /etc -size +20k -a -size -50k -exec ls -lh {} \;
#查找/etc/目录下,大于20KB并且小于50KB的文件,并显示详细信息
#-exec {} \;这是固定格式

字符串搜索命令:grep

grep [选项] 字符串 文件名
#在文件当中匹配符合条件的字符串
选项:
	-i	忽略大小写
	-v	排除指定字符串

//cat anaconda-ks.cfg  查看内容

//grep timezone anaconda-ks.cfg 

经典使用:
ps(进程) -ef |grep java

find命令:在系统中搜索符合条件的文件名.

grep命令:在文件中搜索符合条件的字符串.

帮助命令 man / help

man ls
#查看ls的帮助

man 命令名		:查看帮助命令  f     b 键翻页  q退出
命令 --help #获取命令选项的帮助
//实例:ls --help

命令 --help		:简洁版帮助

但是不适用内部命令,如cd:
help cd

命令特殊时,使用
help 命令  比如: help cd

压缩与解压命令

zip格式

压缩 : 
zip 压缩文件名 原文件    #压缩文件

zip -r 压缩文件名 原文件

//先安装zip 软件
//yum install zip  
//yum install -y zip  : 不带确认的安装 
//卸载: yum remove 

zip 压缩文件名  原文件	:压缩文件
zip a.zip a.txt
zip -r 压缩文件名  原文件夹	:递归要是文件夹 【如果不指定递归压缩,仅仅是压缩文件夹】
(特别留意 -r 操作  不然只是压缩一个空文件)
zip -r bb.zip bb

-----------------------------------------------------
unzip 压缩文件
#解压缩.zip文件

unzip 压缩文件名	;解压

.tar.ge格式

其实.tar.gz格式是先打包为tar格式,在压缩为.gz格式

打包命令:
tar -cvf 打包文件名 源文件
选项:
	-c		打包
	-v		显示过程
	-f		指定打包后的文件名

 tar -cvf learn.tar learn

解打包命令:
tar -xvf 打包文件名
选项:
	-x		解打包
// 压缩 :
tar -zcvf 压缩包名.tar.gz 源文件
选项:
	-z		压缩为.tar.gz格式

tar -zcvf learn.tar.gz learn

---------------------------------------------
//解压
tar -zxvf 压缩包名.tar.gz
选项:
	-x		解压缩.tar.gz格式
 
#加上-C表示解压到指定的目录
tar -zxvf 压缩包名.tar.gz -C 指定目录

tar -zxvf learn.tar.gz  -C  ./

关机重启命令

shutdown命令

shutdown [选项] 时间
选项:
	-c		取消前一个关机命令
	-h		关机
	-r		重启

//使用shutdown会在关机的时候帮我们保存数据

shutdown -c	:取消上一个关机命令
//shutdown -h 时间	:多少时间后关机
//shutdown -h now		:马上关机
//shutdown -f		:重启

退出登录命令 logout

其他命令

查看用户登录信息

//  w + 用户名	
命令输出:
USER			登陆的用户名
TTY			登陆终端
FROM		从哪个IP地址登陆
LOGIN@	登陆时间
IDLE			用户闲置时间
JCPU			指的是和该终端连接的所有进程占用时间.这个事件并不包括去后台作业的时间,但却包括当前正在运行的后台作业所占用时间;
PCPU			是指当前进程所占用的时间
WHAT		当前正在运行的命令
//磁盘使用情况 df 
df:用于显示磁盘的使用情况
df -h: 格式化显示输出磁盘使用情况
-----------------------------------------

//查看任务进程
第三行:cpu状态
6.7% us — 用户空间占用CPU的百分比。
0.4% sy — 内核空间占用CPU的百分比。
0.0% ni — 改变过优先级的进程占用CPU的百分比
92.9% id — 空闲CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
0.0% si — 软中断(Software Interrupts)占用CPU的百分比

第四行:内存状态
8306544k total — 物理内存总量(8GB)
7775876k used — 使用中的内存总量(7.7GB)
530668k free — 空闲内存总量(530M)
79236k buffers — 缓存的内存量 (79M)
------------------------------------------------

//查看内存占用
total:内存总数;
used:已经使用的内存数;
free:空闲的内存数;
buffers Buffer:缓存内存数;
cached Page:缓存内存数。
----------------------------------------------
//查看操作历史
history

文件查看命令

// cat
整个文件的内容显示出来
--------------------------------------
// tail 
默认在屏幕上显示指定文件的末尾10行
参数:
	-f  显示文件最新追加的内容。
	-行数   在屏幕上显示指定文件的末尾参数设置的行数

vi编辑器

编辑器的三种模式

三种模式:
编辑模式(命令模式) :所有的机键动作都会理解为编辑整个文档的操作,默认为编辑模式
输入模式:大部分机键动作都会理解为输入的字符
末行模式:在末行模式,输入很多文件管理命令

模式之间的相互转换: 
编辑-->输入
	i:在光标所在字符前开始插入
	a:在光标所在字符后开始插入
	o:在光标所在行的下面另起一新行插入
	s:删除光标所在的字符并开始插入
	-----------------------------------------
	I:在光标所在行的行首开始插入 如果行首有空格则在空格之后插入
	A:在光标所在你行的行尾开始插入
	O:在光标所在行的上面另起一行开始插入
	S:删除光标所在行并开始插入

输入模式-->编辑模式
	ESC(键盘左上方的按键)

编辑模式--->末行模式
: 
末行模式:-->编辑模式
	ESC(键盘左上方的按键)(一次或者多次)	

打开和关闭文件

打开文件
vi  /path/to/file

关闭文件
在末行模式下
wq: 保存退出
q!: 退出不保存

删除命令

dd: 删除光标所在行 (编辑模式)
3dd:从光标行开始删除3(编辑模式)
: 1,4d 删除第一行到第四行(末行模式)

复制命令

yy 复制光标所在行 (编辑模式)
2yy 从光标行开始复制2(编辑模式)
p: 粘贴命令

查找和替换

文件的查找
/parttern 从前往后查找
?parttern 从后往前查找
n:  下一个匹配的字符串
N: 上一个匹配的字符串
文本的替换(末行模式)
startNum,endNums/partter/string/gi
g:全局替换
i:忽略大小写
%s/f/F/gi
:.,$s/F/f/gi

/关键字                 按n找下一个

set number        设置行号    
或者 
set nu

取消行号
set nu!

权限管理

用户管理

计算资源:(一切皆文件)
权限:定义资源或服务的访问能力,称之为权限
定义某一个特定的人资源或者服务的访问能力, 用户
定义一类用户具有访问某个资源或服务的能力. 用户组(存放一些列用户的容器),同时用户组还拥有具有访问某个资源的权限
定义一个资源的权限: 
	① 用户具有该资源的权限(文件所有者,属主)
	② 用户组具有该资源的权限(属组)
	③ 其他用户(既不是属主,也不是属组)

文件权限:
 r, 可读 可以执行类似cat命令的操作
w, 可写 可以编辑或者删除此文件
x  可执行 
----------------------------------------------------------
//useradd创建用户 :useradd [用户名]
创建用户并分配一个组:useradd -G [组名] [用户名] 
查看系统用户:cat /etc/passwd
用户的gid,linux的用户都会有两个ID,一个是用户uid,一个是用户组id,
-----------------------------------------------------------
//groupadd 查看系统用户组:cat /etc/group
------------------------------------------------------------
//usermod 修改用户组属性
usermod -G [组名] [用户名]
------------------------------------------------------------
//userdel  删除用户:
-f:强制删除用户,即使用户已登录 
-r:删除与用户相关的所有文件。
-----------------------------------------------------------
//passwd 用户名
切换用户: su 用户名

文件基本权限

文件权限解释

-rw-r--r--- 文件类型(- 文件 d 目录 I 软链接文件)
	rw-			r--				r--
  u所有者	  	  g所属组		   o其他人
	
	r读	w写	x执行

Linux 基础之常见基本指令_第5张图片


chmod命令

chmod [选项] 模式 文件名
	选项
		-R		递归
	模式
chmod [guoa] [+-=] [rwx]  //u  user  o other a all
chmod u+x 文件	
chmod u+x,o+w aa.txt

修改权限的方式

修改权限的方式:
chmod u+x 文件
#给当前用户添加指定文件的x执行权限
chmod g+w,o+w 文件
#给该文件用户组合其他人添加指定文件的w写的权限
chmod a=rwx 文件
#给该文件的当前用户,当前组,其他人 添加rwx可读可写可执行的权限

权限的数字表示

权限的数字表示
r		4
w		2
x		1

111--->7  rwx
110--->6  rw-
100--->4  r--

示例:
rwxr-xr-x
  7	  5	  5

chmod 755 文件

其他权限命令

修改文件的所有者

chown 用户名 文件名

修改文件的所属组

chgrp 组名 文件名

sudo权限

root把本来只能超级用户执行的命令赋予普通用户执行.
sudo的操作对象是系统命令

//visudo
#实际修改的是/etc/sudoers文件

root ALL=(ALL) ALL
#用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
%wheel ALL=(ALL) ALL
#%组名 被管理注解的地址=(可使用身份) 授权命令(绝对路径)

// 谁 在什么地方 可使用什么身份 被授予的什么权利
1.dafei ALL = (ALL)  /usr/sbin/shutdown (复制放在visudo文件内 root 后面 )

2.sudo shutdown -h  //更新 告诉这个命令是被授权的命令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3gPWLy4O-1598764876675)(C:\Users\白米白9999\AppData\Roaming\Typora\typora-user-images\1598417129667.png)]


Linux 基础之常见基本指令_第6张图片

系统服务管理

systemctl是CentOS7的服务管理工具中主要的工具
启动服务:systemctl start <服务名>
关闭服务:systemctl stop <服务名>
重启服务:systemctl restart <服务名>
查看服务状态:systemctl status <服务名>
添加开机启动项:systemctl enable <服务名>
禁止开机启动项:systemctl disable <服务名>
查看开机启动项:systemctl list-unit-files

进程查看

用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。


ps -ef 显示出的结果:
    1.UID       用户ID
    2.PID        进程ID
    3.PPID      父进程ID
    4.C           CPU占用率
    5.STIME     开始时间
    6.TTY         开始此进程的TTY----终端设备
    7.TIME       此进程运行的总时间
    8.CMD       命令名
ps -ef | grep 进程名

Linux 基础之常见基本指令_第7张图片


杀死进程

kill -9 pid(进程id) 

网络管理

网络的基本概念
		1)ip地址:在网络通信中主机的标识符(好比手机号码)
		//网卡 进行数据转换的一个硬件 
		2)mac地址:网卡硬件的身份证号码 ;主机的物理网卡的唯一标识符(好比身份证号码),
		3)子网掩码:用于区分主机的IP地址中的网络地址和主机地址,并由此确定该主机的IP地址的网段
		4)网关:就是一个网络中的主机连接到另一个网络的主机的关口//硬件.软件,协议处理 ,软件 :协议转换
		5)DNS:域名解析服务器,把域名解析成对应的IP地址 
		//将用户输入的域名转换成ip ,DNS服务器,有2种 ,一种本地DNS服务器,一种远程DNS服务器
		C:\Windows\System32\drivers\etc\hosts
		//用户在浏览器中输入地址后 www.baidu.com ,浏览器先从本地hosts(文件),(本地DNS服务器)中查找www.baidu.com 这个域名对应的ip
		//如果能找到直接通过这个ip访问
		//如果找不到,沿着网线找最近的远程DNS服务器,然后解析DNS服务器缓存域名ip转换表

Linux 基础之常见基本指令_第8张图片
Linux 基础之常见基本指令_第9张图片

ifcfg-eth解释

文件 /etc/sysconfig/network-scripts/ifcfg-eth0在/etc/sysconfig/network-scripts在这个目录下面,存放的是网络接口(网卡)的脚本文件(控制文件)
ifcfg-eth0是默认的第一个网络接口,
如果机器中有多网络接口,那么名字就将依此类推ifcfg-eth1,ifcfg-eth2,ifcfg-eth3......(这里面的文件是相当重要的,涉及到网络能否正常工作)。

TYPE=Ethernet #网卡类型
DEVICE=eth0 #网卡接口名称
ONBOOT=yes #系统启动时是否自动加载
BOOTPROTO=static #启用地址协议 --static:静态协议 --bootp协议 --dhcp协议
IPADDR=192.168.1.11 #网卡IP地址
NETMASK=255.255.255.0 #网卡网络地址
GATEWAY=192.168.1.1 #网卡网关地址
DNS1=8.8.8.8 #网卡DNS地址
BROADCAST=192.168.1.255 #网卡广播地址 

防火墙

centos7的防火墙程序服务名为:firewalld

防火墙配置命令:firewall-cmd
防火墙帮助:
fireweall-cmd --help

查看防火墙状态:
firewall-cmd --state

查看所有打开的端口:
firewall-cmd --zone=public --list-ports

开启端口:
firewall-cmd --zone=public --add-port=端口号/tcp --permanent(--permanent参数为永久生效,不加则重启后失效)

更新防火墙规则:
firewall-cmd --reload

删除端口:
firewall-cmd --zone=public --remove-port=端口号/tcp --permanent

关闭防火墙	
systemctl  stop firewalld
systemctl disable firewalld

Linux的应用

软件的安装

软件包管理器: 软件的安装,卸载,查询等功能
后端工具: rpm, dpt
// rpm:RedHat package Management 
		是Linux界的软件管理的一个工业标准
        dpt: debian的一个包管理器
 依赖管理:
    X --->Y  ---Z
    X --->Y ---X
    
//前端工具: yum: 基于后端工具的软件包的管理,主要是解决rpm安装软件的时候的依赖的解决
			 apt-get

rpm

rpm 常用命令
安装一个包 
# rpm -ivh <包名>
rpm -ivh  --nodeps  <包名>  : 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。 
--force 即使覆盖属于其它包的文件也强迫安装 

查询一个包是否被安装 
# rpm -q <软件名>

得到被安装的包的信息 
# rpm -qi < 软件名> 

列出该包中有哪些文件 
# rpm -ql < 软件名> 

列出服务器上的一个文件或目录属于哪一个RPM包 
#rpm -qf <文件或目录名>

列出所有被安装的rpm package 
# rpm -qa 

卸载一个包 
# rpm -e <软件名>


有安装包,知道依赖关系使用rpm

ewall-cmd --zone=public --add-port=端口号/tcp --permanent(–permanent参数为永久生效,不加则重启后失效)

更新防火墙规则:
firewall-cmd --reload

删除端口:
firewall-cmd --zone=public --remove-port=端口号/tcp --permanent

关闭防火墙
systemctl stop firewalld
systemctl disable firewalld




## Linux的应用

## 软件的安装

```java
软件包管理器: 软件的安装,卸载,查询等功能
后端工具: rpm, dpt
// rpm:RedHat package Management 
		是Linux界的软件管理的一个工业标准
        dpt: debian的一个包管理器
 依赖管理:
    X --->Y  ---Z
    X --->Y ---X
    
//前端工具: yum: 基于后端工具的软件包的管理,主要是解决rpm安装软件的时候的依赖的解决
			 apt-get

rpm

rpm 常用命令
安装一个包 
# rpm -ivh <包名>
rpm -ivh  --nodeps  <包名>  : 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。 
--force 即使覆盖属于其它包的文件也强迫安装 

查询一个包是否被安装 
# rpm -q <软件名>

得到被安装的包的信息 
# rpm -qi < 软件名> 

列出该包中有哪些文件 
# rpm -ql < 软件名> 

列出服务器上的一个文件或目录属于哪一个RPM包 
#rpm -qf <文件或目录名>

列出所有被安装的rpm package 
# rpm -qa 

卸载一个包 
# rpm -e <软件名>


有安装包,知道依赖关系使用rpm

你可能感兴趣的:(Linux,linux,网络,操作系统)