Linux -快速实用一篇入门即可

什么是Linux?

在这里插入图片描述

传送链接=> Linux百度百科

Linux系统目录

在这里插入图片描述

绝对路径用途
/根目录
/bin常用二进制命令所在的目录
/bootLinux内核与系统引导程序目录
/dev设备文件的目录,例如:声卡、磁盘、光驱…
/etcyum、rpm方式安装应用程序的默认配置文件路径(应用程序的配置文件)
/home用于存放用户的数据
/var系统与软件服务运行日志目录
/lib启动系统与运行命令所需要的依赖、组件库
/proc系统运行时,进程信息与内核信息存放在此目录
/rootLinux超级用户目录
/sbin系统管理命令存放目录,是root用户执行高级命令(这些命令)的存放地
/usr存放用户应用程序的目录,包含两重要个子目录
/usr/local编译方式安装程序的默认目录(自行安装的三方应用程序)
/usr/src程序源码目录

Linux文件操作命令

📋命令格式:命令 [参数选项] [文件或路径]

什么是参数选项?
在这里插入图片描述

命令用途例子
clear清空终端页面/
cd切换目录cd …返回上级目录。 进入目录:( cd 路径 cd ./路径)
pwd查看当前所在哪个目录/
ls、ll显示所在目录里的内容/
mkdir创建目录参数-p 可以镶嵌多层文件进行创建 -v显示创建过程
cp复制文件与目录cp -r(可以复制整个文件夹) [要复制的文件地址] [复制到目标目录的地址]
mv移动或者重命名文件mv [文件名] [新文件名] 。。。 mv [指定文件名] [指定要移动到哪个路径]
rm删除文件或者目录rm -r(可以删除整个目录以及里面的文件) [目录名]
find查找目录或者文件find [从哪个路径开始查找] -name [****]

vim 文本编译器

vim是Linux重要的文字编辑工具。vim用于在远程环境下用命令形式对文本进行在线编辑。
📋命令格式:vim[选项] [文件]

vim三种模式

普通模式:默认的模式,只能读,不可编辑。普通模式按i进入。=>编辑模式:编辑文本模式,按Esc退出。退回到普通模式。普通模式下才能使用=>命令模式:执行保存、搜索、退出等操作。

命令模式下的相关命令描述
delete 或 x删除单个字符
dd删除整行
/str全文查找str字符串,n下一个,N上一个
:% s/old/new/g替换文件内所有old字符串为new
u撤销最近一次操作
:wq或者:wq!强制退出并保存,只读文件要额外加!
:q!强制退出放弃保存 如果只是看了下,就不加!表示退出

Linux常用文本工具

命令用途
echo屏幕打印与文本输出 向指定的文件进行追加
cat合并文件或者查看文件内容
tail显示文件内容尾部
grep文本过滤工具,(可以用正则表达式对文件进行查找)

1.echo命令案例:

===================================
第一种:向屏幕打印内容
===================================
[root@Red764 tomcat]# echo "hello"
hello
[root@Red764 tomcat]# 
===================================
第二种:向指定的文件追加内容
===================================
[root@Red764 local]# echo "hello" > hello.txt     将 > 左侧产生的结果 重写到右侧所对应的文件
[root@Red764 local]# ll					如果上面的 > 改成 >> 就会在原有的内容里 往下追加内容
总用量 52
drwxr-xr-x. 2 root root 4096 4月  11 2018 bin
drwxr-xr-x. 2 root root 4096 4月  11 2018 etc
drwxr-xr-x. 2 root root 4096 4月  11 2018 games
-rw-r--r--. 1 root root    6 6月  28 00:13 hello.txt
drwxr-xr-x. 2 root root 4096 4月  11 2018 include
drwxr-xr-x. 2 root root 4096 4月  11 2018 lib
drwxr-xr-x. 2 root root 4096 4月  11 2018 lib64
drwxr-xr-x. 2 root root 4096 4月  11 2018 libexec
drwxr-xr-x. 3 root root 4096 6月  27 19:19 radis
drwxr-xr-x. 2 root root 4096 4月  11 2018 sbin
drwxr-xr-x. 6 root root 4096 5月  22 15:57 share
drwxr-xr-x. 2 root root 4096 4月  11 2018 src
drwxr-xr-x. 2 root root 4096 6月  28 00:04 tomcat
[root@Red764 local]# ^C
[root@Red764 local]#

2.cat命令案例:

===================================
第一种:查看文件内容
===================================
[root@Red764 local]# cat -nE hello.txt  (-n 显示每行的行号  -E 显示空行$后面就是空白行)
     1	hello66666$
     2	hello66666$
     3	hello888886$
     4	hello9988$
[root@Red764 local]#
===================================
第二种:文件合并的功能
===================================
例如:日志文件的合并
[root@Red764 local]# echo "xxxx" >> log1.txt 
[root@Red764 local]# echo "yyyy" >> log2.txt
[root@Red764 local]# echo "zzzz" >> log3.txt
[root@Red764 local]# cat log1.txt log2.txt log3.txt >> hebing_log.txt
[root@Red764 local]# cat hebing_log.txt 
xxxx
yyyy
zzzz
[root@Red764 local]#
===================================
第三种:输入流的编写
===================================
[root@Red764 local]# cat > test.txt << eof   			
> hello 
> 想输入的内容
> .....
> .....
> eof	(eof是自定义的标识符,结尾输入自定义的标识符回车即可退出)
[root@Red764 local]# 

3.tail命令案例:

[root@Red764 local]# tail hebing_log.txt 
xxxx
yyyy
zzzz
[root@Red764 local]# tail -n 2 hebing_log.txt 
yyyy									(-n 是行数 2  显示最下面两行)
zzzz
[root@Red764 local]# tail -f hebing_log.txt 
xxxx				(-f 动态监控文件末尾 产生的新航)
yyyy
zzzz					(按ctrl+c 可以退出)
|

4.grep命令案例:

===================================
第一种:对文本内容 进行筛选
===================================
[root@Red764 local]# grep [要查找的单词或内容或正则表达式] [要查找的文件] 

也可以创建个文件来接收查询到的内容
[root@Red764 local]# grep [要查找的单词或内容或正则表达式] [要查找的文件] > [创建的文件]

[root@Red764 local]# grep -v [要查找的单词或内容或正则表达式] [要查找的文件] 
				(-v 取反    就是 不包括要查询的单词 的其他文本 )
===================================
第二种:对文件 进行筛选
===================================			
[root@Red764 local]# ll | grep	log1.txt    (grep -e 可以使用更强的正则表达式)
-rw-r--r--. 1 root root    5 6月  28 00:30 log1.txt
上面的方式叫做 => ‘通道’
ll输出的结果    变成后面grep命令的依据=> ll的结果 送到grep 作为数据源 按照后面的匹配规则进行筛选

文件的打包与压缩

Linux中
📌 文件压缩 程序叫
gzip 压缩过后的 文件📇 => 文件名 .gz

那么一个项目有很多文件,需要一个打包工具,将他们全部打包吧,然后再压缩。

📌 文件压缩 程序叫tar本质是打包软件📦 => 打包好了的文件名.tar

综上所述:tar打包 + gzip压缩 => 文件名.tar.gz

使用手法:

打包压缩 命令:tar zcvf tomcat.tar.gz /usr/local/tomcat
对 /usr/local/tomcat 该目录压缩 生成 tomcat.tar.gz 文件

解压缩 命令:tar zxvf tomcat.tar.gz -C /usr/local/tomcat
对 tomcat.tar.gz 解压 -C(指定加压到哪 不写就在本目录) 指定解压到/usr/local/tomcat 目录

选项用途
z通过gzip压缩或解压
c创建新的 tar.gz文件
v显示执行过程
f指定压缩文件名称
x解压缩 tar.gz 文件
-C指定解压到哪个目录

安装与卸载应用程序

在CentOS中安装第三方应用程序包含两种方式:

1.使用官方提供的,软件安装包自动安装

2.没有所谓的安装包,只有源代码。下载源代码到系统中,用系统命令编译生成我们需要的程序文件。

第一种方式:

下载应用程序 就像 在Maven中 下载 依赖一样。在软件仓库中查找软件。
在软件仓库中查找软件。命令为:yum

yum常用命令:

yum search 应用名 (在仓库中查询是否存在指定应用)

yum install -y 应用名 (全自动下载安装应用及其依赖)

yum info应用名 (查看应用详细信息)

yum list installed 应用名 (查看已经安装的应用程序有哪些)

rpm 应用名 (查看安装后输出的文件清单)

yum remove -y 应用名 (全自动卸载指定应用)

**案例⚓️⚓️⚓️:**下载tree 软件

[root@Red764 local]# yum search tree		查询tree 这个软件  命令
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile				下面是三个软件仓库
 * base: mirrors.ustc.edu.cn				
 * extras: mirrors.ustc.edu.cn
 * updates: mirrors.ustc.edu.cn
======================= N/S matched: tree(匹配结果) ===============================
gomtree.x86_64 : Go CLI tool for mtree support
·······················
tree.x86_64 : File system tree viewer
·······················
·······················
python2-libfdt.x86_64 : Python 2 bindings for device tree library

  名称和简介匹配 only,使用“search all”试试。
[root@Red764 local]# yum install tree.x86_64    (找到软件名 下载)

第二种方式:

1、获取应用程序源代码,来进行安装。例如:GeiHub上下载。
2、用系统命令编译生成我们需要的程序文件。编译的命令:make

案例⚓️⚓️⚓️: 编译安装Redis
1.从官网下载redis.tar.gz 进行加压 =>解压出 redis-4.0.14
2.进入redis-4.0.14 输入:make 命令 进行编译
3.启动:在redis-4.0.14目录下 输入命令 ./src/redis-server redis.conf 启动Redis (ctrl+c是退出)

Linux系统管理命令

ifconfig 查看网卡ip
netstat -tulpn 或者 netstat -ano 查看网络端口号

选项用途
t显示tcp传输协议链接状况
u显示udp传输协议链接状况
l显示处于监听状态的网络连接
p显示应用PID和程序名称
n显示id地址
a显示所有连接
o显示计时器

ps -ef 查看进程
kill -9 PID 杀掉进程
which查看可执行命令 的 存放位置
shutdown -r now 系统立即重启

应用服务化

就是让应用程序以系统服务的方式,在系统后台运行。Linux对服务化应用统一管理。

查看系统中目前有哪些服务?它们的运行状态?用 => systemtrl。
服务管理命令:systemctl

systemctl的子指令用途
start启动服务
stop停止服务
restart重启服务
enable设置开机启动
disable禁止开机启动
status查看服务状态
daemon-reload重载服务配置文件
list-unit-files列出所有服务

案例⚓️⚓️⚓️: 服务化Redis
1.find / -name *.pid 找到Redis的 /run/redis_6379.pid 文件,用vim /run/redis_6379.pid 进入,拿到进程编号。(或者用 ps -ef | grep redis 一样拿到进程号。)

2.进入cd /usr/lib/systemd/system 目录。要将Redis服务化,需要在该目录中创建以xxxx.server文件。文件名就是默认的服务名。
控制太输入 vim redis.service 创建新文件。然后进入redis.service 编辑

编辑模式下书写下方代码:
[Unit]
Description=Redis		描述信息 给读者看
After=syslog.target network.target remote-fs.target nss-lookup.target		哪些服务启动后才启动Redis
 
[Service]		 服务描述
Type=forking		表示后台运行
PIDFile=/run/redis_6379.pid		指向PID文件
ExecStart=/usr/local/redis-4.0.14/src/redis-server /usr/local/redis-4.0.14/redis.conf		服务启动时,调用什么命令
ExecStop=/bin/kill -s QUIT $MAINPID		利用Kill命令,对指定的进程进行关闭。该数据来自上面的PID文件
PrivateTmp=true		为每个服务设置私有的Tmp临时文件目录
 
[Install]		安装的配置项
WantedBy=multi-user.target		将当前服务分配到multi-user.target服务组上

3.写完之后要让上面的配置文件生效,调用:daemon-reload命令。对所有service 进行重置。

4.启动服务:systemctl start redis(前面起的服务名也就是文件名)。

5.设置开启启动服务:systemctl enable redis

Linux用户与权限

用户让系统更安全,同时也保护了个人数字资产。例如:我这个用户创建的文件,哪些人可以读写,哪些人不能读写。
给某些相似的用户分组,就是用户组了。例如:开发组、运维组、
**例:**给一个一个的用户分配权限太麻烦。直接分几个用户组,让他们加入摸个用户组就行了。其中,给用户组去分配权限。(用户可以任意切换当前组)

用户与用户组常用命令用途
adduser创建新用户
passwd修改密码
usermod -g分配组(覆盖原组) -G 可以分配多个组
groupadd创建新的用户组
chown更改文件的属主或属组
chmod更改文件的访问权限
newgrp切换用户当前组

案例⚓️⚓️⚓️: 创建开发人员的用户,和测试人员的账户。然后创建两个分组,并为其分组分配权限。

[root@Red764 ~]# adduser d1
[root@Red764 ~]# adduser d2
[root@Red764 ~]# adduser t1						创建三个用户

[root@Red764 ~]# passwd d1						设置三个用户的密码
更改用户 d1 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
············
[root@Red764 ~]# 

===========================================================
[root@Red764 ~]# groupadd developer
[root@Red764 ~]# groupadd testor					创建两个分组


[root@Red764 ~]# usermod -g developer d1
[root@Red764 ~]# usermod -g developer d2
[root@Red764 ~]# usermod -g testor t1					给上面创建的用户 分配到具体组里
[root@Red764 ~]# 

分好组以后,root要建初始的目录。以及对该目录授权。(系统的公共资源在/usrlocal/share 目录下)

[root@Red764 share]# mkdir dev-document
[root@Red764 share]# ll
drwxr-xr-x.  2 root root 4096 11月 23 2021 applications
						哪个用户创建的		所关联的用户组是哪个
drwxr-xr-x.  2            root                    root 	4096 6月  28 19:06 dev-document
drwxr-xr-x.  2 root root 4096 4月  11 2018 info
drwxr-xr-x. 21 root root 4096 11月 23 2021 man

在这里插入图片描述
对 dev-document 目录 的权限进行调整 命令:chown chmod

[root@Red764 share]# chown d1:developer dev-document/
[root@Red764 share]# ll
总用量 16
drwxr-xr-x.  2 root root      4096 11月 23 2021 applications
drwxr-xr-x.  2 d1   developer 4096 6月  28 19:06 dev-document
drwxr-xr-x.  2 root root      4096 4月  11 2018 info
drwxr-xr-x. 21 root root      4096 11月 23 2021 man
========================================
[root@Red764 share]# chmod 750 dev-document/   (750 属主有完整权力 组用户有r x 权力  其他用户 什么权利都没有)
[root@Red764 share]# ll
总用量 16
drwxr-xr-x.  2 root root      4096 11月 23 2021 applications
drwxr-x---.  2 d1   developer 4096 6月  28 19:06 dev-document
drwxr-xr-x.  2 root root      4096 4月  11 2018 info
drwxr-xr-x. 21 root root      4096 11月 23 2021 man

sudo超级管理员命令

root 要授权普通用户使用sodu的权利,需要授权命令: visudo
sudo可以让普通用户,拥有超级管理员的权限。

案例⚓️⚓️⚓️: d1 授权 超级管理员sudo使用权限

[root@Red764 share]# visudo   
root    ALL=(ALL)       ALL  (进入文本选择100行) 
d1      ALL=(ALL)       ALL	(添加授权的用户)

[root@Red764 share]# visudo -c		写完文件别忘重新解析下
/etc/sudoers:解析正确

d1得到授权后,比如 添加一个新用户

[d1@Red764 ~]$ adduser d3							没使用sudo命令
-bash: /usr/sbin/adduser: 权限不够
[d1@Red764 ~]$ 
==================================使用sudo命令
[d1@Red764 ~]$ sudo adduser d3

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。

[sudo] d1 的密码:
[d1@Red764 ~]$ 

防火墙firewall

firewall -cmdfirewall的核心命令
案例⚓️⚓️⚓️: 对外开放Tomcat

1.[root@Red764 bin]# ./startup.sh`启动Tomcat 。

问题:在虚拟机中firefox是可以访问localhost:8080的。但是在win系统中启用Edge访问=> ip地址:8080 却是访问不了的。
原因:远程发送的8080端口的请求被 fire 挡住了。

解决:防火墙 对8080端口 放行就可以了。

[root@Red764 bin]# firewall-cmd --state		(查看防火墙状态)
running
[root@Red764 bin]# firewall-cmd --list-ports 		(查看防火墙放行的端口有哪些   port:端口)
												(这里是空的,发现没有任何端口被方向)
[root@Red764 bin]# firewall-cmd --zone=public --permanent --add-port=8080/tcp
success		(zone:区域   permanent:持久更改 不写就是临时策略  /tcp:采用tcp方式通信时放行8080)

[root@Red764 bin]# firewall-cmd --reload			(因为是持久更改,需要防火墙配置重置以下)

如果想关闭:

[root@Red764 bin]# firewall-cmd --zone=public --permanent --remove-port=8080/tcp
success
[root@Red764 bin]# firewall-cmd --reload
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值