Linux笔记
重要系统目录介绍、Linux常用命令、vim快捷键、文本工具、tar打包压缩、yum安装与卸载、编译安装、应用服务化、用户与用户组常用命令、sudo、firewall防火墙
系统目录
绝对路径 | 用途 |
---|---|
/bin | 常用的二进制命令所在目录, 例如ls、cp、mkdir… |
/etc | yum、rpm方式安装应用程序的默认配置文件路径 |
/usr | 存放用户应用程序的目录,包含两个重要子目录 |
/usr/local | 编译方式安装程序的默认目录 |
/usr/src | 程序源码目录 |
文件操作命令
命令 | 用途 |
---|---|
cd | 切换目录 |
pwd | 查看当前目录 |
ls、ll | 显示目录内容 |
mkdir | 创建目录 |
cp | 复制文件与目录 |
mv | 移动或重命名文件 |
rm | 删除文件或目录 |
rmdir | 删除空目录 |
find | 查找目录或文件 |
more | 以分页的形式显示文件内容 |
mkdir
-p 创建多级目录
mkdir -p demo/1/2/3
-v 详细打印每个创建目录信息
mkdir -v demo/4
cp
-r 递归复制
cp -r source new
rm
-f 强制删除不提示
rm -f demo/1/2/3
-r 递归删除目录和内容
rm -r demo
rmdir
-p 当子目录被删除后父目录为空目录的话,则一并删除
# 删除名为test的空目录
rmdir test
# 删除demo目录中名为test的子目录,若删除后demo目录为空目录则也被删除
rmdir -p demo/test
# 删除名称以test开头的空目录
rmdir test*
find
# 查找demo目录下 后缀为.txt的文件
find ./demo/ -name *.txt
more
# 以分页方式显示/etc目录下profile文件内容
more /etc/profile
操作说明:
- 回车键-向下滚动一行
- 空格键-向下滚动一屏
- b-返回上一屏
- q或者ctrl+c-退出more
vim快捷键
vim有三种模式分别是命令模式、输入模式、底线命令模式,在命令模式下按键盘 i 可进入到输入模式;输入 : 可进入到底线命令模式
命令 | 用途 |
---|---|
delete或x | 删除单个字符 |
dd | 删除整行 |
u | 撤销最近一次操作 |
/str | 全文查找str字符串,n下一个,N前一个 |
:% s/old/new/g | 替换文件内所有old字符串为new |
:wq或者:wq! | 退出并保存,只读文件要额外加! |
:q! | 强制退出放弃保存 |
文本工具
命令 | 用途 |
---|---|
echo | 屏幕打印与文本输出 |
cat | 合并文件或查看文件内容 |
tail | 显示文件内容尾部 |
grep | 文本过滤工具 |
echo
# 文本输出
echo "hello"
# 屏幕打印 hello.txt 文件
echo hello.txt
# 将world输入到 hello.txt 文件(覆盖)
echo "world" > hello.txt
# 将world追加到 hello.txt 文件
echo "world" >> hello.txt
cat
# 查看文件内容
cat hello.txt
# 将两个文件合并写入到 new.txt
cat hello.txt world.txt >> new.txt
# 重写文件(要以定义的end结尾结束)
cat > demo.txt << end
-n 显示行号
cat -n hello.txt
-E 在每行末尾显示 $
cat -E hello.txt
tail
-n 指定输出最后2行
tail -n 2 hello.txt
-f 事实监控文件的变化
tail -f hello.txt
grep
# 在 hello.txt 中查找mushan
grep mushan hello.txt
-v 排除指定字符
grep -v mushan hello.txt
-E 使用正则表达式
# 例如:log1.txt log10.txt log00009.txt
grep -E "log[0-9]{1,5}.txt"
查看指定的文件
ll | grep hello.txt
tar打包和压缩
命令 | 用途 |
---|---|
z | 通过gzip压缩或解压 |
c | 创建新的tar.gz文件 |
v | 显示执行过程 |
f | 指定压缩文件名称 |
x | 解压tar.gz文件 |
-C | 指定解压的目录 |
# 压缩命令(把/usr/local/tomcat压缩成tomcat.tar.gz)
tar -zcvf tomcat.tar.gz /usr/local/tomcat
# 解压缩命令(把tomcat解压到当前目录)
tar -zxvf tomcat.tar.gz
# 解压缩命令(把tomcat解压到/usr/local)
tar -zxvf tomcat.tar.gz -C /usr/local
yum安装和卸载
# 在仓库中查询tree是否存在指定应用
yum search tree
# 下载安装应用及相关依赖(-y 遇到询问统一使用y进行回答)
yum install -y tree.x86_64
# 查看 tree可执行文件位置
which three
# 查询 tree安装了哪些文件
rpm -ql tree.x86_64
# 查看已安装的应用程序有哪些
yum list installed
# 查看应用的详细信息
yum info tree.x86_64
# 查看已安装的应用程序有哪些(筛选包含了tree)
yum list installed *tree*
# 移除应用程序
yum remove tree.x86_64
编译安装
# 下载解压源码后再根目录执行 make进行编译
make
yum和编译安装最大的区别是yum会自动在/usr/bin/生成对应的应用程序,而编译安装不会,它只会在编译的目录下生成应用程序
netstat 查看网络端口号
命令 | 用途 |
---|---|
t | 显示tcp传输协议的连接状态 |
u | 显示udp传输协议的连接状况 |
l | 显示处于监听状态的网络连接 |
p | 显示应用pid的程序名称 |
n | 显示IP地址 |
a | 显示所有连接 |
o | 显示计时器 |
netstat -tulpn
netstat -ano
# 查看进程
ps -ef
# 获取包含 vim的进程
ps -ef | grep vim
# 杀死进程
kill -9 pid
应用服务化
- 应用服务化是指让应用程序以服务方式在系统后台运行
- Linux系统对服务化应用进行统一管理
- 服务管理命令:systemctl
命令 | 用途 |
---|---|
start | 启动服务 |
stop | 停止服务 |
restart | 重启服务 |
enable | 设置开机启动 |
disable | 禁止开机启动 |
status | 查看服务状态 |
daemon-reload | 重载服务配置文件 |
list-unit-files | 列出所有服务 |
用户与用户组常用命令
命令 | 用途 |
---|---|
useradd [用户名] | 创建新用户 |
passwd [用户名] | 修改密码 |
usermod -g(-G可以赋予多个组) [组名] [用户名] | 修改用户信息/分配组(覆盖原组) |
groupadd [组名] | 创建新的用户组 |
groupdel [组名] | 删除用户组 |
chown [用户名]:[组名] [目录名] | 更改文件的属主或属组 |
chmod [750、777、700] [目录名] | 更改文件的访问权限 |
newgrp | 切换用户当前组 |
groups | 查看当前用户组 |
sudo
- sudo可以让普通用户拥有超级管理员的执行权限
- 普通用户要进行经过超级管理员授权才能使用
- 授权命令:visudo (100+gg定位到100行,把要添加的用户配置权限)
- 改完 visudo -c 进行格式检查
# 暂时申请权限
sudo su
# 例如:单次操作获取权限
sudo useradd d3
firewall防火墙
# 查看防火墙状态 running: 正在运行中
firewall-cmd --state
# 查看当前放行的端口有哪些
firewall-cmd --list-ports
# 添加放行8080端口
firewall-cmd --zone=public --permanent --add-port=8080/tcp
# 移除放行8080端口
firewall-cmd --zone=public --permanent --remove-port=8080/tcp
# 放行区域端口
firewall-cmd --zone=public --permanent --add-port=8000-9000/tcp
# 将防火墙配置重载
firewall-cmd --reload
nohup
nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
语法格式:
- nohup Command [ Arg … ] [ & ]
参数说明:
- Command:要执行的命令
- Arg:一些参数,可以指定输出文件
- &:让命令在后台运行
# 后台运行java -jar命令,并将日志输出到hello.log文件
nohup java -jar boot工程.jar &> hello.log &