Linux基础知识及命令(更新)
2025-08-22 16:06:03,

一、基础知识

Windows操作系统的设计初衷是单用户操作系统,而Unix和Linux操作系统的设计初衷是多用户操作系统。
Linux操作系统不分盘,只有一个根目录/,所有的文件目录都在其下面

1.1 主要的文件结构

目录 注释
/bin 二进制文件,系统常规命令
/boot 系统启动分区,系统启动时读取的文件
/dev 设备文件
/etC++ 大多数配置文件
/home 普通用户的家目录
/media 手动临时挂载点
/mnt 手动临时挂载点
/opt 第三方软件安装位置
/sbin 系统管理命令
/usr 用户相关设定

1.2 系统命令行的含义

实例:
root@app00:~#

root //用户名,root为超级用户
@ // 分隔符
app00 // 主机名
~ // 当前所在目录,默认用户
$ //普通用户 #为超级用户

1.3 命令组成

command [-options] [parameter]
例: command --help 查看当前命令帮助信息

二、基础操作及命令

2.1 系统基本操作

 2.1.1.关机
shutdown -h now或者 poweroff<br>
shutdown -h 2   //两分钟后关机  
 2.1.2.重启
shutdown -r now 或者 reboot  
shutdown -r 2 //两分钟后重启  
2.1.3查看网络ip状态
ifconfig  //windows 为ipconfig  
 2.1.4.防火墙
 service iptables status      //查看iptables服务的状态
 
  service iptables start       //开启iptables服务
  
  service iptables stop        //停止iptables服务
  
  service iptables restart     //重启iptables服务
  
  chkconfig iptables off       //关闭iptables服务的开机自启动
  
  chkconfig iptables on        //开启iptables服务的开机自启动
  
  <>centos7 防火墙操作
  
  systemctl status firewalld.service     //查看防火墙状态
  
  systemctl stop firewalld.service       //关闭运行的防火墙
  
  systemctl disable firewalld.service    //永久禁止防火墙服务
2.1.5检测系统环境
* 查看 CPU 内核:

lscpu或cat /proc/cpuinfo

* 查看内存大小:

free -h或cat /proc/meminfo

* 查看硬盘大小:

df -h查看已挂载分区,lsblk查看所有块设备,fdisk -l查看分区详细信息

* 检测服务器默认模式图形模式or字符文本模式

systemctl get-default   //graphical.target为图形模式  multi-user.target为文本模式

2.1.6 配置映射

 修改文件: vi /etc/hosts  在文件最后添加映射地址,示例如下:
 
   192.168.1.101  node1
   
   192.168.1.102  node2
   
   192.168.1.103  node3
   
  配置好以后保存退出,输入命令:ping node1 ,可见实际 ping 的是 192.168.1.101
  
2.1.7查看系统版本
cat /proc/version   //查看您当前操作系统版本   

uname               //查看内核版本

2.2 目录操作


(1)切换目录

  cd /                 //切换到根目录
  
  cd /bin              //切换到根目录下的bin目录
  
  cd ../               //切换到上一级目录 或者使用命令:cd ..
  
  cd ~                 //切换到home目录
  
  cd -                 //切换到上次访问的目录
  
  cd xx(文件夹名)       //切换到本目录下的名为xx的文件目录,如果目录不存在报错
  
  cd /xxx/xx/x         //可以输入完整的路径,直接切换到目标目录,输入过程中可以使用tab键快速补全
  

(2)查看目录

  ls                   //查看当前目录下的所有目录和文件
  
  ls -a                //查看当前目录下的所有目录和文件(包括隐藏的文件)
  
  ls -l                //列表查看当前目录下的所有目录和文件(列表查看,显示更多信息),与命令"ll"效果
  一样
  ls /bin              //查看指定目录下的所有目录和文件 
  

(3)创建目录

  mkdir tools       

  //在当前目录下创建一个名为tools的目录
  
  mkdir /bin/tools     //在指定目录下创建一个名为tools的目录
  

(4)删除目录与文件

  rm 文件名              //删除当前目录下的文件
  
  rm -f 文件名           //删除当前目录的的文件(不询问)
  
  rm -r 文件夹名         //递归删除当前目录下此名的目录
  
  rm -rf 文件夹名        //递归删除当前目录下此名的目录(不询问)
  
  rm -rf *              //将当前目录下的所有目录和文件全部删除
  
  rm -rf /*             //将根目录下的所有文件全部删除【慎用!相当于格式化系统】
  
  rm -f *log*     //通配符,删除当前目录下有log的所有文件
  

(5)修改目录

  mv 当前目录名 新目录名        //修改目录名,同样适用与文件操作
  
  mv /usr/tmp/tool /opt       //将/usr/tmp目录下的tool目录剪切到 /opt目录下面
  
  mv -r /usr/tmp/tool /opt    //递归剪切目录中所有文件和文件夹
  

(6)拷贝目录

  cp /usr/tmp/tool /opt       //将/usr/tmp目录下的tool目录复制到 /opt目录下面
  
  cp -r /usr/tmp/tool /opt    //递归剪复制目录中所有文件和文件夹
  

(7)搜索目录

  find /bin -name 'a*'        //查找/bin目录下的所有以a开头的文件或者目录
  

(8)查看当前目录

  pwd                         //显示当前位置路径

2.2 文件操作

2.2.1文件基本操作

(1)增加删除文件

   touch  a.txt         //在当前目录下创建名为a的txt文件(文件不存在),如果文件存在,将文件时间属性修改为当前系统时间
  rm 文件名              //删除当前目录下的文件
  rm -f 文件名           //删除当前目录的的文件(不询问)
  truncate -s 0 文件      //清空文件  文件大小置为0

(2)编辑文件(vi vim)

  vi 文件名              //打开需要编辑的文件
  --进入后,操作界面有三种模式:命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)
  命令模式
  -刚进入文件就是命令模式,通过方向键控制光标位置,
  -使用命令"dd"删除当前整行
  -使用命令"/字段"进行查找
  -按"i"在光标所在字符前开始插入
  -按"a"在光标所在字符后开始插入
  -按"o"在光标所在行的下面另起一新行插入
  -按"O"在光标所在行的上面一行行插入
  -按":"进入底行模式
  -按":"进入底行模式后set number  显示行号
   :g/关键词/d   示例::g/error/d 删除所有包含error的行
   :%d    删除全文
   s/lantian/sky/         #替换当前行第一个 lantian 为 sky
  :s/lantian/sky/g     #替换当前行所有 lantian 为 sky
  :n,$s/lantian/sky/     #替换第 n 行开始到最后一行中每一行的第一个 lantian 为 sky
  :n,$s/lantian/sky/g     #替换第 n 行开始到最后一行中每一行所有 lantian 为 sky
  #(n 为数字,若 n 为 .,表示从当前行开始到最后一行)
  :%s/lantian/sky/        #替换每一行的第一个 lantian 为 sky
  :%s/lantian/sky/g    #(等同于 :g/lantian/s//sky/g) 替换每一行中所有 lantian 为 sky
  可以使用 #或+ 作为分隔符,此时中间出现的 / 不会作为分隔符
  :s#lantian/#sky/#         替换当前行第一个 lantian/ 为 sky/

   
G           跳到最后一行
gg          跳到第一行
5G          跳到第5行
yy          复制当前行
5yy         复制从当前行往后的5行
p           粘贴已复制的行到光标后
P           粘贴已复制的行到光标前
dd          (1)剪切当前行,以p粘贴;(2)删除当前行
5dd         删除5行,(含当前行)
dG          从当前行删到最后一行
D           从光标处删除到行尾
5dG         从当前行删到第五行
x           删除光标所在位置的字符
5x          删除光标所在位置的字符及往后的5个字符
X           删除光标所在位置的前一个字符
u           撤销之前的操作
Ctrl + r    反撤销(恢复撤销)
数字0或者^   将光标移动到当前行的行首
$           将光标移动到当前行的行尾
ctrl +f     向下翻页
ctrl +b     向上翻页
n           查找下一个相同的字符
N           查找上一个相同的字符
r           替换光标所在位置的字符
R           从光标当前位置开始替换字符,输入内容会覆盖后面等长的内容,按“Esc”结束输入
h           向左移动光标
j           向下移动光标
k            向上移动光标
l向右移动光标
  插入模式
  -此时可以对文件内容进行编辑,左下角会显示 "-- 插入 --""
  -按"ESC"进入底行模式
  底行模式
  -退出编辑:      :q
  -强制退出:      :q!
  -保存并退出:    :wq
  ## 操作步骤示例 ##
  1.保存文件:按"ESC" -> 输入":" -> 输入"wq",回车     //保存并退出编辑
  2.取消操作:按"ESC" -> 输入":" -> 输入"q!",回车     //撤销本次修改并退出编辑
  ## 补充 ##
  vim +10 filename.txt                   //打开文件并跳到第10行
  vim -R /etc/passwd                     //以只读模式打开文件
  :set nu                                //设置行号
  :word                                  //从文本查找字符串,按“n”查看下一个字符串,区分大小写
  :/^word                                //查询以work开头的行
  :work$                                 //查询work结尾

(3)查看文件

  cat a.txt          //查看文件最后一屏内容
  cat 文件 |grep -i error    检索出该文件带有error关键词的  -i 忽略大小写
  less a.txt         //PgUp向上翻页,PgDn向下翻页,"q"退出查看
  more a.txt         //显示百分比,回车查看下一行,空格查看下一页,"q"退出查看
  tail -100 a.txt    //查看文件的后100行,"Ctrl+C"退出查看

(4)文件权限

  文件权限简介:'r' 代表可读(4),'w' 代表可写(2),'x' 代表执行权限(1),括号内代表"8421法"
  ##文件权限信息示例:-rwxrw-r--
  -第一位:'-'就代表是文件,'d'代表是文件夹
  -第一组三位:拥有者的权限
  -第二组三位:拥有者所在的组,组员的权限
  -第三组三位:代表的是其他用户的权限
  a所有用户(all),系统默认值   u用户(user)文件所有者  g同组用户(group)  o其他用户(others)
  文件权限及修改命令:https://www.jianshu.com/p/4720cbedd790

(5)打包与解压

  .zip、.rar        //windows系统中压缩文件的扩展名
  .tar              //Linux中打包文件的扩展名
  .gz               //Linux中压缩文件的扩展名
  .tar.gz           //Linux中打包并压缩文件的扩展名
  
  tar -zcvf 打包压缩后的文件名 要打包的文件
  参数说明:z:调用gzip压缩命令进行压缩; c:打包文件; v:显示运行过程; f:指定文件名;
  示例:
  tar -zcvf a.tar file1 file2,...      //多个文件压缩打包


  tar -zxvf a.tar                      //解包至当前目录
  tar -zxvf a.tar -C /usr------        //指定解压的位置
  unzip test.zip             //解压*.zip文件 
  unzip -l test.zip          //查看*.zip文件的内容 
  
rpm -ivh *rpm

(6)Linux scp 命令详解及实现本地文件和远程服务器文件互传

scp -r /path/to/local/file username@remotehost:/path/to/remote/directory

需要配置scp密钥
https://blog.csdn.net/weixin_44688581/article/details/117652733

或者
rsync -avz /..   user@1.1.1.1:/..   #建议使用rsync同步文件

2.2.2 文件权限


来源知乎

chmod 755 file_name
表示将文件file_name权限修改为 u可读可写可执行 g可读可执行 o可读可执行
类似
chmod uGo+rx,u+w file_name

https://www.jianshu.com/p/4720cbedd790



chown 更改的文件的所有者和组,chmod更改文件或目录的访问权限
权限决定了用户可以对文件执行哪些操作,例如读取、修改或执行文件。所有者和组则决定了哪些用户和组可以成为文件的默认访问者
chown 用户名:组名 文件路径

2.3 其它操作

1.
列出所有包含“Java”字样的进程信息,包括进程ID、启动用户、启动时间等
ps -ef|grep java
jps -l   显示Java进程的ID和软件名称    (若不显示java进程,ps -ef|grep java显示,排查是不是这个原因https://blog.csdn.net/qq_32575047/article/details/103508432)
或jps -lmv 显示Java进程的ID、软件名称、启动main方法的输入参数以及虚拟机参数

kill -9 <java进程ID>   强制指定Java进程
pkill -9 java          强制结束所有java进程
2.
cat 文件 |grep -i error    检索出该文件带有error关键词的  -i 忽略大小写

3. 查询端口
netstat -tulnp|grep 端口号
ss -tulnp| grep 端口号