linux常用的核心快捷键,Linux 笔记:核心思想、常用命令以及脚本语法

本文介绍了Linux系统的目录树结构,指出Linux将所有数据视为文件或目录,并以根目录(/)为基础。挂载概念解释了目录树与磁盘分区的关系,即通过挂载将磁盘分区映射到特定目录。文章还列举了常用Linux命令,如ls、cd、rm、cat等,并提供了一个遍历目录的shell脚本示例。最后,提到了用户管理和日志查看等相关命令。
摘要由CSDN通过智能技术生成

核心思想

目录树结构(directory tree)

Linux 系统是基于目录树结构的,这是它的核心思想。目录,即文件夹。Linux 系统相当于一个文件夹,Linux 系统的所有数据要么对应一个文件夹,要么就是一个文件。比如,你新建一个用户,其实就是新建了一个文件夹。一个用户对应一个文件夹。目录树结构:

1460000020504078?w=360&h=191

上图中 长方形是文件夹, 波浪形是文件,根目录是 / 。这个 / 很巧妙,在 macOS 中,假设你下载文件 test.md 到 /Users/username/Desktop/,那么文件会下载到桌面,最前面这个 / 就是根目录。如果你写成 Users/username/Desktop/,那么文件就会下载到currentDerectory/Users/username/Desktop/下。

Linux 系统使用的是目录树架构,但其实数据是存放在 磁盘分区 当中的,那么问题来了:目录树和磁盘分区是神马关系?这个时候就牵扯到一个叫「挂载(mount)」的概念了。

目录树和磁盘分区的关系

挂载其实就是建立目录树和磁盘分区之间的关系。目录只是一个标识,叫什么我们可以自定义,一个磁盘分区对应一个目录。

我们经常用 U 盘,假设一个 U 盘是一个磁盘分区,我们把一个假设叫 partition1 的 U 盘插到 Windows 电脑上,可能电脑就多了个 F 盘,那么目录就是 F ,相当于将目录 F 挂载到了 U 盘上,访问 F 就可以访问 partition1 里的内容。如果再插一个假设叫 partition2 的 U 盘,系统应该就会多了一个 H 盘,相当于目录 H 就挂载到了 partition2 上。假设 F 盘下将会有一个存放很多视频的 moive 文件夹,我们可以直接将 movie 文件夹挂载到 partition2 上,这样 movie 里的视频就存到 partition2 里面了,就不占用 F 盘的空间了。

在 Linux 系统中道理也是一样的,比如在搭建 Linux 环境的时候,可以将 /home 单独挂载到一个磁盘分区上。

1460000020504079

常用命令

命令

含义

选项

示例

--help

ls --help

man

manual

man man

ls

list

-a, --all

-h, --human-readable

-l, --long listing format

ls -ah:显示目录下所有文件夹,包括隐藏文件夹

ls -l == ll

cd

change directory

cd 相当于 cd ~,~ 当前用户根目录

cd / 根目录

cd .. 上一层

cd ../.. 上两层

cd ../ 上一层里面某个目录

cd / 当前目录下的某个目录下的某个目录

rm

remove

-d, --direcorty

-r, --recursive

-f, --force

rm

rm -d

rm -rf

rm *.pdf

cat

concatenate

cat

mkdir

make direcotry

mkdir

touch

create a file

touch

mv

move

move oldname name

move /

cp

copy

cp test test.bak

zip

-r, --recurse

zip -r test.zip test/

unzip

unzip test.zip

tar

tape or archive

-f, --file=ARCHIVE

-c, --create

-t, --list

-v, --verbose

-x, --extract

-z, --gzip, --gunzip, --ungzip

tar -cf archive.tar foo bar:将文件 foo 和 bar 创建为 archive.tar

tar -tvf archive.tar: 详细列出 archive.tar 中所有文件

tar -xf archive.tar:从 archive.tar 中提取所有文件

tar xvzf redis-stable.tar.gz:从 redis-stable.tar.gz 中详细提取所有文件

pwd

print working directory

pwd

sh

run a script

sh test.sh 相当于 ./test.sh

start

start notepad++

start Typora

vi

visual

vi

vim

vi improved

vim

vi/vim 的三种模式

vi 和 vim 都是修改 的命令,后者为前者的增强版,输入此命令后,会有三种模式修改 文件。

一般指令模式(command mode):你看不见你输入的内容

编辑模式(insert mode):直接修改文件内容

指令列命令模式(command-line mode):最下面一行,: 或/ 或 ? 开头

1460000020504081?w=418&h=172

以下指令详细含义请看 vim 程式编辑器

常用指令

一般指令模式:

指令

含义

i

当前位置进入 insert 模式

I

第一个字符

a

下一个字符

A

末尾

o

下一列开头

O

上一列开头

r

Replace 模式,取代一次

R

一直取代

u

撤销

Ctrl + r

取消撤销,相当于 U?

0

行首

end / $

行尾

G

最后一列

gg

1 G,第一列

n

向下移动 n 列

Ctrl + f

fall,向下一页

Ctrl + b

before,向上一页

x

删除

X

删除前一个

dd

删除当前列

d$

删除从当前位置到列尾

yy

复制当前列

编辑模式:

指令

含义

Esc

退出编辑模式,进入一般指令模式

指令列命令模式:

指令

含义

:w

保存

:w!

强制保证

:q

退出

:q!

强制退出

:wq

退出并保存,相当于 ZZ

/word

查找关键字

:set nu

显示行号

:1,$s/word1/word2/gc

word1 替换为 word2

/word 查找时,可使用 n 跳转到下一个查找结果,N 跳转到上一个查找结果

脚本语法

遍历。示例:一个打印出当前路径下所有文件夹的目录的脚本,名叫 traverse.sh ,内容如下:

#!/bin/bash

for i in $(ls $(PWD))

do

if [ -d $i ];then

cd $i

pwd

cd ..

fi # if 反向,代表 if 结束

done

执行脚本: sh traverse.sh

其他常用命令

## 用户

passwd # 修改用户的密码

whoami # 查看当前用户名

## 日志

less # 查看最新日志

tail -f # 查看实时日志

grep -5 # 查看日志 关键字 key 上下五行

grep -5 # 输出日志 关键字 key 上下五行的内容到 中

## 进程

ps -ef|grep WeChat # 查看进程名叫 WeChat 的信息,最开头的数字为 id

kill -9 6002(最开头的数字) # 杀死进程 id 为 6002 的进程

sed -i's/word1/werd2/g' # 替换 的 word1 为 word2(sed -- stream editor)

xclip -sel c < # 不打开 的情况下复制其内容

df -h # 查看磁盘分区和目录信息(df -- display free disk space)

echo $PATH# 输出 $PATH 的内容

References

1460000020505342

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值