必须掌握的Linux命令

本文为Java开发者总结了常用的Linux命令,包括查看目录内容、切换目录、创建文件和目录、删除文件和目录、复制和剪切、字符串搜索、环境变量、进程管理、磁盘使用、内存查看、文件编辑、进程查看、软件安装及防火墙设置等,旨在提升开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

必须掌握的Linux命令

本文章列举比较常用的Linux命令,针对的是Java开发人员,不是运维

查看目录中内容
ls [选项] [文件或目录]

ls -alh
ll  :ls -l的缩写

-a	显示所有文件,包括隐藏文件
-l	显示详细信息
-h	人性化显示文件大小

查询所在目录位置
pwd

切换所在目录
cd [目录]

简化操作:
cd ~   :切换到用户目录(家目录)
cd     :切换到用户目录
cd -   :切换到上一个访问目录
cd ..  :切换到上一级目录
cd .   :切换到当前目录

创建文件
touch 文件名

建立目录
mkdir  目录名
	-p 递归创建
mkdir -p xx/yyy/zz	:创建多级目录

删除空目录(目录为空时执行)
rmdir 目录

删除文件或目录
rm -rf [文件或目录]

选项:
	-r		递归删除目录
	-f		强制(不需要提示)
	
rm -r 目录	:递归文件夹 带提示
rm -f 文件	:删除文件
rm -rf 文件/文件夹	:递归删除,无提示

禁止: rm -rf  /*  删除所有文件

复制
cp [选项] [原文件或目录] [目标目录]

选项:
	-r		复制目录
	
cp 源文件 备份文件		:备份文件
cp -r 源目录 目标目录	:备份目录

剪切或改名
mv [原文件或目录] [目标目录]

mv 源文件 目标目录	:剪切
mv 源文件 不存在的文件	:重命名
mv 源文件 文件夹/不存在的文件	:剪切重命名

字符串搜索
grep [选项] 字符串 文件名

#在文件当中匹配符合条件的字符串
选项:
	-i	忽略大小写
	-v	排除指定字符串

grep timezone anaconda-ks.cfg 

经典使用:ps查询出进程,使用管道符把查询出来的进程作为结果被右边使用
ps -ef | grep java 

PATH环境变量
PATH环境变量:定义的是系统搜索命令的路径
相当于window下的path
echo $PATH  : 查看环境变量
修改配置环境变量文件
vi  /etc/profile

帮助命令
man ls
#查看ls的帮助

man 命令名		:查看帮助命令  f     b 键翻页  q退出
命令 --help
#获取命令选项的帮助

实例:
	ls --help

命令 --help		:简洁版帮助

但是不适用内部命令,如cd:
命令特殊时,使用
help 命令  比如: help cd

打包、压缩、解压(.zip、.gz、.bz2、.tar.bz2、.tar.gz等)
打包命令:
tar -cvf 打包文件名 源文件
选项:
	-c		打包
	-v		显示过程
	-f		指定打包后的文件名

tar -cvf learn.tar learn

解打包命令:
tar -xvf 打包文件名
选项:
	-x		解打包
tar -zcvf 压缩包名.tar.gz 源文件

选项:
	-z		压缩为.tar.gz格式

tar -zcvf learn.tar.gz learn
tar -zxvf 压缩包名.tar.gz

选项:
	-x		解压缩.tar.gz格式

#加上-C表示解压到指定的目录
tar -zxvf 压缩包名.tar.gz -C 指定目录

解压:
tar -zxvf learn.tar.gz  -C  目录

压缩:
tar -zcvf learn.tar.gz learn

磁盘使用情况
df:用于显示磁盘的使用情况
df -h: 格式化显示输出磁盘使用情况

查看任务进程
top

查看内存占用
free -h 格式化显示

查看操作历史
history

在显示器输出内容
echo

文件查看命令
cat		整个文件的内容显示出来
tail
默认在屏幕上显示指定文件的末尾10行
参数:
	-f  显示文件最新追加的内容。
	-行数   在屏幕上显示指定文件的末尾参数设置的行数

编辑器三种模式
三种模式:

#编辑模式(命令模式) :所有的机键动作都会理解为编辑整个文档的操作,默认为编辑模式

#输入模式:大部分机键动作都会理解为输入的字符

#末行模式:在末行模式,输入很多文件管理命令

模式之间的相互转换: 
------------------------------------------
#编辑-->输入
	i
ctrl+f 向下翻一页
ctrl+b 向上翻一页
------------------------------------------
#输入模式-->编辑模式
	ESC(键盘左上方的按键)
------------------------------------------
#编辑模式--->末行模式
	: 
:wq --> 保存退出
:q! --> 退出不保存
------------------------------------------
#末行模式:-->编辑模式
	ESC(键盘左上方的按键)(一次或者多次)
------------------------------------------
#删除命令
dd: 删除光标所在行 (编辑模式)
3dd:从光标行开始删除3行(编辑模式)
: 1,4d 删除第一行到第四行(末行模式)

#复制粘贴命令
yy 复制光标所在行 (编辑模式)
2yy 从光标行开始复制2行(编辑模式)
p: 粘贴命令

#查找替换
#文件的查找
/parttern 从前往后查找
?parttern 从后往前查找
n:  下一个匹配的字符串
N: 上一个匹配的字符串

#文本的替换(末行模式)
startNum,endNums/partter/string/gi
g:全局替换
i:忽略大小写
%s/f/F/gi
:.,$s/F/f/gi
/关键字                 按n找下一个
set number        设置行号    
或者 
set nu
取消行号
set nu!

查看进程
用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。

ps -ef 显示出的结果:
1.UID       用户ID
2.PID        进程ID
3.PPID      父进程ID
4.C           CPU占用率
5.STIME     开始时间
6.TTY         开始此进程的TTY----终端设备
7.TIME       此进程运行的总时间
8.CMD       命令名

经典使用:ps查询出进程,使用管道符把查询出来的进程作为结果被右边使用
ps -ef | grep java 
杀死进程
kill -9 pid

防火墙
centos7的防火墙程序服务名为:firewalld
防火墙配置命令:firewall-cmd
#防火墙帮助:
firewall-cmd --help

#查看防火墙状态:
firewall-cmd --state

#查看所有打开的端口:
firewall-cmd --zone=public --list-ports

#开启端口:
firewall-cmd --zone=public --add-port=端口号/tcp --permanent(--permanent参数为永久生效,不加则重启后失效)
firewall-cmd --zone=public --add-port=80/tcp --permanent

#更新防火墙规则:
firewall-cmd --reload

#删除端口:
firewall-cmd --zone=public --remove-port=端口号/tcp --permanent
firewall-cmd --zone=public --remove-port=80/tcp --permanent

#关闭防火墙	
systemctl  stop firewalld
systemctl disable firewalld

软件的安装

rpm

rpm 常用命令
#安装一个包 
rpm -ivh <包名>

rpm -ivh  --nodeps  <包名>  : 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。 

--force 即使覆盖属于其它包的文件也强迫安装 

#查询一个包是否被安装 
rpm -q <软件名>

#得到被安装的包的信息 
rpm -qi < 软件名> 

#列出该包中有哪些文件 
rpm -ql < 软件名> 

#列出服务器上的一个文件或目录属于哪一个RPM包 
rpm -qf <文件或目录名>

#列出所有被安装的rpm package 
rpm -qa 

#卸载一个包 
rpm -e <软件名>

#有安装包,知道依赖关系使用rpm

yum

#配置一个自定义的仓库地址

	/etc/yum.repos.d

	local.repo

#安装命令
	yum install 

#查看软件包
	yum list |grep mysql
	yum list installed

#卸载软件包
	yum remove  

#没安装包, 不知道依赖关系,使用yum

修改仓库地址为阿里巴巴

第一步:将原来的目录改个名,晾到一边

mv /etc/yum.repos.d /etc/yum.repos.d-bak

第二步:原来的目录还得再恢复

mkdir /etc/yum.repos.d

第三步:下载阿里云的yum源配置

cd /etc/yum.repos.d

wget http://mirrors.aliyun.com/repo/Centos-7.repo

第四步:清除yum原来的缓存

yum clean all
//注意clean与all之间还有一个空格

第五步:查看这个软件源中有多少软件包

yum repolist

[root@localhost yum.repos.d]# yum repolist
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                     | 3.6 kB     00:00     
extras                                                   | 3.4 kB     00:00     
updates                                                  | 3.4 kB     00:00     
(1/4): base/7/x86_64/group_gz                              | 166 kB   00:00     
(2/4): extras/7/x86_64/primary_db                          | 187 kB   00:05     
base/7/x86_64/primary_db       FAILED                                           
http://mirrors.aliyuncs.com/centos/7/os/x86_64/repodata/03d0a660eb33174331aee3e077e11d4c017412d761b7f2eaa8555e7898e701e0-primary.sqlite.bz2: [Errno 14] curl#7 - "Failed connect to mirrors.aliyuncs.com:80; Connection refused"
Trying other mirror.
(3/4): updates/7/x86_64/primary_db                         | 5.2 MB   00:26     
(4/4): base/7/x86_64/primary_db                            | 5.9 MB   00:30     
repo id                  repo name                                        status
base/7/x86_64            CentOS-7 - Base - mirrors.aliyun.com             9,911
extras/7/x86_64          CentOS-7 - Extras - mirrors.aliyun.com             402
updates/7/x86_64         CentOS-7 - Updates - mirrors.aliyun.com          1,333
repolist: 11,646

如果最后一行的repolist后面是0,那你肯定是某个地方弄错了,得找找原因会不会是网络不通呢?

ping mirrors.aliyun.com

ping不通?肯定要找一找网络的问题了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值