linux基础
关于Linux的通用操作
基于Ubuntu22.04发行版的环境,本文整理了一些在Linux系统下基本通用的操作,使初学者能初步学会Linux系统的操作或使老用户重新回顾一下常用操作
参考文章 Linux - 幕布 (mubu.com) 作者:时光&逝
准备工作
远程连接工具XSHELL - NetSarang Website
远程文件传输工具 XFTP - NetSarang Website
配合XFTP可以较为直观地观察文件及目录的变化
注:一些发行版可能需要手动安装部分命令。另外,在执行命令时请确认自己所处的当前目录
提示
一些命令可能需要在root权限下执行,或者在执行命令的前面都加上sudo
的前缀,表示临时使用root权限执行这条命令
如果忘记了root密码可以通过以下方法重新设置
1 | sudo passwd # 进入密码设置 |
vim文本编辑器
查看vim配置信息
1 | vim --version |
简易配置一下vim
用vim打开用户vimrc文件
1 | vim $HOME/.vimrc |
写入以下内容(后面的注释不需要)
syntax on # 开启语法高亮
set ts = 4 # 设置tab的缩进显示为四个空格的宽度
set expandtab # 设置tab字符替换为等宽的4个空格字符
set autoindent # 开启自动缩进
set number # 开启行号显示
set relativenumber # 使用相对行号
关于vim的基本操作可以参考其它文章 Linux vi/vim | 菜鸟教程 (runoob.com) 或者视频【保姆级入门】Vim编辑器
用户管理
linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统
linux的用户至少要属于一个组
基本命令
useradd命令:创建一个用户
1 | # useradd [参数] 用户名 |
passwd命令:指定或修改用户的密码
1 | # passwd 用户名 |
userdel命令:删除用户
1 | # userdel 用户名 |
usermod命令:修改用户信息
1 | # usermod [参数] 新用户名 旧用户名 |
id命令:查询用户信息
1 | # id 用户名 |
su命令:用户切换
1 | # su [参数] 用户名 |
groupadd命令:添加一个名为visitor的用户组
1 | # groupadd 组名 |
groupdel命令:删除visitor用户组
1 | # groupdel 组名 |
groupmod命令:修改用户组
1 | # groupmod [选项 参数] 组名 |
用户信息文件
/etc/passwd是用户(user)的配置文件,记录用户的各种信息
/ect/shadow是口令的配置文件
/etc/group是组(group)的配置文件,记录组的各种信息
常用命令
进程命令
init命令:Linux下的进程初始化工具,用于切换运行级别
1 | init 0 # 停机(不要将initdefault设置为0) |
帮助命令
man命令:用于获取帮助手册
help命令:获取shell内置命令的帮助信息
1 | man vim # 获取vim的帮助手册 |
文件目录命令
pwd命令:查看当前所在目录的绝对路径
1 | pwd |
ls命令:查看当前所在目录的所有文件和目录
1 | # ls [参数] [目录或文件名] |
cd命令:切换到指定目录
1 | # cd [目录路径] |
mkdir命令:创建指定目录,可根据绝对路径或相对路径创建
rmdir命令:删除指定的空目录
1 | # mkdir [参数] 目录名 |
touch命令:创建空文件,可根据绝对路径或相对路径创建
1 | # touch 文件名 |
cp命令:拷贝文件到指定目录
1 | # cp [参数] 源目录 指定目录 |
rm命令:删除文件或目录(文件夹)
1 | # rm [参数] 文件名 |
cat命令:只读地查看文件内容
1 | # cat [参数] 文件名 |
more命令:基于vi编辑器的文本过滤器,以全屏方式按页显示文件内容,适合阅读长内容的文本
快捷键 | 具体功能 |
---|---|
空格(space) | 向下翻一页 |
Enter | 向下翻一行 |
q | 退出 |
Ctrl+F | 向下滚动一屏 |
Ctrl+B | 返回上一屏 |
= | 输出当前行行号 |
:f | 输出文件名和行号 |
less命令: 来分屏查看文件内容,与more命令类似,但功能更加强大。能根据显示需要加载文件内容,而不是一次性加载,对于显示大型文件有较高的效率
快捷键 | 具体功能 |
---|---|
空格(space) | 向下翻一页 |
[pagedown] | 向下翻一页 |
[pageup] | 向上翻一页 |
/字串 | 向下搜寻字串 n向下 N向上 |
?字串 | 向上搜寻字串 n向上 N向下 |
q | 退出 |
>指令:输出重定向,会覆盖文件的内容
>>指令:追加内容到文件尾部,不会覆盖文件的内容
1 | ls > info.txt # 将当前目录的信息写入info.txt |
echo命令:输出内容到控制台,可与**>指令或>>指令**组合使用
1 | # echo [参数] [字符串] |
head命令:查看文件前n行内容,n默认为10
tail命令:查看文件后n行内容,n默认为10
1 | # head [参数] [行数] 文件名 |
ln命令:给源文件创建一个软链接。软链接也称符号链接,类似于快捷方式,主要存放了链接其他文件的路径。可以通过ln命令软链接的方式设置全局环境变量(这是一种方式)
1 | # ln -s 源文件路径 目标路径 |
时间日期命令
date命令:显示或设定系统的日期和时间
1 | # date [参数] [格式] |
cal命令:显示月历,需要手动安装命令
1 | apt install ncal # 安装命令 |
搜索查找命令
find命令:从指定目录向下递归地遍历各个子目录,将满足条件的文件或目录显示在终端
1 | # find [搜索范围] [参数] ... |
locate命令:可以快速定位文件路径,需要手动安装命令。利用事先建立的包含系统中所有文件名称路径的locate数据库实现快速定位,无需遍历整个文件夹,查询速度较快。
locate数据库不是实时更新的(默认情况下每天自动更新一次),无法查询当天新建的文件,但可以手动更新locate数据库
注意:测试命令需要新建文件时,记得随时手动更新locate数据库
1 | apt install plocate # 安装命令 |
grep命令:在指定文件里查找指定的内容
1 | # grep [内容] [文件名] |
压缩与解压命令
gzip命令:压缩文件,格式只能为*.gz,它的设计目标是为了处理单个文件
gunzip命令:解压文件,只能解压*.gz后缀的文件
1 | # gzip 文件 |
zip命令:压缩文件和目录,适用于多个文件和目录
unzip命令:解压文件和目录
1 | # zip [参数] 文件名.zip 要压缩的文件名 |
tar命令:打包目录或解包tar文件,并且能附加压缩和解压功能
注意:打包和压缩包不是一个概念,解包和解压也不是
1 | # tar 必填参数[选填参数] 打包文件名 源文件名 |
路由表命令
route命令: 显示和操作IP路由表
1 | # route [参数] |
文本操作命令
sed命令:能够在不打开文件的情况下处理、编辑文本文件, 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等
1 | # sed [参数] 文件名 |
组管理与权限管理
组管理
在linux中的每个用户必须属于一个组,不能独立于组外,一般在创建用户时就默认生成了一个同名的用户组
在linux中每个文件有所有者、所在组、其它组的概念
文件的所有者就是创建该文件的用户
除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组
一个用户可以属于多个组,用户组又分为主组(主要组)和附加组(次要组),其中主组不能被删除,除非用户指定了新的主组,而附加组可以随意修改。
提示:查看文件权限、所有者等信息可以使用ls -l 指定的文件名实现;查看用户相关信息可以使用id 指定的用户名实现
基本命令
chown命令:修改文件所有者和所有组,若缺省组名,则不会改变所有组
chgrp命令:修改文件所在组
usermod命令:改变用户所在主组(-g
参数)或追加附加组(-aG
参数,若不加a参数则会覆盖原来的附加组)
1 | # chown 用户名:组名 文件名 |
权限管理
文件权限内容,通过ls -l 指定文件名查看
1 | # 一个示例 |
-rw-r–r–解读(下标从0开始)
- 第0位确定文件类型(d, - , l , c , b)
- 第1-3位确定所有者(该文件的所有者)拥有该文件的权限
- 第4-6位确定所属组(同用户组的)拥有该文件的权限
- 第7-9位确定其他用户拥有该文件的权限
rwx权限说明
r表示可读read
w表示可写write
x表示可执行execute
对于文件来说
r表示可以读取查看文件
w表示可以修改,但不能删除文件,删除一个文件必须拥有父文件夹的rwx权限(存在一个特例,在提前知道目录里的具体内容的情况下,手动指定对应的完整文件名进行删除)
x表示文件可执行
对于目录来说
- r表示可以读取,查看目录内容
- w表示可修改,目录内创建+删除+重命名目录
- x表示可以进入该目录
基本命令
chmod命令:修改文件或目录的权限
1 | # 参数 |
进程管理
在linux中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个 ID 号
每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程
每个进程都可能以两种方式存在的:前台与后台
一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机
fg和bg命令:进程前后台调度命令
1 | # 在前台结束一个进程 |
ps命令查看系统进程
1 | # ps [参数] |
kill命令终止进程
1 | # kill [参数] 进程号PID |
pstree命令查看进程信息
1 | # pstree [参数] |
service命令操作进程(后台服务)
服务(service) 本质就是进程,但是是运行在后台的一个特殊进程。这个特殊进程通常都会监听某个端口等待其它程序的请求,比如(mysql , sshd 防火墙等)。因此这个进程又称为守护进程。
telnet命令可以用于远程登录主机,也可以测试某个端口
查看服务
1 | chkconfig --list | grep 8989 # 该命令已被弃用 |
top命令持续监听运行状态
1 | # top [参数] |
- 标题: linux基础
- 作者: Entropy Tree
- 创建于 : 2022-11-17 19:58:38
- 更新于 : 2023-08-10 20:55:59
- 链接: https://www.entropy-tree.top/2022/11/17/linux-base/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。