Linux系统

一、Linux文件和目录结构

在linux中一切皆是文件。其中linux目录结构详细内容如下("/"表示根目录)。

  • /bin:是Binary的缩写,这个目录存放着最经常使用的命令
  • /sbin:s是system的意思,这里存放的是系统管理员使用的系统管理程序

二、Linux常用命令

1、终端命令格式

复制代码
command [-options] [parameter]
  • command:命令名,相应功能的英文单词或单词的缩写
  • -options\]:选项,可用来对命令进行控制,也可以省略

2、查询命令帮助信息

**-help:**显示command命令的帮助信息。

**-man:**查阅command命令的使用手册,man是manual的缩写,是linux提供的一个手册,包含了绝大部分的命令、函数的详细使用。

三、常用Linux命令的基本实用

  1. Linux系统并没有图形界面,所有的操作全靠命令完成,如磁盘操作、文件存取、目录操作、进程管理、文件权限等;
  2. 在职场中,大量的服务器维护工作都是在远程通过SSH客户端来完成的,并没有图形界面,所有的维护工作都需要通过命令来完成。
  3. 在职场中,作为后端程序员,必须要或多或少的掌握一些Linux常用的终端命令。
  4. Linux发行版本的命令大概有200多个,但是常用的命令只有10多个而已。

四、常用Linux命令的基本使用

其他命令

find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件

  • 如果省略路径,表示在当前文件夹下查找
  • 之前学习的通配符,在使用find命令时同时可用

例如:

1、搜索桌面目录下,文件名包含12的文件

复制代码
find -name "*12*"

2、搜索桌面目录下,所有以.xlsx为扩展名的文件

复制代码
fing -name "*.xlsx"

软链接

注意:

  • 没有-s选项建立的是一个硬链接接文件两个文件占用相同大小的硬盘空间,工作中几乎不会建立文件的硬链接。
  • 源文件要使用绝对路径,不能使用相对路径,这样可以方便移动链接文件后,仍然能够正常使用。

打包压缩

打包压缩是日常工作中备份文件的一种方式。在不同操作系统中,常用的打包压缩方式是不同的选项含义。其中windows常用的是rar,mac常用的是zip,linux常用的是tar.gz.

打包/解包

tar是Linux中最常用的备份工具,此命令可以把一系列文件打包到一个大文件中,也可以把一个打包的大文件恢复成一系列文件。tar的命令如下:

复制代码
#打包文件
tar -cvf打包文件.tar 被打包的文件/路径...
#解包文件
tar -xvf打包文件/tar

tar选项说明(注意:f选项必须放在最后,其他选项顺序可以随意):

压缩/解压缩

1)gzip
  • tar于gzip命令结合可以使用实现文件打包和压缩;tar只负责打包文件,但不压缩;用gzip压缩tar打包后的文件,其扩展名一般用xxx.tar.gz。

  • 在tar命令中有一个选项-z可以调用gzip,从而可以方便的实现压缩和解压缩的。其中功能命令格式如下:

    压缩文件

    tar -zcvf 打包文件.tar.gz 被压缩的文件/路径...

    解压缩文件

    tar -zxvf 打包文件.tar.gz

    解压缩到指定路径

    tar -zxvf 打包文件.tar.gz -C 目标路径

2)bzip2(two)

tar与bzip2命令结合可以使用实现文件打包和压缩(用法和gzip一样);tar只负责打包文件,但不压缩。用bzip2压缩tar打包后的文件,其扩展名一般用xxx.tar.bz2。在tar命令中有一个选项-j可以调用bzip2,从而可以方便的实现压缩和解压缩的功能。其中命令格式如下:

复制代码
# 压缩文件
tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径...
# 解压缩文件
tar -jxvf 打包文件.tar.bz2

软件安装

apt是Advanced Packaging Tool的简写,其是Linux下的一款安装包管理工具,可以在终端方便的安装/卸载/更新软件包。

复制代码
# 1. 安装软件
$ sudo apt install 软件包
# 2. 卸载软件
$ sudo apt remove 软件名
# 3. 更新已安装的包
$ sudo apt upgrade

五、文件和目录常用命令

查看目录内容

ls:是英文list的简写,其功能为列出目录的内容,是用户最常用的命令之一,类似于DOS下的dir命令。【注意:以.开头的文件为隐藏文件,需要用-a参数才能显示】

切换目录

cd是英文单词change directory的简写,其功能为更改当前的工作目录,也是用户最常用的命令之一。【注意:Linux所有的目录和文件名都是大小写敏感的】

相对路径和绝对路径

相对路径 在输入路径时,最前面不是/或者~,表示相对当前目录所在的目录位置;绝对路径在输入路径时,最前面是/或者~,表示从根目录/家目录开始的具体目录位置。

创建和删除操作

  • touch

创建文件或者修改文件时间。如果文件不存在,可以创建一个空白文件;如果文件已经存在,可以修改文件的末次修改日期。

  • mkdir

创建一个新的目录,其中新建目录名称不能与当前目录中已有的目录或文件同名。

  • rm

删除文件或目录,使用rm命令要小心,因为文件删除后不能恢复。

拷贝和移动文件

tree:该命令可以以树状图列出文件目录结构。

cp :该命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令。【注意:需要为一个目录名】

**mv:**该命令可以用来移动文件或目录,也可以给文件或目录重命名。

查看文件内容

**cat:**该命令可以用来查看文件内容、创建文件、文件合并、追加文件内容等功能。cat会一次显示所有的内容,适合查看内容较少的文本文件。【Linux中还有一个nl的命令和cat-b的效果等价】

more:该命令可以用于分屏显示文件内容,每次只显示一页内容,适合于查看内容较多的文本文件。

**grep:**Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本进行模式查找,所谓模式查找,又称为正则表达式。

其他

echo会在终端中显示参数指定的文字,通常会和重定向联合使用。

>表示输出,会覆盖文件原有的内容;>>表示追加,会将内容追加到已有文件的末尾。

六、系统信息相关命令

时间和日期

磁盘信息

进程信息(进程是当前正在执行的一个程序)

七、用户权限相关命令

组管理

创建组/删除组的终端命令都需要通过sudo执行

用户管理

创建用户/删除用户/修改其他用户密码的终端命令都需要通过sudo执行

查看用户信息

which

/etc/passwd是用于保存用户信息的文件;/usr/bin/passwd是用于修改用户密码的程序。其中which命令可以查看执行命令所在位置,例如:

复制代码
which ls
# 输出
# /bin/ls
which useradd
# 输出
# /usr/sbin/useradd

bin和sbin

在Linux中,绝大多数可执行文件都是保存在/bin、/sbin、/usr/bin、/usr/sbin。其中,/bin(binary)是二进制执行文件目录,主要用于具体应用。/sbin(system binary)是系统管理员专用的二进制代码存放目录,主要用于系统管理。/usr/bin(user commands for applications)后期安装的一些软件。/usr/sbin(super user commands for applications)超级用户的一些管理程序。

切换用户

八、修改文件权限

复制代码
# 修改文件|目录的拥有者
chown 用户名 文件名|目录名
# 递归修改文件|目录的组
chgrp -R 组名 文件名|目录名
# 递归修改文件权限
chmod -R 755 文件名|目录名

九、远程管理常用命令

关机/重启

复制代码
# 重新启动操作系统,其中 now 表示现在
$ shutdown -r now
# 立刻关机,其中 now 表示现在
$ shutdown now
# 系统在今天的 20:25 会关机
$ shutdown 20:25
# 系统再过十分钟后自动关机
$ shutdown +10
# 取消之前指定的关机计划
$ shutdown -c

当不指定选项和参数时,默认表示1分钟之后关闭电脑。远程维护服务器时,最好不要关闭系统,而应该重新重启系统。

查看配置网卡信息

ifconfig可以查看/配置计算机当前的网卡配置信息

复制代码
# 查看网卡配置信息
$ ifconfig
# 查看网卡对应的 IP 地址
$ ifconfig | grep inet

ping一般用于检测当前计算机到目标计算机之间的网络是否通畅,数值越大,速度越慢

复制代码
# 检测到目标主机是否连接正常
$ ping IP地址
# 检测本地网卡工作正常
$ ping 127.0.0.1

远程登录和赋值文件

ssh基础

在linux中SSH时非常常用的工具,通过SSH客户端我们可以连接到运行了SSH服务器的远程机器上

ssh的简单使用:

复制代码
ssh [-p port] user@remote
  • user 是在远程机器上的用户名,如果不指定的话默认为当前用户
  • remote 是远程机器的地址,可以是 IP/域名,或者是 后面会提到的别名
  • port 是 SSH Server 监听的端口,如果不指定,就为默认值 22

提示:

  • 使用 exit 退出当前用户的登录
  • ssh 这个终端命令只能在 Linux 或者 UNIX 系统下使用
  • 如果在 Windows 系统中,可以安装 PuTTY 或者 XShell 客户端软件即可
  • 在工作中,SSH 服务器的端口号很有可能不是 22,如果遇到这种情况就需要使用 -p 选项,指定正确的端口号,否则无法正常连接到服务器
scp基础

scp 就是 secure copy ,是一个在 Linux 下用来进行 远程拷贝文件 的命令。它的地址格式与 ssh 基本相同,需要注意的是,在指定端口时用的是大写的 -P 而不是小写的。

复制代码
# 把本地当前目录下的 01.py 文件 复制到 远程 家目录下的 Desktop/01.py
# 注意:`:` 后面的路径如果不是绝对路径,则以用户的家目录作为参照路径
scp -P port 01.py user@remote:Desktop/01.py
# 把远程 家目录下的 Desktop/01.py 文件 复制到 本地当前目录下的 01.py
scp -P port user@remote:Desktop/01.py 01.py
# 加上 -r 选项可以传送文件夹
# 把当前目录下的 demo 文件夹 复制到 远程 家目录下的 Desktop
scp -r demo user@remote:Desktop
# 把远程 家目录下的 Desktop 复制到 当前目录下的 demo 文件夹
scp -r user@remote:Desktop demo
相关推荐
iFlow_AI3 小时前
iFlow CLI + ACK MCP Server:让 ACK 容器运维进入对话时代
运维·ack·iflow·iflow cli
郝学胜-神的一滴3 小时前
Linux进程与线程控制原语对比:双刃出鞘,各显锋芒
linux·服务器·开发语言·数据结构·c++·程序人生
IT利刃出鞘3 小时前
Docker Compose--解决容器时间不正确的问题
运维·docker·容器
山上三树3 小时前
进程状态详解
linux·运维·服务器
山上三树3 小时前
task_struct 详解
运维·服务器·网络
WoY20203 小时前
本地PyCharm配置远程服务器上的python环境
服务器·python·pycharm
oMcLin3 小时前
如何打造Linux运维监控平台:Prometheus + Grafana实战与性能优化
linux·运维·prometheus
木卫二号Coding3 小时前
jupyterlab-安装与启动
linux·运维·服务器
fengyehongWorld4 小时前
Linux logger命令
linux·运维·服务器