Linux基础与实战精华—命令与工具

这里写目录标题

shell

命令解释器,会根据输入的命令执行相应的命令

powershell 复制代码
[bsk@localhost ~]$ cat /etc/shells

此命令是用来查看当前系统下支持有哪些shell

结果就是:

powershell 复制代码
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh

接下来再介绍一个命令 echo &SHELL

此命令是查看当前系统下正在使用的shell

快捷键

tab键 命令补齐功能,可以方便我们敲代码的效率

Ctrl+p 向上

Ctrl+n 向下

Ctrl+b 向左

Ctrl+f 向右

Ctrl+d del删除光标后面的

Ctrl+a home,回到第一个字符

Ctrl+e End,到最后一个字符

backspace 删除光标前面的

目录

Linux系统目录的简单介绍:

bin目录主要存放二进制可执行文件

dev目录主要存放是和设备相关的文件,比如鼠标,键盘

etc目录主要存放用户配置的文件信息,比如密码

home目录主要存放当前系统中用户的信息

lib目录主要存放系统中使用的库文件

media目录默认存放挂载磁盘

boot目录主要存放开机启动程序

root目录主要存放管理员宿主目录(家目录)

user目录主要存放用户资源管理目录

文件

Linux系统文件类型(八大类)

普通文件 : -

目录文件 : d

字符设备文件: c

块设备文件: b

软连接: l

管道文件: p

套接字 : s

还有未知文件

链接

链接有两种,一种被称为硬链接,另外一种被称为符号链接

建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接。

而对于符号链接来说,就不会存在这个问题。

在默认情况下,ln产生硬链接,如果给ln命令加上 -s选项则变成建立符号链接

硬链接

powershell 复制代码
touch xiaojiejie
ln xiaojiejie jiejie.h

在硬链接中,对任意一个硬链接进行修改,其他用同文件创建出来的硬链接也会发生变化,几个文件之间是同步的

原因就是,他们有相同的I节点(Inode)。操作系统

但是当删除时,只会把硬链接计数减一,当减为0时,inode被释放。

软链接

powershell 复制代码
ln -s xiaojiejie jiejie.s

软连接的创建最好使用绝对路径,因为当把软链接移动后也能可以访问。

创建用户

powershell 复制代码
sudo adduser 新用户名

修改文件所属用户

chown修改用户,读写执行权限

方式:

sudo chown 新用户名 待修改文件

如下代码所示:

powershell 复制代码
sudo chown zhangsan hello.cpp

删除用户

powershell 复制代码
sudo deluser 用户名

创建用户组

sudo addgroup 新组名

修改文件所属组

chgrp修改

方式:

powershell 复制代码
sudo chgrp fine hello.cpp

删除用户组

powershell 复制代码
sudo delgroup 用户组名

也可以两个修改一起做具体方法如下所示:

powershell 复制代码
chown nobody:nogroup hello.cpp

find命令

本质:查找文件

-type 按文件类型搜索

-name按文件名进行搜索

powershell 复制代码
 find ./ -name "*file *.c"

-maxdepth指定搜索深度,应作为第一个参数出现

powershell 复制代码
 find ./-maxdepth l -name "*file *.c"

-size按文件大小搜索

powershell 复制代码
 find  ./ -size +20M -size -50M

查找大小在20M到50M之间的文件

-atime/mtime/ctime 以天为单位

-amin/mmin/cmin 以分钟为单位

-ok 以交互的方式将find 搜索的结果集执行某一指定命令

-exec 将find搜索的结果集执行某一个指定命令

powershell 复制代码
find/user/-name '* tmp *' -exec ls -ld {} \ ;

需注意find后不能直接使用管道来执行某一命令,但是配合 | xargs参数可以正常使用

使用xargs的好处就是当结果集特别多的时候,可以分片映射

但是xargs有一个小缺点,就是当文件名中有空格时,它会默认把其拆分(默认是以空格为拆分依据),从而报错

解决办法就是加入 -print0参数,(以·NULL作为拆分依据)即可解决

powershell 复制代码
find/user/-name '* tmp *' -print0 | xargs -0 ls -ld {} \ ;

-print0参数,这个0代表重新设定了结果集里面每个结果的分隔符为null

grep命令

查找文件内容

第一条常用命令:grep -r 'list' ./ -n

第二常用: ps aux | grep ' ' 得到检索进程结果集

压缩命令:

tar 压缩

tar -zcvf 要生成的压缩包名 压缩材料

tar zcvf test.tar.gz file dir 使用gzip方式压缩

tar jxvf test.tar.gz file dir 使用bzip方式压缩

tar解压

将压缩命令中的c-》x

tar zcvf test.tar.gz 使用gzip方式解压

tar jxvf test.tar.gz 使用gzip方式解压

rar压缩

rar a -r 压缩包名(带.rar后缀) 压缩材料

rar a -r test.rar stdio.h tset.mp3

rar解压

unrar x 压缩包名 (带.rar后缀)

zip压缩

zip -r 压缩包名(带.zip后缀) 压缩材料

zip -r teat.zip stdio.h test.mp3

zip解压

unzip 压缩包名(带.zip后缀)

tar本来是打包的意思

c 创建新的文档文件

r 列出档案里的文件内容

x 从档案中释放文件

u 更新文件

z 的意思才是压缩 及gzip

f 使用档案文件或设备,

网络

ifconfig 查看网卡信息

sudo ifconfig eth0 down 关闭网卡

sudo ifconfig eth0 up 开启网卡eth0

sudo ifconfig eth0 IP 给eth0配置临时IP

netstat 查看网络状态

man

man是系统的手册分页程序。指定给man的页 选项通常是程序,工具或函数名。

下面是手册的章节号以及包含的手册类型

1 可执行程序或shell命令
2 系统调用(内核提供的函数)
3 库调用(程序库中的函数)
4 特殊文件(通常位于/dev)
5 文件格式和规范,
6 游戏
7 杂项
8 系统管理命令
9 内核例程

alias起别名

alias pg = 'ps aux | grep'

此后执行pg命令也就相当于ps aux | grep 命令

umask

指定用户创建文件时的掩码,默认指定权限

vi编辑器

跳转到指定行

第一种:88G(命令模式)

第二种::88(末行模式)

跳转行首:

gg(命令模式)

跳转行尾:

G(命令模式)

自动化格式程序:

gg=G(命令模式)

大括号对应:

%(命令模式)

光标移至行首:

0(命令模式)执行结束,工作模式不变

光标移至行尾:

$(命令模式)执行结束,工作模式不变

删除单个字符:

x(命令模式)执行结束,工作模式不变

删除一个单词:

dw(命令模式)光标至于单词的首字母进行操作

替换单个字符:

将待替换的字符用光标选中,r(命令模式)再按欲替换的字符

删除光标至行尾:

D或者 d $(命令模式)

删除光标至行首:

d0(命令模式)

删除指定区域:

按V(命令模式)切换位可视模式,移动光标来选中待删除区域,按d删除

删除指定一行:

光标所在行,按dd(命令模式)

删除指定n行:

在光标所在行 (向下删除)n+dd (命令模式)

复制一行:

yy

粘贴:

p 向后

P向前

查找:

1.找想要找的内容

命令模式下,按 / 树=输入想要搜索的关键字,回车即可,按 n检索下一个

2.找 看到的内容

命令模式下,将光标置于单词任意一个字符上,按 * 或者 #

单行替换:

将光标置于待替换行上,进入末行模式,输入 :s /原数据 / 新数据

通篇替换:

末行模式下输入 :%s/原数据/新数据/g g不加,只替换每行首个

指定行的替换:

末行模式下输入 :起始行号,终止行号s /原数据/新数据/g g不加,只替换每行首个

举例 :s30,61s /vim/vi/g

撤销:

命令模式下按 u

反撤销:

ctrl + r(撤销撤销)

分屏:

(末行模式下)输入sp 横分屏 ctrl+ww 切换

vsp :竖分屏 ctrl+ww 切换

跳转到man手册:

将光标置于 待查看函数单词上,使用K(命令模式)跳转到指定卷 nk

查看宏定义:

将光标置于待查看宏定义单词上,使用 [ d查看定义语句

在末行模式执行shell命令:

输入 :! 命令

相关推荐
多恩Stone5 分钟前
【vs code(cursor) ssh连不上服务器】但是 Terminal 可以连上,问题解决 ✅
运维·服务器·ssh
何陈陈7 分钟前
【Linux】线程池
linux·服务器·开发语言·c++
S hh9 分钟前
【Linux 】文件描述符fd、重定向、缓冲区(超详解)
linux·运维·服务器
DuoRuaiMiFa9 分钟前
Linux系统性能调优实战指南
linux
沉登c10 分钟前
Javascript客户端时间与服务器时间
服务器·javascript
憧憬一下11 分钟前
线程池的实现和讲解:解决多线程并发服务器创建销毁线程消耗过大的问题
linux·线程池·c/c++·嵌入式linux
碳治郎AI22 分钟前
Bolt.new:终极自动化编程工具
运维·自动化
朝九晚五ฺ1 小时前
【Linux探索学习】第三弹——Linux的基础指令(下)——开启新篇章的大门
linux·运维·学习
肥or胖1 小时前
【MySQL】索引
linux·数据库·mysql
原机小子2 小时前
Spring Boot框架下的新闻推荐技术
服务器·spring boot·php