linux系统下的基本操作
Linux 操作系统
1. Linux操作系统认知
1.1 操作系统(Operation System简称OS)
定义
操作系统是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。
操作系统功能
- 管理好硬件设备,为用户提供调用方法
- 是计算机中最重要的系统环境
- 管理各种其他的软件和程序的运行
- 对系统中文件进行管理
操作系统分类
- 桌面系统:Windows ,MacOS为主,图形界面良好用户群体大。
- 服务器系统:Linux,Unix为主,安全,稳定,费用低占有量大。windows占有率比较低。
- 嵌入式系统:Linux为主,主要用于小型智能设备,如智能手机,机器人等。
1.2 Linux系统介绍
Linux 诞生
1991 年 林纳斯(Linus) 就读于赫尔辛基大学期间,对 Unix 产生浓厚兴趣,林纳斯经常要用他的终端仿真器(Terminal Emulator) 去访问大学主机上的新闻组和邮件,为了方便读写和下载文件,他自己编写了磁盘驱动程序和文件系统,这些在后来成为了 Linux 第一个内核的雏形,当时,他年仅 21 岁!林纳斯利用C做工具,编写了 Linux 内核,后来经过全世界的网友的帮助,最终成为优秀的操作系统。
Linux系统特点
- Linux是一款开源免费的操作系统
- 支持多种硬件平台
- 支持多用户
- 具有非常强大的网络功能
Linux 应用领域
- Linux 服务器 : 目前是服务器系统中最广泛一种。
桌面应用:新版本的Linux系统特别在桌面应用方面进行了改进,达到相当的水平。
嵌入式系统:由于Linux系统开放源代码,可以方便修改,在嵌入式设备领域有很广阔的市场。
Linux系统构成
内核: Linux操作系统的核心代码,是Linux系统的心脏,提供了系统的核心功能,用来与硬件交互。
Linux内核官网 : http://www.kernel.org
文件系统:通常指称管理磁盘数据的系统,可将数据以目录或文件的型式存储。每个文件系统都有自己的特殊格式与功能
命令解释器:它使得用户能够与操作系统进行交互,负责接收用户命令,然后调用操作系统功能。
应用软件:包含桌面系统和基础的软件操作工具等。
Linux发行版本
严格的来讲,Linux 只是一个系统内核,即计算机软件与硬件通讯之间的平台。一些组织或厂家将 Linux 内核与GNU软件(系统软件和工具)整合起来,并提供一些安装界面和系统设定与管理工具,这样就构成了一个发型套件,目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
作为Linux发行版中的后起之秀,Ubuntu Linux在短短几年时间里便迅速成长为从Linux初学者到资深专家都十分青睐的发行版。由于Ubuntu Linux是开放源代码的自由软件,用户可以登录Ubuntu Linux的官方网址免费下载该软件的安装包。
Ubuntu官网:https://ubuntu.com/
1.3 文件系统
定义
文件系统是计算机操作系统的重要的组成部分,用于组织和管理计算机存储设备上的大量文件。
文件系统结构
熟悉的windows文件系统,分不同盘符
Linux的文件组织中没有盘符。将根(/)作为整个文件系统的唯一起点,其他所有目录都从该点出发。
犹如一颗倒置的树,所有存储设备作为这颗树的一个子目录。
- 系统目录功能(了解)
1. /bin目录/bin目录包含了引导启动所需的命令或普通用户可能用的命令(可能在引导启动后)。这些命令都是二进制文件的可执行程序(bin是binary----二进制的简称),多是系统中重要的系统文件。2. /sbin目录/sbin目录类似/bin,也用于存储二进制文件。因为其中的大部分文件多是系统管理员使用的基本的系统程序,所以虽然普通用户必要且允许时可以使用,但一般不给普通用户使用。3. /etc目录/etc目录存放着各种系统配置文件,其中包括了用户信息文件/etc/ passwd,系统初始化文件/etc/rc等。linux正是因为这些文件才得以正常地运行。4. /root目录/root 目录是超级用户的目录。5. /lib目录/lib目录是根文件系统上的程序所需的共享库,存放了根文件系统程序运行所需的共享文件。这些文件包含了可被许多程序共享的代码,以避免每个程序都包含有相同的子程序的副本,故可以使得可执行文件变得更小,节省空间。6. /dev目录/dev目录存放了设备文件,即设备驱动程序,用户通过这些文件访问外部设备。比如,用户可以通过访问/dev/mouse来访问鼠标的输入,就像访问其他文件一样。7. /usr文件系统/usr 是个很重要的目录,通常这一文件系统很大,因为所有程序安装在这里。本地安装的程序和其他东西在/usr/local 下,因为这样可以在升级新版系统或新发行版时无须重新安装全部程序。8. /var文件系统/var 包含系统一般运行时要改变的数据。通常这些数据所在的目录的大小是要经常变化或扩充的。9. /home/home 普通用户的默认目录,在该目录下,每个用户拥有一个以用户名命名的文件夹。
- 绝对路径和相对路径表达
- 绝对路径:指文件在文件系统中以根目录为起始点的准确位置描述。例如“/usr/bin/gnect”就是绝对路径。最要的标志就是以 ‘/’ 作为路径描述的开头。
- 相对路径:指相对于用户当前位置为起始点,对一个文件位置的逐层描述。例如,用户处在usr目录中时,只需要“games/gnect”就可确定这个文件。在相对路径描述时 . 表示当前目录, … 表示上一级目录。
随堂练习:1. 使用绝对路径表达 : 主目录下month01下day03里有个homework.txt/home/tarena/month01/day03/homework.txt2. 假设在主目录“下载”这个文件夹中,用相对路径想找到:主目录下month01下day03里有个homework.txt../month01/day03/homework.txt如果就在day03中呢?./homework.txt --> homework.txt
2. Linux常用命令
- 学习目的
- Linux下有非常丰富的命令,可以用来完成大部分重要的Linux服务器操作维护功能,而且至今有些功能仍然通过命令操作比较方便。
- 实际工作中,大量服务器维护工作都是工程师通过远程控制来完成的,并没有图形界面,这时维护工作都需要通过命令来完成。
- 作为后端工程师,我们将来所写的代码都需要在服务器上运行,掌握基本的Linux 操作命令有助于我们将来对项目的部署和控制工作。
2.1 终端与命令行
- 终端 : 使用命令对Linux系统进行操作的窗口
- 命令行:书写Linux命令的提示行
- 打开关闭终端快捷键
- 打开 :通过ctrl+alt +t,shift+ctrl+n 都可以快速打开一个终端。
- 关闭 :ctrl-d
- 终端字体大小控制
- 放大 摁住 ctrl 和 + 号 (不要忘了+号要使用shift)
- 缩小 摁住 ctrl 和 - 号
2.2 Linux常用命令
命令格式
command [-options] [parameter]说明: command:命令名称,一般为英文单词或单词的缩写 [-options]:命令选项,辅助命令进行功能细化,也可以省略 parameter:传给命令的参数,可以是0个或多个
常用快捷键
- 清空屏幕 : ctrl + l
- 调取历史命令 : 上下箭头
- 复制 ctrl-shift-c
- 粘贴 ctrl-shift-v
- 强行终止 ctrl-c
2.2.1 帮助命令
man command
说明:
- 查阅
command
命令的使用手册,摁q退出
2.2.2 文件与目录管理命令
序号 | 命令 | 作用 |
---|---|---|
01 | ls | 查看当前文件夹下的内容 |
02 | pwd | 查看当前所在位置绝对路径 |
03 | cd [目录名] | 切换文件夹 |
04 | touch [文件名] | 如果文件不存在,新建文件 |
05 | mkdir [目录名] | 创建目录 |
06 | rm [文件名] | 删除指定的文件名 |
07 | cp | 复制一个文件 |
08 | mv | 移动一个文件 |
- 部分命令细节说明
- ls : -l 展示详细信息,-a展示隐藏文件(Linux下 . 开头的为隐藏文件)。
- cd: 参数为绝对路径或者相对路径,直接cd表示回到主目录,cd - 回到上一次工作目录 。
- touch: 可以同时跟多个参数表示创建多个文件。
- cp:如果拷贝的是一个目录需要使用 -r ,同时这个命令有另存为的作用
- mv: 即使移动目录页不需要选项,有重命名的作用。
- rm:删除表示直接删除,无法找回,如果删除目录需要加 -r选项
小技巧: 使用Tab键可以自动补全文件名,目录名等信息
通配符
- 作用:对一类文件名称的书写进行简化,例如file1.txt、file2.txt、file3.txt……,用户不必一一输入文件名,可以使用通配符完成。
通配符 含义 实例 星号(*) 匹配任意长度的字符串 用file_*.txt,匹配file_wang.txt、file_Lee.txt、file_Liu.txt 问号(?) 匹配一个长度的字符 用flie_?.txt,匹配file_1.txt、file_2.txt、file_3.txt
2.2.3 文件查看命令
序号 | 命令 | 作用 |
---|---|---|
01 | cat [文件名] | 查看文件内容、创建文件、文件合并、追加文件内容等功能 |
02 | head [文件名] | 显示文件头部 |
03 | tail [文件名] | 显示文件尾部 |
04 | grep [搜索文本] [文件名] | 搜索文本文件内容 |
05 | find [目录] -name [文件名] | 在一个目录及其子目录下查找文件 |
06 | wc [文件名] | 查看文件行数,单词数等信息 |
部分命令细节说明
- head,tail : 选项-n,n表示一个数字,即可指定查看前n行或者后n行,不加选项默认查看10行。
- grep : -n 用于显示行号,-i忽略大小写
- wc : -c 表示查看多少字符,-l查看多少行,-w 查看多少单词。如果不加选项则显示这三项。
- find:会从指定目录及其所有子目录中查询搜索文件。
管道
管道可以把一系列命令连接起来,意味着第一个命令的输出将作为第二个命令的输入,通过管道传递给第二个命令,第二个命令的输出又将作为第三个命令的输入,以此类推。
ls | grep 'hello'ls | wc -w
2.2.4 压缩解压命令
序号 | 命令 | 作用 |
---|---|---|
01 | zip ,unzip | 将文件压缩为zip格式/将zip格式文件解压 |
02 | tar | 对gz或者bz2格式进行压缩解压 |
- 部分命令细节说明
zip: 用于常与windows交互的情况,-r选项可以压缩目录 。
unzip -d 可以选择解压位置
zip test.zip filelist
unzip test.zip
unzip -d /home/tarena test.zip
tar:-cjf 用于压缩bz2格式文件,-czf用于压缩gz格式文件,-xvf用于解压文件 -C用于指定解压位置。
tar -czf file.tar.gz file1 file2
tar -xvf file.tar.gz -C …
随堂练习:
1. 将我们第一阶段老师给的代码压缩为zip格式zip -r qtx.zip month012. 将我们自己写的代码 压缩为bz2的格式tar -cjf myself.tar.bz2 qtx
2.2.5 权限管理
序号 | 命令 | 作用 |
---|---|---|
01 | sudo | 放在一个命令前,表示使用管理员权限执行 |
02 | chmod | 修改文件权限 |
部分命令细节说明
sudo: 在打开终端第一次使用sudo时需要输入密码
chmod
在设置权限时,可以字母也可以使用三个数字分别对应 拥有者 / 组 和 其他 用户的权限
直接修改文件|目录的 读|写|执行 权限,但是不能精确到 拥有者|组|其他 chmod augo+/-/=rwx 文件名/目录名chmod a=rw- hello.py chmod o-w hello.py

2.2.6 显示展示命令
序号 | 命令 | 作用 |
---|---|---|
01 | echo | 向终端打印内容 |
02 | date | 显示当前时间 |
03 | df | 显示磁盘剩余空间 |
04 | whoami | 显示当前用户 |
05 | history [num] | 显示历史命令记录 |
06 | tree | 显示项目属性结构 |
部分命令细节说明
echo : -n 表示打印完成不换行
df: -h 选项以更符合阅读习惯的方式显示磁盘使用量,-T显示文件系统类型,ext4的为磁盘
history : history 默认显示500条历史记录,后面可以加具体数字表示显示多少条
输出重定向
重定向符 含义 实例 > file 将file文件重定向为输出源,新建模式 echo “hello world” > out.txt,将执行结果,写到out.txt文件中,若有同名文件将被删除 >> file 将file文件重定向为输出源,追加模式 ls /usr >> output.txt,将ls /usr的执行结果,追加到Lsoutput.txt文件已有内容后
2.2.7 其他命令
序号 | 命令 | 作用 |
---|---|---|
01 | shutdown | 关机或者重启,管理员权限执行 |
02 | ln | 创建链接 |
- 部分命令细节说明
shutdown:
shutdown -r now 立即重启
shutdown now 立即关机
shutdown +10 10分钟后关机
shutdown -c 取消关机计划
ln : 一般使用 -s 选项 创建软链接,相当于快捷方式,如果跨目录创建要使用绝对路径。
ln -s /home/tarena/stage02/day02/hello.py hello
3. Linux服务器环境
3.1 vi编辑器
3.1.1 什么是vi
vi是Linux操作系统中一个自带的编辑器。没有图形界面,只能编译文本内容,没有字体段落等设置,通过命令强大的命令完成一系列的编写工作。
3.1.2 学习目的
- 在实际工作中,要对 服务器上的文件进行简单的修改,使用
vi
进行快速的编辑即可。 - 对一些配置文件的修改,需要一定的权限,这时vi编辑器是最佳选择。
- vi 编辑器在系统管理、服务器管理编辑文件时,其功能不是图形界面的编辑器能比拟的。
3.1.3 操作使用
- 打开和新建文件
$ vi [文件名]如果文件已经存在,会直接打开该文件
如果文件不存在,会新建一个文件
工作模式
- 命令模式
- 打开文件首先进入命令模式,是使用
vi
的 入口 - 通过 命令 对文件进行常规的编辑操作,例如:定位、复制、粘贴、删除……
- 在其他图形编辑器下,通过 快捷键 或者 鼠标 实现的操作,都在 命令模式 下实现
- 打开文件首先进入命令模式,是使用
- 末行模式 —— 执行 保存、退出 等操作
- 要退出
vi
返回到控制台,需要在末行模式下输入命令 - 末行模式 是
vi
的 出口
- 要退出
- 编辑模式 —— 正常的编辑文字
- 命令模式
进入编辑模式命令
命令 | 英文 | 功能 | 常用 |
---|---|---|---|
i | insert | 在当前字符前插入文本 | 常用 |
o | 在当前行后面插入一空行 | 常用 |
- 底行模式常用命令
命令 | 功能 |
---|---|
w | 保存 |
q | 退出,如果没有保存,不允许退出 |
q! | 强行退出,不保存退出 |
wq | 保存并退出 |
w! | 强制保存 |
光标移动命令
命令 功能 gg 文件顶部 G 文件末尾 :数字 移动到 数字 对应行数 :set nu 显示行号 :set nu ! 可以取消行号显示
撤销和恢复撤销
命令 | 功能 |
---|---|
u | 撤销上次命令 |
ctrl - r | 恢复撤销的命令 |
- 删除文本
命令 | 功能 |
---|---|
x | 删除光标所在字符,或者选中文字 |
cc | 删除光标所在行并进入插入模式 |
- 剪切、复制、粘贴
命令 | 功能 |
---|---|
yy | 复制一行,可以 nyy 复制多行 |
dd | 剪切光标所在行,可以 ndd 剪切多行 |
p | 粘贴 |
- 查找替换
命令 | 功能 | 工作模式 |
---|---|---|
r | 替换当前字符 | 命令模式 |
R | 替换当前行光标后的字符 | 替换模式 |
:%s/str/replace/g | 替换str为replace | 底行模式 |
/str | 查找 str |
R
命令可以进入 替换模式,替换完成后,按下ESC
可以回到 命令模式/ 查找到指定内容之后,使用
n
查找下一个出现的位置
随堂练习:
使用vi编写一个python小函数,求20以内奇数的累乘结果result = 1 # 获取最后的结果 for i in range(21):if i % 2 == 1:result *= i print("结果:",result)
3.2 软件安装
deb格式软件包是Linux中比较常见的。由于当时Linux系统中软件包存在复杂的依赖关系。因此,通常使用网络安装比较简单,不同的Linux操作系统会略有差异,但是大致原理是一样的。
作用 | 命令 |
---|---|
更新本地的资源列表 | apt update |
更新软件 | apt upgrade |
安装软件 | apt install |
卸载软件 | apt remove --purge |
安装本地软件包 | dpkg -i |
卸载软件 | dpkg -P |
解决依赖关系 | apt install --fix-broken |
- 注意事项 : 安装软件包通常需要使用管理员权限。
- 资源列表 :/etc/apt/sources.list
sudo apt install sl # 安装
sudo apt remove --purge sl # 彻底卸载
3.3 pip3工具使用
3.3.1 什么是pip3
pip3是安装Python3标准线上库的重要工具。Python以第三方库众多,使用方便而著称,在进行Python项目开发时经常需要安装一些标准库模块之外的第三方库模块以帮助我们完成开发任务,这时都少不了这个工具。在python3.6以后的版本中安装python默认就会自带这个工具。
3.3.2 pip3常用命令
序号 | 命令 | 作用 |
---|---|---|
01 | pip3 list | 查看已安装的Python包 |
02 | pip3 install [包名] | 安装软件包 |
03 | pip3 show [包名] | 查看已安装包的信息 |
04 | pip3 uninstall [包名] | 卸载已安装的python包 |
05 | pip3 install --upgrade [包名] | 更新包 |
06 | pip3 freeze > requirements.txt | 导出环境需求文档 |
e.g.
pip3 install pypinyinfrom pypinyin import pinyin
pinyin("不认识的字")
3.4 ssh服务
ssh是一种安全协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全。在数据传输方面有很多应用。之前说到,实际工作中经常需要远程访问服务器,ssh就是通用的远程访问服务器的方法。
安装启动
安装ssh服务 : sudo apt install openssh-server
查看ssh服务状态 : ps -e | grep “ssh”
启动和关闭 :
sudo service ssh start/restart/stop
- 常用命令
序号 | 命令 | 作用 |
---|---|---|
01 | ssh 用户名@ip | 登录远程主机 |
02 | scp 用户名@ip:文件名绝对路径 目标位置 | 远程复制文件 |
ssh登录
ssh levi@192.168.100.5 # 登录 exit # 退出
scp拷贝
# 注意:`:` 后面的路径写绝对路径 scp demo.py levi@192.168.100.5:/home/tarena# 把远程主目录下demo.py文件 复制到本地当前目录下 scp levi@192.168.100.5:/home/tarena/demo.py .# 加上 -r 选项可以传送文件夹 scp -r demo levi@192.168.100.5:/home/tarena/
3.5 终端启动Python服务
在服务器中并没有pycharm这些集成编译工具,所有当我们最后将程序部署在服务器上执行时,往往需要通过终端运行python程序。
- 方法一: 直接在终端python3后加要执行的程序
python3 hello.py
- 方法二:通过修改程序执行权限执行
- 编写python程序在第一行增加解释器声明
修改文件的权限,使其有可执行权限
chmod a+x demo.py
通过指定文件位置执行代码
linux系统下的基本操作相关推荐
- C#net6实现Linux系统下修改IP地址、修改系统时间、获取内存信息、获取磁盘信息、重启系统
C#net6实现Linux系统下修改IP地址.修改系统时间.获取内存信息.获取磁盘信息.重启系统 背景 项目背景 实现思路 代码实现 背景 随着微软.net core的出现,C#程序实现跨平台不在困难 ...
- linux下apache启动命令,linux系统下apache服务的启动、停止、重启命令
本文章简单的介绍了关于linux下在利用命令来操作apache的基本操作如启动.停止.重启等操作,对入门者不错的选择.本文假设你的apahce安装目录为 usr local apache2,这些方法适 ...
- 计划任务执行php文件,linux系统下添加计划任务执行php文件方法
在web开发过程中,经常需要设定一些定期执行的任务,比如商品定时上下架.我们以php文件为例,讲解linux下的计划任务. 方法/步骤 1.打开linux系统命令行界面. 在命令行界面中输入如下命令: ...
- linux的翻译系统开发,Linux系统下的翻译神器——Goldendict
Linux系统下的翻译神器--Goldendict 学习Linux时明显感受到学习英文的重要性.绝大多数Linux的发行版英文版的功能要远强于中文.因此一款好的翻译软件是了解熟悉Linux系统的必需品 ...
- 实战证明LINUX系统下密钥对验证的安全性
实战证明LINUX系统下密钥对验证的安全性 密钥对验证:要求提供匹配的密钥信息才能通过验证,首先在客户端创建一对密钥文件(公钥.私钥),后把公钥文件放到需要远程连接的服务器中.远程登录时,系统将使用 ...
- Linux系统下活用History命令
Linux系统下可通过history命令查看用户所有的历史操作记录,在安全应急响应中起着非常重要的作用,但在未进行附加配置情况下,history命令只能查看用户历史操作记录,并不能区分用户以及操作时间 ...
- Win或Linux系统下用conda安装Open Babel
一.安装Anaconda或Miniconda Win或者Linux系统下Anaconda或Miniconda安装,不赘述,网上很多教程. 二.利用conda安装openbabel install -c ...
- linux的软件包是独立的,Linux系统下软件包的安装
(以下内容是云课堂Linux课程的笔记,个人纯手工记录,课程以RedHat系列为主) Linux系统下软件包的安装方式包括:源代码安装.本地二进制包安装(rpm命令手工安装).在线二进制包安装(yum ...
- Linux系统下如何加载U盘或移动硬盘
Linux系统下如何加载U盘或移动硬盘 2007-05-15 00:00作者:赵彪出处:论坛整理责任编辑:原野 - 1.在插入U盘或硬盘之前,在命令行窗口运行:fdisk -l 命令,系统将显示目前所 ...
最新文章
- 终于!这个强大的「开源图像识别系统」上线了!
- C# 函数参数object sender, EventArgs e
- Selector选择器概述||Selector选择器组合使用
- OAF_开发系列17_实现OAF数组应用Vector / Hashmap / Hashtable / Arraylist(案例)
- Java竞选组长发言_竞选组长的发言稿_450字
- Arrays练习:字符串倒序排列
- 串口项目——Cseiralport类的应用(1 )
- C++描述杭电OJ 2017.字符串统计||
- 2022的第一天,立个目标
- python测试字符串类型的函数_python-02 数据类型 字符串str
- MySQL 我们来聊聊 count(*) 语句的优化方式有哪些?
- auto_cmdb--01之models.py建表
- join为什么每个字符都分割了 js_为什么 webpack4 默认支持 ES6 语法的压缩?
- 独立站的优势是什么?独立站注意事项有哪些?
- java 多线程下载_使用java实现http多线程下载
- HMC 命令行登陆设置
- EMNLP'21 | 基于稀疏子网络的领域迁移
- 如何掌握mysql的查询语句_如何分析mysql的查询语句
- [转载经验] 探亲签证申请
- C++解压KRC文件