0
点赞
收藏
分享

微信扫一扫

linux入门、命令、以及四种安装软件的方式

两岁时就很帅 2022-04-05 阅读 108
java

Linux 简介

  • Linux 是一种自由和开放源码的类 UNIX 操作系统。Linux 英文解释为 Linux is not Unix。 
  • Linux 是在 1991 由林纳斯·托瓦兹在赫尔辛基大学上学时创立的,主要受到 Minix 和 Unix 思想的启发。
  • Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
  • Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
  • Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux 应用领域

  • 今天各种场合都有使用各种 Linux 发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位,
  • 通常服务器使用 LAMP(Linux + Apache + MySQL + PHP)或 LNMP(Linux + Nginx+ MySQL + PHP)组合。
  • 目前 Linux 不仅在家庭与企业中使用,并且在政府中也很受欢迎。

Linux系统目录

 linux中常用的命令

pwd 

  • 查看当前所在位置 
  •  lhz@lhz-PC:~/Desktop$:用户lhz登录lhz-deepin这台主机上
  • ~代表当前位置处于当前用户主目录或者称之为当前用户家目录

ls

  • 查看或者显示
  • ls -l 以列表方式显示当前目录下的目录和文件的相关信息
  • ls -a 显示所有目录和文件包含隐藏的 在linux中不论是目录还是文件前缀加点代表隐藏
  • ls -al 多个参数可以联合使用

 clear

clear 清屏
ctrl + l 清屏 
ctrl + u 清空当前行内容

cd

change directory 目录切换
绝对路径与相对路径
相对路径参数:
./ 当前目录 在当前目录./可以省略
../ 父级目录
- 返回上一级目录 从哪儿来回哪儿去
~ 返回当前用户主目录

mkdir

#make directory 创建目录
mkdir /home/lhz/aa
# 可以同时创建多个目录
mkdir /home/lhz/aa/a1 mkdir /home/lhz/aa/a2
# 递归创建 -p
mkdir -p /home/lhz/a/a1 /home/lhz/a/a2 /home/lhz/b/b1 /home/lhz/b/b2
rmdir

rmdir

只能删除空的目录,否则会删除失败
# remove directory 删除空目录
rmdir /home/lhz/a/a1
rmdir /home/lhz/b/b1 /home/lhz/b/b2
rmdir /home/lhz/b
rmdir /home/lhz/a

touch

创建空文件

 rm

touch b c
rm b 
rm -f c
mkdir -p a/a1 a/a2
rm a
# rm: 无法删除'a': 是一个目录
rm -rf a

cp

  • copy 拷贝
  • cp 源文件路径 目标文件路径
  •  -v  显示拷贝过程
  • -r  递归复制目录及其子目录内的所有内容
mkdir a b
touch a/a.txt
cp a/a.txt b
# 目标文件与源文件同名 注意 如果存在目标文件存在同名文件则覆盖目标同名文件
cp -f a/a.txt b
cp a/a.txt b/b.txt

mv

  • move 移动
  • 实现类似 剪切和重命名的效果
  • 当源文件和目标文件在同一目录下 表现效果如同重命名
cp -r  opt/maven/ ~/
mv ~/maven/ ~/Documents/
mv ~/Documents/maven/ ~/Documents/mvn

重定向

echo "我爱你中国"
echo "我爱你中国" > love.txt
echo "亲爱的母亲" > love.txt
echo "" > love.txt
echo "我爱你中国" > love.txt
echo "亲爱的母亲" >> love.txt

vi/vim

 

vi/vim 的使用

基本上 vi/vim 共分为三种模式,分别是**命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。这三种模式的作用分别是:

命令模式

  • 用户刚刚启动 vi/vim,便进入了命令模式。
  • 此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
  • 以下是常用的几个命令:
  • i 切换到输入模式,以输入字符。
  • x 删除当前光标所在处的字符。
  • 切换到底线命令模式,以在最底一行输入命令。
  • 若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
  • 命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

编辑模式|输入模式

  • 在命令模式下按下i就进入了输入模式。
  • 在输入模式中,可以使用以下按键:
  • 字符按键以及Shift组合,输入字符
  • ENTER,回车键,换行
  • BACK SPACE,退格键,删除光标前一个字符
  • DEL,删除键,删除光标后一个字符
  • 方向键,在文本中移动光标
  • HOME/END,移动光标到行首/行尾
  • Page Up/Page Down,上/下翻页
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC,退出输入模式,切换到命令模式

末行模式|底线命令模式

  • 在命令模式下按下:(英文冒号)就进入了底线命令模式。
  • 底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
  • 在底线命令模式中,基本的命令有(已经省略了冒号):
  • q 退出程序

  • w 保存文件

  • 按ESC键可随时退出底线命令模式。

tar :解压缩

tar -cvf aa.tar a.txt b.txt 
tar -tvf aa.tar 
tar -rvf aa.tar c.txt 
rm -f *.txt
tar -xvf aa.tar
tar -zcvf aa.tar.gz a.txt b.txt c.txt 
rm -f *.txt
tar -zxvf aa.tar.gz

tar -jxvf FileZilla_3.58.0_i686-linux-gnu.tar.bz2 -C /home/lhz/opt

网络管理

ifconfig

ifconfig
sudo ifconfig ens33 down #开启
sudo ifconfig ens33 up   #关闭

ip address

ip address 192.168.1.1 #设置ip地址

 

Linux 查看端口占用情况

  • Linux 查看端口占用情况可以使用 lsofnetstat 命令。

lsof

  • lsof(list open files)是一个列出当前系统打开文件的工具。
  • lsof 查看端口占用语法格式:
lsof -i:端口号

多 lsof 的命令如下:

lsof -i:8080:查看8080端口占用
lsof abc.txt:显示开启文件abc.txt的进程
lsof -c abc:显示abc进程现在打开的文件
lsof -c -p 1234:列出进程号为1234的进程所打开的文件
lsof -g gid:显示归属gid的进程情况
lsof +d /usr/local/:显示目录下被进程开启的文件
lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长
lsof -d 4:显示使用fd为4的进程
lsof -i -U:显示所有打开的端口和UNIX domain文件

 

netstat

  • netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。

 

软件安装

二进制安装包

  • deb    debain package
sudo dpkg -i wps-office_11.1.0.10920_amd64.deb
  • dpkg -I 查看安装包相信信息
  • dpkg -c 查看安装安装后的位置
  • 选择 dpkg -l来查看软件的状态。选择 dpkg -P来卸载软件。
  • 因为dpkg --remove只是删除安装的文件,但不删除配置文件。
  • 而dpkg --purge则安装文件和配置文件都删除。

包管理器安装

  • yum
  • apt
  • yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。
  • 基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
  •  yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
  • apt(Advanced Packaging Tool)是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器。
  • apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
  • apt 命令执行需要超级管理员权限(root)。

yum常用命令

  • 列出所有可更新的软件清单命令:yum check-update
  • 更新所有软件命令:yum update
  • 仅安装指定的软件命令:yum install <package_name>
  • 仅更新指定的软件命令:yum update <package_name>
  • 列出所有可安裝的软件清单命令:yum list
  • 删除软件包命令:yum remove <package_name>
  • 查找软件包命令:yum search <keyword>
  • 清除缓存命令:
  • yum clean packages: 清除缓存目录下的软件包
  • yum clean headers: 清除缓存目录下的 headers
  •  yum clean oldheaders: 清除缓存目录下旧的 headers
  •  yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers

 

 apt 常用命令

  • 列出所有可更新的软件清单命令:sudo apt update
  • 升级软件包:sudo apt upgrade
  • 列出可更新的软件包及版本信息:apt list --upgradeable
  • 升级软件包,升级前先删除需要更新软件包:sudo apt full-upgrade
  • 安装指定的软件命令:sudo apt install <package_name>
  • 安装多个软件包:sudo apt install <package_1> <package_2> <package_3>
  • 更新指定的软件命令:sudo apt update <package_name>
  •  显示软件包具体信息,例如:版本号,安装大小,依赖关系等等:sudo apt show <package_name>
  •  删除软件包命令:sudo apt remove <package_name>
  • 清理不再使用的依赖和库文件: sudo apt autoremove
  • 移除软件包及配置文件: sudo apt purge <package_name>
  • 查找软件包命令: sudo apt search <keyword>
  • 列出所有已安装的包:apt list --installed
  • 列出所有已安装的包的版本信息:apt list --all-versions
sudo apt -y install apache2
sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
sudo systemctl reload apache2
sudo systemctl enable apache2
sudo systemctl disable apache2

编译后的二进制文件

 

https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz #下载压缩包
tar -zxvf jdk-17_linux-x64_bin.tar.gz -C /home/lhz/opt #解压缩
cd /home/lhz/opt #进入目录
mv jdk-17.0.2 jdk-17 #改名字
deepin-editor /home/lhz/.bashrc #用图形化界面配置变量

变量

export JAVA_HOME=/home/lhz/opt/jdk-17
export PATH=$PATH:$JAVA_HOME/bin

export M2_HOME=/home/lhz/opt/maven
export PATH=$PATH:$M2_HOME/bin

源代码编译安装

下载并编译安装

wget http://nginx.org/download/nginx-1.20.2.tar.gz

tar -zxvf nginx-1.20.2.tar.gz

cd nginx-1.20.2

sudo groupadd nginx
sudo useradd nginx -g nginx -s /sbin/nologin -M

sudo ./configure --prefix=/usr/local/nginx \
 --user=nginx --group=nginx \
 --with-http_stub_status_module --with-http_ssl_module \
 --with-http_realip_module --with-http_gzip_static_module \
 --with-file-aio --with-http_realip_module  

echo $?

sudo make -j4 

echo $?

sudo make -j4 install

sudo /usr/local/nginx/sbin/nginx -v

sudo /usr/local/nginx/sbin/nginx -t

# 启动nginx
sudo /usr/local/nginx/sbin/nginx

# 重新载入配置文件
sudo /usr/local/nginx/sbin/nginx -s reload  

# 快速关闭 Nginx
sudo /usr/local/nginx/sbin/nginx -s stop

# 关闭Nginx
sudo /usr/local/nginx/sbin/nginx -s quit                  

!!需要注意一点:如果之前开启过apache2服务器,则需要关闭此服务器,否则apache2会与nginx冲突,导致nginx无法正常访问

编写启动脚本

cd /usr/lib/systemd/system/
sudo vim nginx.service
[Unit]
Description=nginx
After=network.target remote-fs.target nss-lookup.target
 
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPost=/bin/sleep 0.1
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target
# 重新加载服务文件
sudo systemctl daemon-reload 

systemctl start|stop|reload|restart|status nginx.service

# 开机自启:
sudo systemctl enable nginx.service

# 关闭开机自启:
sudo systemctl disable nginx.service
举报

相关推荐

0 条评论