Linux操作系统—入门

本文详细介绍了Linux操作系统为何受欢迎,包括其开源特性、多任务处理能力及丰富的应用生态。接着,文章深入讲解了Linux的基本操作,如文件管理、vim编辑器的使用、文本处理工具以及打包压缩方法。此外,还涵盖了网络工具、用户权限、防火墙设置以及BashShell的使用。最后,文章提到了部署Java项目的步骤,包括安装JDK、Tomcat、MySQL,以及配置和启动服务。
摘要由CSDN通过智能技术生成

前言

操作系统是应用程序运行的基础支撑环境,是计算机系统软硬件资源的管理者和控制者。Linux是开源的基于Intel x86架构的类Unix多用户操作系统,是目前最主要的服务器端操作系统。

1. Linux为什么受欢迎

  • 开源免费,自由传播
  • 支持多任务、多用户、多CPU
  • 高效且灵活
  • 兼容任意x86架构计算机
  • 强大易用的系统命令
  • 完整的应用软件生态

2. Linux基本操作

2.1 文件操作命令

cd:切换目录
pwd:查看当前目录
ll、ls:显示目录内容
mkdir:创建目录
mkdir -p:创建多级目录
mkdir -p -v:创建多级目录并且显示执行过程(还可以是mkdir -pv)
cp:复制文件
cp -r:复制整个文件夹
mv:重命名文件(前面写文件名 空格 后写新名),或移动文件(前文件 后面写路径),或移动目录
rm:删除指定文件(需要确认)
rm -f:强制删除(不需要确认)
rm -rf:强制删除整个目录,慎用
find:查找文件(在所有目录按文件名称模糊查找,例:find / -name)
rmdir:删除目录
clear:清屏

小技巧: cd 后面不用写全名称,只输入前面几个字母,按Tab就能补全如果前缀相同的话连续按两次Tab就能列出所有符合要求的同前缀项。在命令后面加 --help 就能看到这个命令所能使用到的所有参数./代表当前目录,相对路径。加 -v 可以看执行过程v可以和其他命令连写,比如 -pv

2.2 vim文本工具

i:进入编辑模式
esc:编辑模式到命令模式
delete:删除单个字符
dd:删除整行
/str:全文查找str字符串,n下一个,N前一个
:% s/old/new/g:替换文件内所有old为new
u:撤销最近一次操作
:wq 或者:wq!:退出并保存,只读文件额外加!
:q 或者:q!:放弃保存并退出,加!强制退出
100gg:跳到第100行
ctrl+zz:强制退出

2.3 linux文本工具

echo:打印字符串或变量
cat:连接文件并打印到标准输出
tail:显示文件的后几行
touch:创建一个新文件或更新已有文件的时间戳
grep:在文件中查找特定模式的行并打印出来
sed:流编辑器,用于文本替换、删除和添加
awk:用于模式匹配和数据处理的编程语言
wc:统计文件中的行数、单词数和字符数
head:显示文件的前几行
sort:对文件中的行进行排序
uniq:删除文件中的重复行
cut:从文件中提取特定的列
paste:将多个文件按列连接到一起
tr:用于字符转换和替换
tee:将输出复制到文件和标准输出

其中重点使用:

echo "hello" > hello.txt
cat -nE hello.txt
echo "word" > word.txt
cat hello.txt word.txt >> full.txt
cat > full.txt << EOF
> i like java
> so cool
> bye!
> EOF
tail -n -3 full.txt
tail -f full.txt
grep java full.txt > out.txt
grep -v java full.txt
cat out.txt
ll | grep -E "log[0-9]{1,5}.txt"

注意:> 表示覆盖,>> 表示追加

2.4 打包与压缩

tar zcvf
tar zxvf
z 通过gzip压缩或解压
c 创建新的tar.gz文件
v 显示执行过程
f 指定压缩文件名称
x 解压缩tar.gz文件
-C 指定解压缩目录
  • tar是Linux系统将多个文件打包和压缩的工具
  • tar本质是打包软件,扩展名.tar
  • tar可结合gzip或其他压缩工具实现打包压缩,扩展名.tar.gz

2.5 安装与卸载程序

yum search 应用名 #在仓库中查询是否存在指定应用
yum install -y 应用名 #全自动下载安装应用及其依赖
yum info 应用名 #查看应用详细信息
yum list installed应用名 #查看已安装的应用程序
rpm -ql 应用名 #查看安装后输出的文件清单
yum remove -y 应用名 #全自动卸载指定应用

或者使用make,但是注意在安装程序之前,请确保已经安装了程序所需的依赖项和开发工具。否则,程序无法正常运行或编译。

3. Linux进阶

3.1 网络工具命令

ifconfig:查看网卡ip

netstat:查看网络端口号
t 显示tcp传输协议的连接状况
u 显示udp传输协议的连接状况
l 显示处于监听状态的网络连接
p 显示应用PID和程序名称
n 显示ip地址
a 显示所有连接
o 显示计时器

ps -ef:查看进程
kill -9 PID:强制杀死PID进程
kill -s QUIT PID:指定送出信息后杀死PID进程

3.2 应用服务化

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

例如要将Rides设置为应用服务,可以按照以下步骤操作:

  1. 首先,确保已经在Linux系统中安装了Rides。
  2. 打开终端,并使用命令进入到Rides所在的目录,编辑 Redis 配置文件:vim /etc/redis/redis.conf
daemonize yes
bind 127.0.0.1

将 daemonize 改为 yes 可以让 Redis 以守护进程的方式运行,bind 则是设置 Redis 只允许本地访问。

  1. 使用以下命令将Rides添加到系统服务中:
cp rides.service /etc/systemd/system/

注意: 此处rides.service是一个示例服务文件名,实际上应该使用Rides的服务文件名。或者创建一个名为rides.service的新文件,并打开一个简单的文本编辑器。在编辑器中,输入以下内容:

[Unit]
Description=Rides App Service
After=network.target

[Service]
User=YOUR_USERNAME
Group=www-data
WorkingDirectory=/path/to/rides/app
ExecStart=/usr/bin/python3 /path/to/rides/app/run.py
Restart=always

[Install]
WantedBy=multi-user.target

将YOUR_USERNAME替换为你的用户名,并将/ path / to / rides / app替换为Rides应用程序的完整路径。保存文件并退出编辑器。

  1. 使用以下命令设置开机启用该服务:
systemctl enable rides.service
  1. 最后,使用以下命令启动该服务:
systemctl start rides.service

现在,Rides已经被设置为应用服务,在系统启动时将自动运行。如果需要停止该服务,可以使用以下命令:

systemctl stop rides.service

如果需要重新启动该服务,可以使用以下命令:

systemctl restart rides.service

3.3 用户与权限

useradd:创建新用户
passwd:修改密码
usermod:修改用户信息/分配组(覆盖原组)
groupadd:创建新的用户组
chown:更改文件的属主或属组
chmod:更改文件的访问权限
chmod 750:组用户可读写,其他用户不允许访问
chmod 777:所有用户拥有完整权限
chmod 700:只有属主拥有完整权限
newgrp:切换用户当前组
userdel -r 用户名:删除用户
groupdel 用户组名:删除用户组

useradd和adduser两个命令都是存在并且可用的,基本功能都是创建一个新的用户。两者存在一些不同:

  1. 使用useradd时,如果后面不添加任何参数选项,创建出来的用户将是是没有Home Directory,没有密码,没有系统Shell的。所以通常使用useradd时会在命令后面追加参数以及具体的值。
  2. 使用adduser时,创建的用户则会将上面所述的都默认进行创建,所以通常在创建完用户之后,都会对密码等信息进行更新操作。

综上,useradd适用于可以熟练进行操作的人,可以通过在命令后追加一系列参数来一次性完成设置。但是adduser更适合初学者使用,因为其数值都是单独进行更新的,可以避免以为某个细节的书写错误导致整个命令都无法生效,并且对于初学者来说,检查命令错误时也更加简单。

sudo可以让普通用户拥有超级管理员的执行权限
普通用户要进行经过超级管理员授权才能使用
visudo:授权命令
在文件中找到"## Allow root to run any commands anywhere",在其下方添加以下内容:

username ALL=(ALL) ALL

其中,"username"是要授权使用sudo的用户名

visudo -c

验证解析授权文件

3.4 防火墙

firewall-cmd --state:查看防火墙状态
firewall-cmd --list–ports:查看防火墙放行的端口
firewall-cmd --zone=public --permanent --add-port=8080/tcp:永久放行8080端口
firewall-cmd --reload:防火墙配置重载
firewall-cmd --zone=public --permanent --remove-port=8080/tcp:取消放行8080端口
firewall-cmd --zone=public --permanent --add-port=8000-9000/tcp:放行8000到9000的端口
firewall-cmd --zone=public --permanent --remove-port=8000-9000/tcp:取消8000到9000的端口
  • 防火墙是借助硬件和软件对内外部网络环境的保护措施
  • CentOS 7基于firewall实现应用层防火墙,CentOS6基于iptables
  • firewall-cmd是firewall的核心命令

3.5 bash shell

Shell是一种命令行解释器,用户可以通过Shell执行与操作系统交互的命令。Shell扮演着用户与计算机系统之间的桥梁。Shell还可以用于编写Shell脚本,实现自动化的任务,例如文件管理和系统配置等。同时,Shell还可以扩展命令行的功能,如自动补全,历史命令记录和别名等。Shell是Linux系统中不可或缺的重要组成部分。Linux 提供了多种Shell与Shell解释器,我们来看一个简单例子。

以下是在CentOS 7上使用Bash Shell实现自动化安装最新版 Redis 的步骤:

  1. 打开终端并登录到 root 用户。
  2. 创建一个名为 redis-install.sh 的文件:
vi redis-install.sh
  1. 在文件中输入以下代码:
#!/bin/bash

# 安装必要的依赖
yum -y install epel-release
yum -y install gcc make

# 下载 Redis 最新版本
wget http://download.redis.io/releases/redis-latest.tar.gz

# 解压 Redis 压缩文件
tar -xzf redis-latest.tar.gz
cd redis-*

# 编译和安装 Redis
make
make install

# 创建 Redis 配置文件目录
mkdir /etc/redis

# 复制 Redis 配置文件到配置文件目录
cp redis.conf /etc/redis/

# 启动 Redis 服务
redis-server /etc/redis/redis.conf
  1. 保存并退出文件。
  2. 给文件执行权限:
chmod +x redis-install.sh
  1. 运行以下命令以开始 Redis 安装过程:
./redis-install.sh
  1. 等待 Redis 安装完成后,可以使用以下命令检查 Redis 是否正在运行:
redis-cli ping

如果返回值为 “PONG”,则表示 Redis 已成功安装并正在运行。

4. 部署java项目思路

  1. 安装JDK:首先需要安装Java Development Kit (JDK),可以通过yum命令进行安装。
yum install java-1.8.0-openjdk-devel
  1. 部署Web服务器:可以选择Apache Tomcat,通过下载并解压缩tar包来进行安装。
wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.50/bin/apache-tomcat-8.5.50.tar.gz
tar -zxvf apache-tomcat-8.5.50.tar.gz
  1. 部署数据库:可以选择MySQL,通过yum命令来进行安装。
yum install mysql-server mysql
  1. 配置数据库:需要创建一个新的数据库实例,并设置用户名和密码。可以使用MySQL的命令行工具来操作,输入以下命令:
mysql -u root -p
CREATE DATABASE mydatabase;
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
  1. 部署Java应用程序:将Java应用程序部署到Tomcat服务器上,可以使用war包或者将Java代码放到Tomcat的webapps目录下。
  2. 配置Java应用程序:修改应用程序的配置文件,将数据库的连接地址、用户名和密码配置正确。这些配置文件通常位于应用程序的WEB-INF目录下。
  3. 启动服务:启动Tomcat服务器和MySQL数据库服务。
/etc/init.d/mysql start
/opt/tomcat/bin/startup.sh
  1. 测试:使用浏览器访问Java应用程序的网址,确保应用程序能够正常运行。

优化: 分布式两台服务器web和db,db防火墙指定web ip开放端口;jdk需要高级版本的,可官网下载tar.gz文件,上传服务器解压,编辑环境变量: 使用vim /etc/profile命令,按i进入编辑状态,加入相关配置,并保存退出:

# set java environment
export JAVA_HOME=/root/java/jdk/jdk-19.0.2
#安装目录/root/java/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

使用source /etc/profile命令重新加载环境变量配置,最后使用java -version命令验证安装。


以上便是本文全部内容啦,希望能够带来帮助!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JournE-Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值