Linux/Vim/SSH基本命令

本文深入讲解了Linux系统中常用的命令,如cd、mkdir、ls、touch、mv、cp、rm、rmdir、cat、vi、chmod等,涵盖了文件操作、目录管理、权限设置等核心功能,并解析了命令的具体用法及实例。

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

Linux

服务器都是linux 系统
远程连接工具:xshell/finalshell

  • 目录结构
    在这里插入图片描述
    在这里插入图片描述
    bin 二进制文件
    boot 启动系统的核心文件
    cdrom 镜像
    dev 系统设备配置文件
    etc 服务配置文件
    home 用户信息
    initrd 初始化目录
    lib 库文件
    mnt 系统挂载文件
    proc 虚拟文件系统
    在这里插入图片描述
    快捷方式的对应 bin-> usr/bin
    图标也不一样
    在这里插入图片描述

详细版
●常见目录结构:
●/ : 根目录,是linux系统的最顶层的父目录,系统中所有的文件或目录都在根目录下面。
●root : 系统管理员的主目录,root账号登录到系统默认所在的目录就是root的主目录。
●home:普通用户的主目录,普通用户登录到系统默认所在的目录就是home,所有的普通用户共享一个home主目录
●sbin:该目录中存放的是超级管理员经常使用的一些命令
●bin:该目录中存放的是普通用户以及管理员进场使用的一些命令
●boot:存放的是系统启动时需要加载的一些自启动文件
●dev:该目录中存放的是一些第三方的设备,如鼠标,键盘,打印机等
●etc:该目录中存放的是一些系统相关的配置文件
●lib:库文件目录,存放的是bin跟sbin目录中命令执行时需要加载的库文件
●mnt:挂载文件目录,挂载的是一些第三方的临时设备,如:U盘
●opt:是一个跟系统不相关的三方软件安装目录,在该目录中我们可以自己新建文件,安装部署项目,跟系统隔离开。
●tmp:临时目录,用来存放一些临时文件,会定期删除,关机重启就自动清空
●usr:用户文件目录,该目录中存放的是一些不适合存放在根目录中的文件就存放在usr目录中
●var:存放的是一些变量文件,会发生变化的一些文件

  • 远程连接xshell,finalshell
    需要已知linux服务器的ip地址和ssh端口(默认是22)
  • 命令大全 点击跳转
cd
cd ~ #切换到Home主目录

pwd #显示当前所在的目录

ls#列出目录 文件信息
ls -a #显示目录下所有子目录和文件 包括隐藏的
ls -l #每行列出详细信息 文件类型与权限 连接数 所有者 所属组 文件大小 最近修改时间 文件名字
#password- 是password的备份文件
#0:0 用户组id:用户id
#Grep 管道过滤 过滤’g’ ‘l’ 目录或文件等

ls -lh #显示文件目录或大小 要和l一起连用
ls -lha path #组合
ls --help | more  |是管道,more进行分页
ls *.txt #匹配
ls ?.txt 
ls [abcd].txt
ls [a-z].txt
ls /bin/*.sh

[csdn ~]$ 
这是linux的命令提示符
 csdn: 表示当前的登陆用户,这里是使用csdn账户登陆.
 ~: 代码当前用户所在目录.
 $: 命令提示符.如果是root用户提示符是'#';Linux用这个符号标识登陆用户的权限.

mkdir web #创建文件夹web 
mkdir -p /home/user/documents/project/files#-p选项会自动创建所有必要的父目录

# rmdir删除指目录
rmdir web
#Tips: 前面学过的rm命令也可以删除目录.
#-r 递归删除 -f强制删除

reboot #重启
shutdown -h 20:25 #定时关机

cat /proc/version #查看当前操作系统版本信息
cat /etc/issue #查看版本当前操作系统发行信息

gedit #启动记事本
top #动态显示任务管理器 按q退出
#m 或shift+m 按内存使用率降序排列
#p 或shift+p 按cpu使用率降序排列

#PID进程号
#查看系统进程
ps -aux
ps -aux|grep bin #查找特定程序进程 苹果没有这个方法 
#windows任务管理器也可以查看PID
ps -ef|grep 'bin'#苹果电脑使用这个方法

#关闭进程
kill -9 PID #-9是强制关闭

#查看系统监听端口 网络状态及软件对应端口
netstat [-anptu]
netstat -anp | grep mysql #查看特定进程mysql
netstat -anp | grep '3306' #查看特定3306端口
'
-a 显示所有已打开端口
-p 显示对应进程id
-n 用数字显示对应端口
-t 显示所有tcp协议端口
-u 显示所有udp协议端口
'
tcp6 0 0:::3306 :::* LISTEN 1734/mysqld
#进程号1734 端口号3306

#根据端口查到对应进程号
lsof -i:22 #22是端口号
#-i 查看所有已打开的进程端口 如果后面:端口号 则查看特定端口

command --help #帮助信息
man command #显示该命令文档

#管道| 左边放内容 右边取内容
grep 选项 查找模式 文件名1...2....
#grep过滤器查找左边放的内容中的某种内容 查找模式为正则表达式
ls -l | grep ^d #显示当前目录以d开头的所有文件的详细信息
ls -l | grep more #左边详细信息中取出包含more的内容

which python3#安装路径

echo ls #回声 后面是什么 就返回什么
echo -e "Hello\nworld!" #让echo识别转义字符

variable_name = variable_value
echo $name #输出变量name的值

echo `date`#输出当前date and time

#重定向> >>
>#将命令输出结果覆盖到对应文件中
>>#将命令输出结果追加到对应文件中
>cat 1.txt > 2.txt
>cat 1.txt 2.txt > 3.txt #1+2=3
>ls -l > 3.txt #把ls详细信息放入3

ifconfig #查看网络信息 windows ipconfig
route #查看路由
ping ippath

curl https://api.example.com/data #GET Request: Retrieve data from a server.

curl -X POST -d "name=John&age=30" https://api.example.com/submit
#POST Request: Send data to a server (e.g., submitting a form).
#-X POST: Specifies that the request should use the POST method.
#-d '{"name": "John", "age": 30}' sends form data的另一种形式

curl -H "Content-Type: application/json" -X POST -d '{"name": "John"}' https://api.example.com/data
#Adding headers




#touch 用来创建一个空白文件,但如果文件已存在,则会更新时间.
touch edu.txt

mv src dest 
#可实现重命名,也可移动文件或文件夹
#-i 交互式执行 有覆盖提示
#-f 强行覆盖 不提示
#-v 显示复制的进度

cp src dest #copy 
#-r 复制文件夹 即该目录下所有内容
#-i 交互模式
#-f 强行覆盖
#-v 详细模式

# 使用 rm 文件名 命令可以删除文件或目录
rm edu.txt
#可以使用 rm --help 命令来查看 rm 相关的参数介绍 
rm --help


#比较两个文件差异
diff file1 file2
diff -i file1 file2 #忽略大小写 即ignore case
diff -b file1 file2 #忽略空格字符量的不同

cmp file1 file2#如果相同不显示任何信息,如果不同则标示第一个不同之处的字符和列号

# 检查文件系统磁盘空间使用情况disk file
df
df -a #包含所有的具有 0 Blocks 的文件系统(即 空的或有问题的) all
df -T #同时显示文件系统的形式 查看提交日志。

# 查询并打印当前目录及其所有子目录下所有文件的大小,以块为单位 disk usage
du
du -a filename #以块为单位打印指定文件 code.txt 大小
du -h #查询并打印当前目录及其所有子目录下所有文件的大小,以 K,M,G 为单位 human-readable

#显示内存大小
free

#软链接命令 即linux的快捷方式
ln -s 源文件 目标文件
#源文件用绝对路径,移动后仍可用
#可以链接目录
#不带-s参数创建的是硬链接
#硬链接文件大小与源文件相同,即使删除源文件,链接文件依然存在;但软链接会失效。
#硬链接只能是普通文件,不能说文件夹
#-f	强制创建链接,即使目标文件已经存在


权限&用户管理

  • 用户权限
    在这里插入图片描述
    运行ls -l看到
    第一列是文件类型,-普通文件,d文件夹,link是快捷方式
    在这里插入图片描述
    在这里插入图片描述
    由10个字符分成4个部分
对应位下标1234567890
对应字符段[d][rwx][r-x][—]

在这里插入图片描述

  • 使用 chmod 命令对其文件的权限进行修改,有两种方式:1、数字法,2、字母法(不是很常用,这里略)
    在这里插入图片描述
    u user 文件的所有者
    g group 用户组(同组用户)
    o other 其他用户
    a all 所有用户
    +增加权限
    -减少权限
    =设置权限

格式:chmod+ u权限分值+ g权限分值+o权限分值+文件名或目录名

例子1:所有用户可读可写可执行权限:
chmod 777 test.log  (权限分值[4+2+1][4+2+1][4+2+1])
例子2:某些文件不希望被用户组内其他人修改,不想被用户组外的人看见:
chmod 740 test.log  (权限分值[4+2+1][4+0+0][0+0+0])
例子3:字母法
chmod u+x,g-w,o=rwx  1.txt
chmod a=-  1.txt #全都没有权限
chmod u+w 1.txt #只改所有者权限
  • 用户管理
    【一般只有运维才用】
#查看当前系统用户
cat /etc/passwd

#添加用户
useradd username
#-d 新用户每次登陆时所使用的家目录
#-g 指定用户对应的用户组
#-G 定义此用户为多个不同组的成员
useradd -g root username #指定用户组为root

#修改用户
usermod [选项]  用户名
'
-d<登入目录>	修改用户登入时的目录
-g<群组>    修改用户所属的群组
-G<群组>    修改用户所属的附加群组
-e<有效期限>	修改账号的有效期限
-f<缓冲天数>	修改在密码过期后多少天即关闭该账号
-l<账号名称>	修改用户账号名称
'
userdel username
#-f	强制删除用户账号
#-r	删除用户主目录及其中的任何文件

#切换用户
su user
su root

sudo command
#设置密码 需要root用户
passwd username
passwd #设置当前用户密码

who #查看登陆账户
-q--count #只显示用户登录账号和登陆用户数量
-u--heading #显示列标题

whoami #查看当前用户名

id #打印用户id、组id uid、gid 
#-un 只打印自身有效id -gn只打印组id -ur 打印真实id

exit#退出当前终端/ssh远程登录账户/切换后的登陆用户回到上一个用户

归档压缩解压

  • 归档和压缩的区别
    归档:把⽂件打包,⼤⼩不会变
    压缩:把⽂件按照指定的格式进⾏压缩,⼤⼩会变⼩
  • 压缩的格式
    xz:压缩⽐最⼤,速度最慢 -J
    bzip:压缩⽐适中,速度适中 -j
    gzip: 压缩比最⼩,速度最快 -z
  • 归档命令
    tar
    只归档不压缩: tar -cvf 归档名 源⽂件 …
    先归档再压缩:tar -zcvf 压缩包名 源⽂件 …
    解压归档⽂件: tar -xvf 归档名 [-C 路径]
    解压压缩⽂件: tar -zxvf 压缩包名 [-C 路径]
  • unzip,zip⽤于解压或压缩zip格式⽂件
#打包压缩命令
tar -cvf xx.tar 文件/目录 #打包
tar -xvf xx.tar #解包
:'
-c 创建打包文件 create
-v 显示进度 visible
-f 指定打包文件名 放选项最后 file
-x 表示解包 extract
'
tar -cvf mike.tar *.txt *.png
tar -xvf mike.tar -C abc/ #指定路径
:'
gzip -> .tar.gz
biz2-> .tar.bz2
zip,unzip ->.zip
命令同理
'
tar -zcvf xx.tar.gz 文件/目录 #打包
tar -zxvf xx #解包
tar -jcvf xx.tar.bz2 文件/目录 #打包
tar -jxvf xx #解包
zip -r xx.zip 文件/目录 #-r表示压缩的是一个目录 压缩的文件名后面可不带后缀
unzip -d 解压目录 压缩文件名
#-d 是一个选项,用于指定解压缩的目标目录(destination directory)
#不用默认放在当前目录下

查找文件/库

#查找目标目录以及子目录下的文件及文件夹
find 起始目录 查找条件 操作 #directory只是起始目录 查询当前目录及其子目录下
#查找条件有-a and /-o or/ ! not/-name 基于文件名找 /
#-type typechar 基于文件类型找
'
1) f:普通文件,如文本文件,可执行文件
2) d:目录
3) l:软链接文件
4) c:字符设备,如终端,磁带机等
5) b:块设备,如光盘,硬盘等
'
find . -name "*.c"
find [路径] -name 文件名
#路径不填 默认是当前目录
#文件名可用通配符表示
find . -name test.sh
find . -name *.sh

find directory -empty #查询当前目录及其子目录中的所有空文件并列出
# -iname  忽略大小写

find . -size +0 -type f
#+0 表示大于0 
#-type f限制只能是文件 不能是文件夹或其他

find sub_dir -size 0 -type f > file
#sub_dir查询当前目录的子目录
#>重定向 写入file

find directory #查询当前目录及其子目录下所有文件和目录并列出
#如果是当前路径 省略directory
#-type f 不含目录列出  -type d 只含目录列出

#查找文件
grep 找文件里面的内容 见下方查看文件
find 找硬盘中的某个文件

查看文件

命令作用
cat filename.txt显示文件内容
cat file1 file2 > newfile合并文件
cat file1.txt file2.txt不合并,只是查看多个文件
cat > newfile创建新文件
cat -n filename.txt显示带行号的内容
cat -s filename.txt去除多余空行
cat file1.txt >> file2.txt追加到新文件
cat largefile.txt | less可以根据文件大小选择显示less 或more的量
#查看文件全部内容 较少内容的
cat 
#查看较多内容的文件【常用】
grep 文件名
#-v 取反
#-n显示匹配的行和行好
#-i忽略大小写
#-c 计数
grep -n '^a' 1.txt #查询1.txt里面的匹配
grep -ni 'ke$' 1.txt
grep -nv '[abc]def[gh]' 1.txt

grep string filename#在文件中找含某字符串的行

grep -A -B -C 属于上下文控制(Context control)
grep -A 显示匹配指定内容及之后的n行
grep -B 显示匹配指定内容及之前的n行
grep -C 显示匹配指定内容及其前后各n行
#例:
grep -A 5 name test.txt
#显示test.txt中与“name”字符串匹配的行,和其后面的五行

#查看文件 默认显示前10行
head 文件名
head -20 filename.x  #显示前20行
tail 文件名
tail -f 文件名#实时显示日志文件信息(记事本自己加字符保存这种不会显示)
ls -l >1.txt #这种加入可以实时显示
ping ...xx >1.txt 

#查看少量文件内容
less file1  #回车一行行显示 空格一页页显示 q退出 more相同
#查看较多内容的文件 分屏显示
more 
#空格下一页 回车滚动显示下一页 b上一页 f下一页 q退出

#stat 命令用来显示文件或文件系统的详细信息
#包括文件的访问时间(Access time)、修改时间(Modification time)等、文件大小
stat temp1#查看文件
stat -f . #查看文件 temp1 所在文件系统的信息
stat * #查看当前所有文件的信息

类似于编程语言的功能

  • 变量
a=1
b=2
let c=a+b
let a++
echo $a $b $c

Vi/Vim

  • 普通模式
    用来管理文件, 首次进入vi/vim编辑器使用的是普通模式
    以行为单位,操作:
    yy 复制
    p粘贴 <-> Mac中粘贴直接用ctrl+v
    dd剪切
  • 插入模式/编辑模式
    用来修改文件
    I,i,a,A进入插入模式,按ESC回到命令行模式
  • 命令行模式
    用来保存/退出文件
    shift+ : 或直接冒号进入命令行模式,ESC退出命令行模式
    w:保存并回到命令行模式
    q:退出编辑器
    !:强制
    wq!:强制保存并退出
vim a.txt #打开a.txt

i #光标前面插入
I #光标所在行开始处插入
a #光标后面添加
A #光标所在末尾添加

x #删除光标处字符
dd #删除光标处整行
yy #复制光标所在整行
p #将复制后的文本粘贴到光标处
u #撤销操作

esc #退出编辑模式
:q #不保存退出
w #写入
q #退出
:q! #放弃修改,强行退出
:wq #保存并退出

SSH

远程连接工具

ssh ip_address

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

七灵微

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

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

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

打赏作者

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

抵扣说明:

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

余额充值