一、Linux系统的相关知识
1.Linux中根目录下所有文件夹的含义和用途
目录 | 功能 |
/bin | 存放可执行文件 |
/dev |
存放设备文件 (如:网卡、CPU) |
/media | 存放可移除设备文件 (如:U盘、CD/DVD、VMTools) |
/opt | 存放第三方软件的默认位置 |
/tmp | 存放临时文件 (如:日志文件) |
/root | root用户的家目录,主文件夹 |
/home | 普通用户的家目录,文件夹的命名是以用户的名字来命名的 |
/etc | 存放配置文件 |
/usr | 存放操作系统软件资源 |
/var | 存放常态性变动的文件 (如:创建网站的网站源码) |
/proc | 存放虚拟文件系统 |
2.[root@localhost ~]#含义:
- root 当前登录的用户
- localhost 计算机名字
- ~ 当前工作位置,家目录
- - 前一个工作目录 如:当前工作目录/etc cd /var cd - 就进入了/etc
- # 当前用户是root 若为$ 当前用户是普通用户
二、常用的Linux命令(以下命令均在centos上演示)
ls 查看当前文件夹下或其他文件夹下的文件列表或文件夹列表
ls -l 查看详细信息的列表
ls -al或ls -a 查看所有文件列表的详细信息,可查看隐藏文件,隐藏文件前加.
1 ls -d 只看当前目录 2 ls -dl 目录的信息 3 ls -dl /temp/ 查看目录temp的详细信息
1 cd 切换目录 2 cd ./当前目录 3 cd ../上一级目录 4 cd /home 进入普通用户家目录 5 cd ~ = cd = cd /root 进入root家目录 6 cd /home/test 进入tast的家目录
1 clear = ctrl + L 清屏 2 touch index.html 创建文件 3 echo ‘hello word!’ >index.html 写数据 4 cat index.html 查看文件,将文件从第一行开始连续的将内容输出在屏幕上 5 cat -n 文件名 读文件时,连行号一起输出
- 注:tab补全功能,也可检查拼写是否正确
1 more index.html 或 less index.html 查看文件,读文件时显示一部分 2 more 文件名(显示百分比,按Q键退出,回车一行出一行) 3 less 文件名(不显示百分比,按Q键退出,回车一行出一行)
tac index.html 读文件,将文件从最后一行开始倒过来将内容数据输出到屏幕上(与cat正好相反)
1 head 文件名 默认显示前10行 2 head -n 7 文件名 显示前7行
1 tail 文件名 默认显示后10行 2 tail -n 7 读取后10行
1 mkdir test 创建文件夹 2 rmdir test 删除文件夹
1 rm index.html 删除文件 2 rm -r test 删除文件夹 3 rm -rf test强制删除文件,不会询问
cp 源文件 目的文件 拷贝文件
注:这里qqq.txt的路径是 ./ttt/qqq.txt
1 mv 源文件 目的文件 移动文件 2 mv 原文件名 更改的文件名 修改文件名字
1 su 用户名 切换用户 2 whoami 查看当前用户是谁 3 id 查看当前用户的UID 注:UID = 1000 表示普通用户 UID = 0 表示root 4 hostname 查看计算机名
- 注:Linux对大小写敏感
1 service firewalld status 查看防火墙运行状态 2 service firewalld stop 关闭防火墙
1 curl 来获取网页,可以使用输出重定向来下载文件 2 wget 下载文件 也可下载工具 3 firefox www.baidu.com 用火狐浏览器访问百度,会直接弹出界面 4 nslookup 查看DNS(DNS就是把域名解析为IP)信息
- 若访问失败,找网卡配置文件,/etc/sysconfig/network-scripts/ifcfg-ens33(我这里是ens33,是通过在终端ifconfig查看的),vim 先找到配置文件,/etc/sysconfig/network-scripts/ifcfg-ens33,在文件中 找到 ONBOOT=NO 改成 ONBOOT=yes,保存退出,重启网络service network restart(这里先讲解决方法具体命令在下面详细解释)
- 查看百度源代码view-source:https://baidu.com
- F12 或者 在空白处右键查看源代码
- curl https://baidu.com/index.html >./baidu.index.html 将百度的源代码打印下来,并且重定向到当前目录下的baidu.index.html文件中
- wget https://baidu.com/ 下载百度源码
三、查找文件的常用命令
1.find
1 find 路径 [-name|-type|-time|-size] 2 -name 找指定文件名的文件 3 -type 找指定文件类型的文件 4 -time(小时、分钟、秒) 找指定时间内或者外修改过的文件 5 -size 找指定大小的文件
注:Linux中所有的设备都是以文件的形式存在,如网卡在Linux中有一个文件来表示网卡(网卡配置文件)
- 如:ifconfig --> ens33 -->find /etc -name ‘*ens33*’ 查找网卡配置文件
查找指定时间内修改过的文件
1 find -atime -2 最后2*24小时访问的文件 2 find -ctime -2 最后2*24小时被改变文件状态的文件 3 find -mtime -2 最后2*24小时被改变文件数据的文件
2.locate sshd_confg
1 updatedb 需要先更新文件位置数据库,再查找 2 whereis sshd_confg 系统命令,找出系统命令的具体位置,找文件不一定能找到!!! 3 whereis cat 找到cat命令手册
3.grep 从文本文件或管道数据流中筛选匹配的行及数据
1 grep qwe /etc/group 查看qwe组密码文件 2 cat /etc/group |grep qwe 在etc下的group里面搜test
grep 'qwe' ./r.txt 在r.txt文件中查找qwe
四、开关机以及运行模式
关机:shutdown、shutdown -h、halt、power off
(shutdown -c 取消前一个机关命令)
重启:reboot init 6 shutdown -r
登录 login 用户名
退出 exit loginout
五、Linux系统模式
- init进程
0:关机,停机模式
1:单用户模式
2:多用户模式
3:完整的多用户文本模式
4:系统未使用,保留一般不用
5:图形化模式
6:重启模式
六、vim编译器
1.vim的三种模式及之间的相互转换
- 命令模式:vim 打开文件后所处的状态
退出:wq 保存退出 :w 保存 :q 退出 :w! 强制保存 :q! 强制退出
- 输入模式:在命令模式下输入a/i/o 就能进入到输入模式,就可以开始编辑(这里就不做演示了)
a 在光标后一位开始输入
i 在光标所在位置开始输入
o 在光标下一行开始输入
A 在光标所在行的末尾开始输入
I 在光标所在行的开始位置输入
O 在光标上一行开始输入
按ESC进入命令模式
- 底部命令模式:
当前是输入模式,按ESC,输入:,就可以进入到底部命令模式
当前是命令模式,直接输入:,就能进入到底部命令模式
2.vim编辑器中的数据操作
- 在vim编译器中查找数据,需要在命令模式中进行
/key_word 在光标之后找第一次出现的关键词,按住n键会寻找下一个关键词
- 在vim中替换数据,需要在底部命令模式中进行
1 :%s/key1/key2 所有的文档每行第一次出现的key1替换成key2 2 :%s/key1/key2/g 所有的key1替换成key2 3 :s/key1/key2 将当前行第一次出现的key1替换成key2 4 :s/key1/key2/g 将当前行中所有的key1替换成key2
3.vim其他操作
- 在命令模式中进行
x 删除光标后面的一个字符
X 删除光标前面的一个字符
dd 删除光标所在行
ndd 删除光标后n行
yy 复制光标所在行
p 将复制的数据粘贴到光标的下一行
P 将复制的数据粘贴到光标的上一行
u 撤销上一个动作
- 在底部命令模式中进行
:set un 设置行号
:set nonu 取消行号
注:vi 和 vim 的功能基本一样,vim可以看作是vi的增强版
七、压缩格式
- 压缩包
1 tar 打包 没有压缩 2 tar -cvf fire.tar f1 f2 将文件f1、f2打包成fire.tar 3 -c 打包 4 -v 显示打包过程 5 -f 指定文件 6 -z 针对的压缩包的格式是zip或gz 7 -x 解压缩 8 tar -zcvf file.tar.gz f1 f2 将文件f1、f2打包压缩成file.tar.gz 9 tar -zxvf file.tar.gz 解压缩
- zip包
1 zip test.zip f1 f2 将文件f1、f2压缩成test.zip 2 unzip test.zip 解压缩
[y] 确认单个文件或文件夹压缩
[n] 取消单个文件或文件夹压缩
[A]所有解压
[N]所有取消解压
[r]单个文件或文件夹解压后重命名
注:开启多个终端 shift + ctrl +t
切换终端 alt + 数字
八、Linux下的权限管理
ls -l 查看详细信息的列表
数据的含义:
文件类型和权限 子目录数或链接数量 文件所有者 文件所属组 文件大小 日期和时间 文件名
这里主要说第一列,第一列包含文件类型和权限(后面9位中出现-表示权限缺省)
- 第1位表示文件类型
- 二进制文件
-d 目录文件
l 链接文件(快捷方式)
- 第2到第4位 当前文件所有者的权限
- 第5到第7位 文件所属组的权限
- 第8到第10位 其他人对于该文件的权限
后9位表示权限(后面9位中出现-表示权限缺省)
r 可读,用4表示
w 可写,用2表示
x 可执行,用1表示
权限对于文件和文件夹的含义:
|
对于文件的含义 |
对于文件夹的含义 |
r |
可以查看文件内容 |
可以列目录 即可ls |
w |
可以修改文件内容 |
可以在文件夹下新建或删除文件 |
x |
可以执行文件 |
可以进入文件夹 即可cd |
chmod [who] [+|-|=] 文件名 更改权限的命令
who u-->所有者 g-->所属组 o-->其他人 a-->所有人
+ 添加权限
- 取消权限
= 赋值某些权限
- 如图所示,在桌面新建test.txt,把权限更改为777
注:更改权限的方式推荐直接使用数字
更改所属者或者所属组
1 chown root /test 将test文件夹所有者更改为root 2 chgrp admin /test 将test文件夹的所属组更改为admin
快速方法:
1 chown root:root /tmp 将tmp文件夹的所有者改为root,所属组该为root 2 chown -R root:root /tmp 将tmp文件夹下的所有文件的所有者改为root,所属组该为root 3 chmod -R 777 ./* 此目录下所有的文件都循环迭代,更改权限为777
九、Linux下的用户管理
1.用户信息保存在/etc/passwd,一般用户都有读的权限
cat /etc/passwd 查看用户信息
参数说明:
用户名:密码:UID:GID组ID:描述信息:用户的家目录:默认使用的解析器
- 如果将最后一项更改为/sbin/nologin,该用户就不能登录了
真正的用户:修改密码,可以登录
伪用户:应用程序在运行时会以某种权限来运行,并使用程序名来表示该程序,并存在/etc/passwd文件中,伪用户不可以直接登录 如:apache 使用www - data
2.当前用户权限不足,需要提权
1 sudo 命令 赋予当前用户一个临时的root权限去操作 2 sudo ./vmware-install.pl 3 su root 切换为root用户
3.用户密码存储在/etc/shadow,一般情况下,普通用户没有读权限
cat /etc/shadow 查看用户密码
参数说明:
用户名:密文密码:最后修改密码的时间:修改密码最短有效时间:最长时间:7:::(后三位是密码策略)
4.单用户操作su 切换用户
1 whoami 查看当前登录的用户 2 id 查看当前用户ID,组ID也可看到 非0 为普通用户 3 useradd [选项] 用户名 添加用户 4 -u 指定UID 5 -g 指定组(指定的组需要提前创建好,组名不要完全用数字) 6 -G 指定用户还属于其他组 7 -d 指定家目录(主目录、宿主目录、缺省目录) 8 -s 指定解析器(默认为/bin/bash) 9 -o 和 -u 一般同时使用,创建和其他用户ID一样的用户 10 passwd 用户名 加密码 11 userdel 用户名 删除用户 12 usermod -L 用户名 禁用用户 (会在密码前面标注上感叹号) 13 usermod -U 用户名 恢复用户
注:默认添加的用户会自动加入和用户名一样的组中
5.组操作
1 groups 查看组 2 groups 用户名 查看当前用户属于哪个组 3 groupadd 组名 添加组 4 groupdel 组名 删除组
6.组信息存储在/etc/group
1 cat /etc/group 查看当前linux里都有哪些组 2 grep qwe /etc/group 在etc下group里面搜test 3 或 cat /etc/group |grep qwe
参数说明:
qwe:!!::qwe
组名:组密码:GID:当前组下有哪些用户
7.组密码文件存储在/etc/gshadow
cat /etc/gshadow 查看组密码文件
8.用户在组中的操作
1 gpasswd -a qwe test 将qwe用户加入到test组里 2 -a 就是at 3 gpasswd -d qwe test 将qwe用户从test组中移除 4 -d 就是删除
9.修改用户(注:以下命令要在/home下进行操作)
1 usermod -l/-d/-g/-s 用户名 2 -l 修改用户名:usermod -l number test 把test用户名改成number 3 -d 修改家目录:usermod -d /home/ko test 把test用户的家目录改成home下的ko 4 -g 修改所属组:usermod -g root tset 把test用户的组改成root(注:所属组要提前创建) 5 -s 修改解析器:usermod -s /bin/zsh test 将test的解析器从/bin/sh改为zsh
十、Linux内存管理
1.查看进程
1 ps 查看系统进程 2 ps -u查看隶属于当前用户的进程信息 3 ps -l 以列表形式 4 -a 显示所有的进程 5 -aux所有用户的进程信息 6 -aux |grep qwe 查看指定用户qwe的进程 7 -le 查看简明扼要的进程信息 8 -le|grep ssh 查找ssh的进程信息
2.查看端口(端口即服务器 服务器即端口)信息
1 netstat -ano (win) 2 netstat -ntulp (linux)
3.进程管理
1 kill PID(进程ID号) 关闭某个进程 2 kill -9 PID 强制关闭某个进程 3 kill -l 重启进程 4 killall 关闭所有的进程
4.进程动态查看
1 top 动态显示进程信息(PID 占用内存大小 占用cpu大小等) Q键退出 2 top -c 显示完整命令 3 top -d 2 设置更新时间为2秒 4 top -p PID 查看某PID的具体信息
参数说明:
PR(进程优先级) NI(nice值,表示优先级) VIRT(虚拟内存) RES(物理内存) SHR(共享内存) S(进程状态) %CPU(CPU百分比) %MEM(内存百分比) TIME(使用CPU时间总和)+COMMAND (命令)
5.free 显示Linux中的空闲、使用的物理内存、swap内存、buffer
参数说明:
total(总物理内存) used(已使用内存) free(空闲内存) shared(多个进程共享的内存) buff/cache(缓存大小) available
十一、Linux网络管理
1 ping 查看网络连通性 ctrl +C 结束 2 ping www.baidu.com -c 4 ping百度4次
ifconfig 显示或配置网络设备(网络接口卡)的命令
- 在ubuntu中使用ifconfig出现以下情况 联网安装
1 route 查看路由 2 netsat 查看网络状态 3 arp 查看ARP缓存表 4 traceroute 查看数据包在网络中的路径
1 ss 显示socket通信信息 2 ss -t -a 显示tcp链接 3 ss -l 显示打开的所有的网络链接端口 4 ss -pl 显示进程使用的socket
十二、centos 7 中网卡配置(VM的网卡类型选择是NAT,分配IP的方式就是DHCP):
1.IP自动获取
vim /etc/sysconfig/network-scripts/ifcfg-ens33 打开网卡配置文件
- 注:Linux的绝对路径开头为/,即根目录
TYPE="Ethernet" 网卡类型
BOOTPROTO="dhcp" 网卡获取IP的形式,ip配置方式(NONE/DHCP/STATIC)
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
NAME="ens33" 网卡名称
UUID="ae04ed91-a630-435e-b327-583632895fa0" 通用唯一标识码
DEVICE="ens33" 网卡名称
ONBOOT="yes" 开机加载网卡配置文件
重启网卡
1 /etc/init.d/network restart 2 service network restart 3 systemctl restart network
- 注:service 使用service控制服务器启动关闭
查看网卡信息以及配置
1 ifconfig 查看所有网卡信息 2 ifconfig ens33 查看ens33网卡信息 3 ifdown ens33 关闭网卡 4 ifup ens33 开启网卡 5 ip add 查看所有网卡的IP 6 ifconfig ens33 192.168.1.160 255.255.255.0 手动配置IP,临时性的,重启就没了
2.配置静态IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33 打开网卡配置文件
- 修改网卡获取IP的形式为BOOTPROTO = static
- 添加
IPADDRESS = 192.168.1.160
NETMASK = 255.255.255.0
GATEWAY = 192.168.1.2 (在虚拟网络编辑器
的NAT设置中查看)
DNS1 = 114.114.114.114
修改如图所示
1 ifdown ens33 关闭网卡 2 ifup ens33 开启网卡或者重启网卡 3 ifconfig 查看IP是否修改成功