广州天河42期cyp 发表于 2022-5-27 21:56:41

Linux指令的学习

Linux系统
Linux是一个免费、开源、基于Posix和Unix的多用户、多任务、支持多线程和多CPU的操作系统
我们学习的linux的版本是?
centos_6.6_x86_64
为什么要学习Linux系统
作为服务器,用于部署系统,企业中,开发的系统都会部署在linux系统上
linux操作系统的优点
1).系统稳定
2).作为服务器系统使用
70%~80%的公司的服务器系统使用的就是Linux系统
少量的公司的服务器系统会使用Windows server.Unix
VMWare Workstation ===》虚拟机软件==》相当于一个虚拟的运行环境(一台不存在实体的电脑)==》可以安装操作系统(Linux系统、Windows系统、苹果系统)
现在大部分软件公司不会使用实体服务器,一般都是租用云服务器(银行除外)
云服务器:阿里云、腾讯云、天翼云、华为云等
日常操作服务器都是通过指令(Linux指令)进行操作
su+用户名:切换用户
Linux系统的管理员用户(高权用户):root
低权用户切换高权用户需要输入密码,高权切换低权是不用输入密码的
ctrl + c :返回最原始的命令
查询IP地址:IP地址,方便我们连接对应的设备
在Linux系统:ifconfig
在Windows系统的dos命令:ipconfig
不建议操作的指令,了解即可:
ifconfig +网卡名称 +新的IP地址===》修改Linux服务器的IP地址
Tab键:可以自动补全命令或者文件名
在linux系统中,指令都是有记忆的
history :查看当前操作用户的历史操作记录,把之前操作过的所有指令都获取出来
pwd:查看当前操作位置的绝对路径
/home/dcs42/Desktop==》当前在 根目录里面的home目录里面的dcs42目录里面的Desktop目录位置
第一个‘/’表示根目录,是Linux系统所有文件及文件夹开始
后面的‘/’表示上下级文件夹的区分
mkdir:创建文件夹
mkdir +当前目录不存在的名称 :创建一个新的文件夹(目录)
mkdir -p 目录1/目录2/目录3 :-p参数有助于创建层级目录(目录里面包含子目录)
touch:创建空文件
touch +不存在的文件名:创建一个新的空文件
touch +存在的文件或目录:修改已存在的文件或目录的修改时间
dir:查看当前文件夹中包含什么东西,不常用的指令
ls:查看当前文件夹中包含什么东西,常用指令
ls可以接很多参数,方便日常的操作
ls -l :以列表的方式返回当前目录中文件及文件夹的详细信息
ls -lrt:以列表的方式返回当前目录中文件及文件夹的详细信息,并以修改时间进行降序排序
ls -l的简写:ll ==》以列表的方式返回当前目录中文件及文件夹的详细信息
ls -l -a:参数-a有助于显示当前目录下的隐藏文件及隐藏目录(以.开头的命名)
在命令行界面中操作的每一条指令都可以通过“-”进行接参数操作,接参数有助于让对应的指令功能多样化
man命令:查看linux系统中内置指令的帮助手册,空格键向下翻页,‘B’键向上翻页,‘Q’键退出
man ls ==》查看ls命令的帮助手册,可以看到ls命令可以接什么参数及对应参数的作用
cd:切换进入目录的命令
cd +存在的目录:进入到对应的目录位置中
相对路径的用法:
隐藏文件夹中的‘.’和‘..’分别是相对路径中的当目录和上一级目录的意思
‘.’表示当前目录,‘..’表示上一级目录
cd .. :表示进入上一级目录
cd ../..:表示进入上一级的上一级目录
cd   或者 cd ~:表示直接回到当前用户的 家目录 中
家目录:在Linux中,每一个用户都有属于自己的家目录,家目录的名称和用户名是一样的,所以是通过~表示
绝对路径:
cd /home/dcs42==>使用绝对路径,快速进入对应的目录位置,主要不能写错,路径中的文件夹都要正确且存在
xshell:客户端连接工具===》我们是用来连接Linux服务器(在公司中我们是碰不到实际的服务器,在公司领导会给我们对应的服务器IP,对应的账号、对应的密码)
连接服务器的格式:ssh +服务器IP地址 ==》linux服务器的的ip地址可以通过ifconfig进行查看
xftp:文件传输工具==》可以连接到Linux服务器后,可以让文件在Windows与linux系统间互相传输
当使用了这些客户端连接工具连接到Linux服务后,在客户端连接工具上的操作会直接在Linux服务器上生效的
常见的客户端连接工具:CRT、putty
文件传输工具:filezilla
ping命令:检查网络是否连通的
ping +其他服务器的IP地址 ==>检查当前的服务器和别的服务器使用连通
Ctrl+z:挂起任务(类似最小化)
fg:重新打开被挂起的任务
Ctrl+c:结束任务(关闭)
创建新文件有两种方式:
1,touch +不存在的文件名:创建空文件
2,vim +新文件名:通过写入数据的方式创建文件,创建文件时需要写入数据并保存 ==》vim是编辑指令
(1)vim +文件名:以编辑模式进入文件,获得一个新的页面(不要再使用鼠标的滑轮,光标的移动通过键盘的方向键进行控制)
(2)按‘i’进入编辑模式,界面的底部出现‘-- INSERT -- ’表示已经进入编辑模式,可以进行对文件内容的修改(注意不要按Ctrl+s会导致文件出现一个隐藏文件.swp的隐藏缓存文件会导致这个文件在以后不能被保存)
(3)按‘Esc’键,退出‘INSERT’模式,输入:wq就可以保存并退出vim界面模式(w表示保存,q表示退出)
大家操作时需要注意的:
1,文件是可以用vim进行编辑和查看的,不能使用cd进入
2,不要使用vim操作目录,只能使用cd来进入
3,vim创建文件时,如果不写入内容文件不会被保存
4,命令后面都需要接空格
rm:删除文件的命令
rm +文件名 :需要确认才可以删除文件
rm -f +文件名:强制删除文件
但是对目录进行操作,需要加-r参数
rm -rf +目录名或者文件名:直接删除对应的目录和文件
‘*’号表示匹配0个或者多个字符
注意千万不能执行:rm -rf /*==》俗称‘删库跑路’
cp:拷贝,复制文件或者目录,但是对目录进行拷贝复制同样也要接-r参数
cp 源文件 目标文件
1.当目标文件不存在时,则会新建一个文件并把内容复制到新文件中
2.当目标文件存在时,就会把目标文件的内容进行覆盖
mv:移动、重命名
mv 源文件 目标名称
1.当目标名称为目录时,可以把源文件移动到对应的目录中
2.当目标名称不是目录时,可以对源文件进行重命名操作
lrzsz插件:Linux系统的一个小工具,需要进行安装
安装需要执行指令:yum install lrzsz
lrzsz只有2条指令,只有安装成功后才可以使用的
lrzsz工具可以实现在 客户端连接工具(xshell、CRT、putty)中进行Windows和linux系统的文件传输功能
rz:把Windows的文件传输到Linux系统中,执行后会弹出一个Windows的窗口,选择对应的文件进行打开,就可以提交到linux系统上
sz:sz +Linux中的文件名把选择的文件进行传输到Windows本地电脑中
lrzsz工具有缺点:当传输的文件比较大时,失败率比较高,而且传输的速度也比较慢
遇到大文件可以使用xftp进行传输(通过拖拽的方式)
yum命令是linux执行在线安装的指令,需要连接对应的可用的yum源获取在线的工具
yum install +工具名称==》在线安装对应的yum工具
yum list==》查看yum源上有哪些工具可以被我们进行在线安装
linux中查看文件的几种方法?
1,vim +文件名:以编辑的方式查看文件的内容
2,cat +文件名:完整的查看整个文件中的内容,一般是结合其他指令去使用的
3,less +文件名:翻页显示查看完整的文件内容。按 空格键 向下翻页,按‘B’键向上翻页,回车键逐行查看。输入‘/+关键字’做向下精确查找关键字,输入‘?+关键字’做向上精确查找关键字。‘Q’键退出翻页查看
4,more +文件名:以百分比显示文件内容。按 空格键 向下翻页,按‘B’键向上翻页,回车键逐行查看。查看到文件的末尾(100%)时会自动退出,Q’键退出查看。
5,nl +文件名:显示行号和行的内容
6,head +文件名:默认显示头部10行,从文件的头部开始查看文件的内容,可以通过参数控制查看的行数
head -n +需要显示的行数 +文件名
7,tail +文件名:默认显示文件尾部10行,获取文件末尾的内容,可以通过参数控制查看的行数
tail -n 需要显示的行数 +文件名
tail -n +数字 文件名:从第n行开始到末尾
最常见的:tail -f +文件名 :查看文件内容(后10行),退出使用Ctrl+c
cat命令:查看文件内容的指令,直接执行会完成打开文件中所有内容
通常是结合其他指令去使用,要使用‘|’管道符
‘|’管道符:把前面命令的结果给到后面命令进行使用,第一个命令的输出为第二个命令的输入
grep:文本搜索工具
-A:把匹配到的行和后面N行一起获取出来
-B:把匹配的行和前面N行一起获取出来
-C:把匹配的行以及它前后N行一起获取出来
结合cat、head、tail命令查看文件中的13-21行的内容
方法一:
cat head_tail.txt |head -n 21|tail -n 9===》完整打开文件,之后 先取前21行,然后取前面结果的末尾9行
方法二:
cat head_tail.txt | head -n 21 |tail -n +13 ==》完整打开文件,先取前21行,然后取前面结果从第13行开始取到末尾
方法三:
cat head_tail.txt |tail -n +13 |head -n 9==》完整打开文件,先从第13行取到文件末尾,然后再前面结果的头部9行
方法四:
cat head_tail.txt |tail -n 18 |head -n 9==》完整打开文件,先取文件末尾的18行,然后再前面结果的头部9行
结合cat、head、tail命令查看文件中的9-14行的内容
cat head_tail.txt |head -n 14 |tail -n 6
cat head_tail.txt |head -n 14 |tail -n +9
cat head_tail.txt |tail -n +9 |head -n 6
cat head_tail.txt |tail -n 22 |head -n 6
重定向符‘>’
反重定向符‘<’
一个重定向符‘>’表示覆盖,两个重定向符‘>>’表示追加
把一条指令的执行结果,通过重定向符的作用写到文件中
cat +文件名 > 其他文件==》把cat命令执行得到的结果直接覆盖掉其他文件的内容
cat +文件1 >> 文件2==》把cat命令执行得到的结果文件1,追加到文件2的内容的末尾
清空文件中的内容: >需要被清空内容的文件
造大文件:通过重复执行追加操作(可以通过“向上”键+Enter进行重复追加)
cat a1>>a3
cat a3>>a1
cat a1>>a3
cat a3>>a1
cat a1>>a3
cat a3>>a1
......
Linux三剑客指令:
sed:流文本编辑工具
grep:文本搜索工具
awk:报告生成器
获取文件中的13-21行:sed -n '13,21p' 文件名
find 查找文件,返回文件的路径
(1)find +需要被搜索的路径 -name +文件名 :通过文件名(name)的方式进行搜索
模糊匹配:*或者?
*表示匹配0个或者多个字符
?表示一个?可以匹配一个字符
(2)find +需要被搜索的路径 -type f:查找所有类型为文件(file)的路径
(3)find +需要被搜索的路径 -type d:查找所有类型为目录(directory)的路径
(4)find +需要被搜索的路径 -size -10k :查找文件大小小于10K的路径
(5)find +需要被搜索的路径 -size +10k:查找文件大小大于10k的路径
find /root -size +10k -size -1024k
c --字节(平常使用ll(ls -l)指令查看到文件大小)
k --千字节
M --兆字节(千k)
G--吉字节(千M)
--------------------------------------------------------------------------------
查看当前linux系统中有什么用户: cat /etc/passwd
cat /etc/group:查看用户组
useradd 用户名:添加一个新用户
注意:直接添加一个新用户时,会默认添加一个和用户名相同的用户组
passwd 用户名:给对应的用户设置密码(需要使用管理员用户操作,创建用户后需要给对应的用户添加密码)
高权用户切低权用户,不需要输入密码
低权切高权需要输入密码
低权切低权也需要输入密码
groups 用户名:查看对应用户在哪些组中
useradd 用户名 -g 已存在的用户组 :新建一个用户并把用户添加到指定的组中(就不会新建一个和用户名相同的组)
groupadd 组名:创建一个空的用户组,里面没有任何的用户
gpasswd -a 用户名 组名:把对应的用户添加到苏某个组中
gpasswd -d 用户名 组名:把对应的用户从某个组中进行移除(不能把用户在自己诞生的组中进行移除)
groupdel 组名:删除用户组(要确认这个组中没有用户,当组中有用户要先删除用户才可以删除组)
userdel 用户名:删除对应的用户
userdel -rf 登录过的用户:强制删除用户
--------------------------------------------------------------------------------
Linux的权限三剑客:
chmod:改变文件的用户权限
chown:改变文件的属主(拥有者)
chgrp:改变文件的属组(拥有组)
-rw-r--r--. 1 root root   0 May 24 10:55 a1
最前面的-表示这是一个普通文件,第一组rw-表示文件的属主(拥有者root)有r读w写的权限,第二组r--表示文件的属组(root组中的用户)有r读的权限,第三组r--表示其他用户(既不是属主用户也不是属组用户的用户)有r读权限
r read 读 ==》权限4==》可以执行的指令cat、less、more、head、tail等等的
w write 写==》权限2 ==》可以 执行的指令vim、vi等等
x execute 执行==》权限1==》可以执行的指令sh(执行shell脚本),rpm(离线安装指令),service(启动服务)
- 表示所在的位置没有对应的权限==》权限0
r+w+x==》4+2+1=7 表示有 读写执行 权限
chmod 777 +文件 :赋予文件最高权限的操作(3个7分别表示不同用户对该文件的权限情况,第一个数字7表示文件的属主有读写执行权限,第二个数字7表示文件的属组有读写执行权限,第3个数字7表示其他用户有读写执行权限)
练习:给某个文件赋予 属主有读权限,属组有写和执行权限,其他用户没有权限,通过chmod进行修改?
属主有读权限==》r-- ==》4+0+0==》4
属组有写和执行权限==》-wx==》0+2+1==》3
其他用户没有权限==》---==》0+0+0==》0
chmod 430 +文件
chmod +x 文件:在不改变原有权限的情况下,给所有的用户对该文件添加执行权限
属主(user简称u):文件的拥有者,创建者
属组(group简称g):和文件创建者同属一个组的其他用户
其他用户(others检查o):既不是文件的创建者也不是和文件创建者在同一个组中的用户
chmod o+r 文件:给其他用户对该文件拥有读的权限
chmod u-r 文件:给文件的拥有者删除对该文件的读权限
chmod 777 -R 目录:对整个目录及里面所有文件或者目录都进行权限操作(-R参数有助于对目录及目录中所有的内容进行相同的权限查找)
chown dcs42 文件:把文件的拥有者修改为dcs42用户
chown root:DCS 文件:同时改变文件的拥有者为root和拥有组为DCS
chgrp DCS -R 目录:改变目录及里面所有文件或目录的拥有组为DCS

--------------------------------------------------------------------------------
打包操作:
linux中常见的包tar、tar.gz、zip、gz、war包
(1)tar包的操作
打tar包:
tar -cvf +包名.tar +原文件
tar -cvf ht.tar head_tail.txt==》对head_tail.txt文件打包为一个tar包,命名为ht.tar
c代表执行打包操作,v表示打包的进度,f表示打包的文件
把一个文件打成tar包后,会比原文件大
解tar包:
tar -xvf +包名.tar
-x参数代表执行解包的操作
(2)tar.gz包 ==》是有压缩功能的,包文件会比原文件小
打tar.gz包:
tar -zcvf +包名.tar.gz +原文件
-z参数,表示要操作的文件是tar.gz包文件
解tar.gz包:
tar -zxvf +包名.tar.gz
(3)zip包
对文件进行打zip包:zip +包名.zip +原文件
对目录进行打zip包,必须要加参数-r,否则只会对最外层的目录进行打包,里面的文件是不会被打包的:zip -r +包名.zip +原目录
解zip包:
unzip +包名.zip
(4)gz包:它只能对文件进行操作
打gz包:gzip +文件名
解gz包:gunzip +包名.gz
注意:gz包不管是打包还是解包,对应的文件都会消失,它只能操作文件,不能操作目录
tar包、tar.gz包、zip都是可以对多层的命令进行打包的,gz包不能对目录进行打包,都是我们对目录进行打zip包时,必须要加参数-r
--------------------------------------------------------------------------------
不同Linux服务器之间的文件传输:
前提:需要获取对方服务器的IP地址、有权限用户及密码、两台服务器需要在同一个局域网中,要知道对方服务器的文件路径
要连接其他服务器前先将自己的网络连接转为桥接模式,修改后,需要使用root用户执行以下指令,重启网卡服务==》输入指令:service network restart,再传输完成后立即将本地服务器的网络连接改为原来的NAT模式
scp:远程文件传输命令(远程文件复制拷贝命令)
A服务器==》本地服务器
B服务器==》远程服务器
1,在A服务器到B服务器取文件--下载文件(在对方服务器中把文件复制过来)
scp +B用户名@B服务器IP:B服务器中文件的绝对路径 +本地存放文件的路径
scp -r +B用户名@B服务器IP:B服务器中目录的绝对路径 +本地存放文件的路径
2,在A服务器往B服务器送文件--上传(把本地的内容复制到对方服务器)
scp +本地文件的路径 +B用户名@B服务器IP:B服务器存放的绝对路径
scp -r +本地目录的路径 +B用户名@B服务器IP:B服务器存放的绝对路径
SFTP工具:Linux系统中内置的一个用于文件传输的命令行工具。虽然里面的指令和Linux指令很像,但是完全是不同的东西
ftp==》文件传输协议
sftp==》安全文件传输协议
步骤:
1,sftp +远程服务器的IP地址 ==》进入sftp工具
2,输入远程服务器的root用户的密码
3,看见 sftp> 开头,表示已经进入sftp工具中
4,get或者put进行文件的传输操作
(1)get下载命令 拿 从远程服务器取文件到本地
get +远程服务器的文件路径 +本地存放的路径
(2)put上传命令 放 从本地服务器往远程服务器放文件
put +本地服务器的文件路径 +远程服务器的存放路径
5,退出,exit、bye、quit任意一个都可以退出sftp工具
--------------------------------------------------------------------------------
**查看服务器性能相关的指令:
df :查看硬盘(磁盘)的使用情况
df -h:带单位地查看磁盘的使用情况
du -sh:带单位地查看当前目录使用磁盘的空间大小
du -sh +指定的文件或者目录路径:带单位地查看指定文件或者目录占用磁盘空间的大小
free :查看linux系统的内存使用情况,默认是KB为单位
free -m:以M兆为单位显示Linux系统的内存使用情况
1TB=1024GB
1GB=1024MB
1MB=1024KB
1KB=1024B
1B=1byte=8bit
在计算机中最小的单位是bit,1bit=一个字节0或者1
top :动态显示当前Linux服务器的程序占用的性能情况(类似Windows系统任务管理器),查看CPU/内存的使用情况,默认是3秒刷新一次。退出通过Ctrl+c、‘q’键
top页面的内置命令:
N --以PID(进程号)的大小排序进程列表
P --以%CPU(CPU使用率)大小进行排序
M--以%MEM(内存使用率)大小进行排序
top -p +进程号:查看对应进程的性能情况
top -d +秒数 :让top页面间隔多少秒刷新一次
ps -ef |grep '进程号'==>查看对应进程号是哪个程序任务启动的
ps -ef |grep '服务名称' ==》查看对应服务有没有启动,和对应的进程号
进程号pid:任何的程序在启动后,系统都会分配一个进程号给到对应的程序
netstat -nultp==》查看当前所有已经被使用的端口号

netstat -anp |grep '端口号’==》查看对应的端口号是否被占用

lsof -i:端口号==》查看对应的端口号是否被占用

端口号:服务器开启了某些服务程序时,这些服务程序需要被别的客户或者终端进行访问,就要开放对应的端口号供客户或者终端进行使用。端口号是固定的,是唯一的,每一个端口只能供一个服务程序进行使用
不常用的指令:
who:查看当前Linux的登录用户
whoami:查看当前操作的用户
uname:显示系统的名称或类型
hostname:显示系统的网络位置
getconf LONG_BIT:查看系统的位数
32位系统最多支持4G内存,64位系统理论上最多支持256GB内存,理论上64位系统比32位快两倍
clear:清屏
date:查看当前服务器的时间
date -s ‘2022-05-27 10:32:30’:把服务器的时间修改为2022年5月27日10时32分30秒
service命令:与linux的内置服务相关的命令
service 服务名称 start==》启动对应的服务
service 服务名称 status==》查看对应服务的运行状态
service 服务名称 stop==》停止(关闭)对应服务
service 服务名称 restart==》重启对应的服务
常用的服务:
1.防火墙服务:iptables   (centos 7的防火墙服务:firewall)
2.Mysql数据库服务:mysqld(目前未安装)
3.网卡服务:network
linux系统通过ifconfig找不到ip的解决方案:
1,重启Linux的网卡服务:service network restart
2,如果重启网卡服务还是不写就在Windows系统,按‘win’键+‘r’键,输入'services.msc' ,进入‘服务’窗口,然后找到VM开头的服务,全部右击重新启动。再回到Linux服务器执行重启网卡的指令:service network restart
alias 取别名==》自定义一些命令
alias C='cat /root/install.log'==》自定义一个C命令,可以直接执行 cat /root/install.log 操作
alias dcs='ping'==》自定义一个dcs命令,可以执行ping命令
注意:自定义命令不能和已经存在的命令重名
unalias dcs==>取消自定义命令dcs
ln--创建链接文件,创建时 源文件 要用绝对路径
链接文件分为 软链接和硬链接
软链接(-s):l 相当于Windows系统的快捷方式
ln -s +源文件的绝对路径 +创建的链接文件路径
硬链接(-d):类似于备份,当源文件被删除时是不会影响硬链接文件的,而且硬链接文件和源文件的内容发生改变时,是会互相影响的。
ln -d +源文件的绝对路径 +创建的链接文件路径
vim编辑器:用来对文件的内容进行修改,进入vim编辑器之后把鼠标扔掉
vim +文件==》通过vim编辑器打开文件 ==》对文件进行内容的修改
vim编辑器里面的命令不是Linux指令
编辑模式:文本内容的编辑必须要进入编辑模式才可以进行编辑(按‘Esc’键退出)
i:按‘i’进入编辑模式,在光标所在位置进行输入内容
I:按大写的‘i’进入编辑模式,光标跳转到行首进入编辑模式,在光标所在位置进行输入内容
a:按‘a’光标后移一位进入编辑模式
A:按大写的‘A’光标跳转到行末进入编辑模式
o:在光标所在行,往下插入一行进入编辑模式
O:在光标所在行,往上插入一行进入编辑模式
x:删除光标所在位置的一个字符
X:删除光标所在位置的前一个字符
dd:一次性把光标所在行的完整删除
D:删除光标所在位置至行末的内容
u:撤销操作
r:替换光标所在位置的一个字符
yy:复制光标所在行的内容
5yy:复制光标所在行开始5行的内容,几yy就是复制几行
p:把复制的内容粘贴到光标所在位置的下一行
P:把复制的内容粘贴到光标所在位置的上一行
末行模式(命令模式):需要通过'Esc'键退出‘--INSERT--’编辑模式才可以使用的,在vim界面的左下角输入‘:’进入的
:q==>退出,但是文件发生修改之后,执行 :q 是会报错的,需要保存退出或者强制退出
:wq ==》保存退出
:w==>保存操作
:q!===>强制退出
:wq! ===>强制保存并退出
‘!’表示强制执行
:/+关键字==》查找整个文本中的对应‘关键字’并高亮显示
:noh==>取消高亮
:set nu==>显示行号
:set nonu ==>取消行号
把当前vim编辑器的文件指定范围的内容,写到另一一个新文件中(只能是新文件)
:x,yw +新文件的路径
:1,10w /dcs42.txt   ==》把当前文件的1~10行写到 根目录底下的dcs42.txt 文件,会新建一个文件
vim中对文件内容的指定字符进行替换
:%s/原字符/新字符/g==》把当前文件中所有的‘原字符’替换为‘新字符’
%s==>表示执行替换操作
/ ==》表示分隔符,第一个字段表示需要被替换的字段,第二个字段表示 替换后的字段
g ==》表示全局执行,不加g(全局参数),只能替换每行第一次匹配到的字符

页: [1]
查看完整版本: Linux指令的学习