admin管理员组文章数量:1530041
文章摘要
- 什么是Linux?
- Linux系统目录
- Linux文件操作命令
- vim 文本编译器
- vim三种模式
- Linux常用文本工具
- 文件的打包与压缩
- 安装与卸载应用程序
- 第一种方式:
- 第二种方式:
- Linux系统管理命令
- 应用服务化
- Linux用户与权限
- sudo超级管理员命令
- 防火墙firewall
什么是Linux?
传送链接=> Linux百度百科
Linux系统目录
绝对路径 | 用途 |
---|---|
/ | 根目录 |
/bin | 常用二进制命令所在的目录 |
/boot | Linux内核与系统引导程序目录 |
/dev | 设备文件的目录,例如:声卡、磁盘、光驱… |
/etc | yum、rpm方式安装应用程序的默认配置文件路径(应用程序的配置文件) |
/home | 用于存放用户的数据 |
/var | 系统与软件服务运行日志目录 |
/lib | 启动系统与运行命令所需要的依赖、组件库 |
/proc | 系统运行时,进程信息与内核信息存放在此目录 |
/root | Linux超级用户目录 |
/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
* extras: mirrors.ustc.edu
* updates: mirrors.ustc.edu
======================= 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 -cmd
是firewall的核心命令
案例⚓️⚓️⚓️: 对外开放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
版权声明:本文标题:Linux -快速实用一篇入门即可 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1726493289a1072806.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论