1、Linux系统简介

Linux是一套开源的操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

1994年3月,Linux 1.0发布,代码量17万行,当时是按照完全自由免费的协议发布,随后正式采用GPL协议。

1995年1月,Bob Young创办了RedHat(小红帽),以GNU、Linux为核心,集成了400多个源代码开放的程序模块,搞出了一种冠以品牌的Linux,即RedHat Linux,称为Linux发行版,在市场上出售。

1996年6月,Linux 2.0内核发布,可以支持多个处理器。

  • Linux主要特点

免费且开源;完全兼容POSIX 1.0标准;多用户、多任务;拥有良好的界面;支持多种平台。

  • Linux主要版本

目前Linux发行版约有300种,几乎都可以作为服务器系统运行。Linux发行版很少互相复制,流行的Linux服务器发行版主要有以下几个:

Red Hat Enterprise Linux(红帽企业级Linux):这是第一款面向商业市场的Linux发行版。它有服务器版本,支持众多处理器架构。

Debian:Debian运行起来极其稳定,这使得它非常适合用于服务器。

CentOS:CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。这款重构版完全去掉了注册商标以及Binary程序包方面一个非常细微的变化。

Ubuntu:Ubuntu是Debian的一款衍生版,侧重于它在这个市场的应用,在服务器、云计算、甚至一些运行Ubuntu Linux的移动设备上很常见。

2、Ubuntu概述

Ubuntu是一个以桌面应用为主的Linux操作系统。Ubuntu基于Debian发行版和Gnome桌面环境,而从11.04版起,Ubuntu发行版放弃了Gnome桌面环境,改为Unity。 自Ubuntu 18.04 LTS起,Ubuntu发行版又重新开始使用GNOME3桌面环境。在几乎每一份与 Linux 有关的榜单上,基于 Debian 的 Ubuntu都占有一席之位。Canonical 的Ubuntu 胜过其他所有的 Linux 服务器发行版 ―― 从简单安装、出色的硬件发现,到世界级的商业支持,Ubuntu确立了难以企及的严格标准

3、Ubuntu文件系统

Ubuntu 与Windows不同,没有盘符这个概念,只有一个根目录 【/】,所有文件都在它下面

├── bin          # bin是Binary的缩写。存放系统中最常用的可执行文件(二进制)。
├── boot         # 这里存放的是linux内核和系统启动文件,包括Grub、lilo启动器程序。
├── dev          # dev是Device(设备)的缩写。该目录存放的是Linux的外部设备,如硬盘、分区、键盘、鼠标、usb等。
├── etc          # 这个目录用来存放所有的系统管理所需要的配置文件和子目录,如passwd、hostname等。
├── home         # 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
│   └── yahboom        # 用户
│       ├── Desktop    # 桌面
│       ├── Documents  # 文档
│       ├── Downloads  # 下载
│       ├── Music      # 音乐
│       ├── Pictures   # 图片
│       ├── Public     # 共享
│       ├── Templates  # 模板
│       ├── Videos     # 视频
│       ...
│   ...
├── lost+found   # 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些零散文件。
├── lib          # 存放共享的库文件,包含许多被/bin和/sbin中程序使用的库文件。
├── media        # ubuntu系统自动挂载的光驱、usb设备,存放临时读入的文件。
├── mnt          # 作为被挂载的文件系统得挂载点。
├── opt          # 作为可选文件和程序的存放目录,主要被第三方开发者用来简易安装和卸载他们的软件。
├── proc         # 这个目录是一个虚拟的目录,它是系统内存的映射,这里存放所有标志为文件的进程,比较cpuinfo存放cpu当前工作状态的数据。
├── root         # 该目录为系统管理员,也称作超级权限者的用户主目录。
├── sbin         # s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序,如系统管理、目录查询等关键命令文件。
├── srv          # 存放系统所提供的服务数据。
├── sys          # 系统设备和文件层次结构,并向用户程序提供详细的内核数据信息。
├── usr          # 存放与系统用户有关的文件和目录。
│   ├── bin      # 用户和管理员的标准命令
│   ├── games    # 存放着XteamLinux自带的小游戏
│   ├── include  # 用来存放Linux下开发和编译应用程序所需要的头文件,c或者c++
│   ├── lib      # 应用程序和程序包的连接库
│   ├── local    # 系统管理员安装的应用程序目录
│   ├── sbin     # 存放root超级用户使用的管理程序
│   └── src      # Linux开放的源代码
│   └── share    # 存放共享数据
│   ...
├── var          # 长度可变的文件,尤其是些记录数据,如日志文件和打印机文件。
│   ├── backups
│   ├── cache    # 应用程序缓存目录
│   ├── crash    # 系统错误信息
│   ├── log      # 日志文件
│   ├── mail     # 电子邮件
│   └── tmp      # 临时文件目录
│   ...
├── tmp          # 这个目录是用来存放一些临时文件的,所有用户对此目录都有读写权限。
...

4、增删改查

4.1、增

新建文件

touch test.txt

新建文件夹

mkdir test         # 创建一个文件
mkdir -p test/src  # 创建test文件夹,并在test文件夹中创建src文件夹

复制

sudo cp test.txt test_copy.txt  # 复制一个文件

4.2、删

-i 以进行交互式方式执行
-f 强制删除,忽略不存在的文件,无需提示
-r 递归地删除目录下的内容
sudo rm test.txt    # 删除文件 | 空文件夹
sudo rm -r test     # 删除文件夹及文件夹里的内容

4.3、改

  • mv 移动、重名
sudo mv test test_new          # 将test文件夹修改为test_new
sudo mv test.txt test_new.txt  # 将test.txt文件修改为test_new.txt
  • chmod修改文件权限

权限设定

符号 含义
+ 增加权限
- 撤销权限
= 设定权限

rwx

字母权限 含义
r read 表示可读取权限,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。
w write 表示可写入权限,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。
x excute 表示可执行权限,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。
sudo chmod +rwx test.txt

添加所有权限的快捷方式

sudo chmod 777 test.txt
  • 修改密码

设置root密码

sudo passwd root

设置用户名密码

sudo passwd 用户名

4.4、查

  • 查看系统版本
lsb_release -a     # 发行版本号
uname -a           # 内核版本及系统位数
cat /proc/version  # 内核版本及gcc版本
  • 查看硬件信息
curl cip.cc 或者 ifconfig    # 查看IP地址
cat /proc/cpuinfo or lscpu  # cpu信息
sudo dmidecode -t memory    # 内存信息
df -h                       # 查看所有挂载的文件系统空间情况
which python3               # 查看命令位置
v4l2-ctl --list-formats-ext # 查看相机设备参数
nproc                       # 查看内核数
  • 查看文件信息
la              # 显示指定目录下所有子目录与文件,包括隐藏文件
ll             # 以列表方式显示文件的详细信息
ls -h          # 配合以人性化的方式显示文件大小
cat test.txt   # 查看文件内容
tree           # 查看文件目录(需要安装tree)

tree安装命令

sudo apt install tree
  • 查找文件
find ./ -name test.sh    # 查找当前目录下所有名为test.sh的文件or目录
find ./ -name '*.sh'  # 查找当前目录下所有后缀为.sh的文件or目录
find ./ -name "[A-Z]*"    # 查找当前目录下所有以大写字母开头的文件or目录

5、其他常用命令

5.1、tar命令

tar使用格式:tar [参数] 打包文件名 文件

-c   # 生成档案文件,创建打包文件
-v  # 列出归档解档的详细过程,显示进度
-f  # 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后
-t  # 列出档案中包含的文件
-x  # 解开档案文件

打包

tar -cvf xxx.tar *                # 当前目录所有文件
tar -cvf xxx.tar *.txt            # 以.txt结尾的文件
tar -cvf xxx.tar my-file my-dir   # 打包指定目录或文件

解包

tar -xvf xxx.tar             # 解包到当前目录
tar -xvf xxx.tar -C my-dir   # 解包到指定目录(需要先创建my-dir目录)

5.2、zip、unzip命令

压缩文件:zip [-r] 目标文件(没有扩展名) 源文件

zip bak *       # 当前目录所有文件,也可以指定文件
zip -r bak *    # 当前目录所有文件&目录递归

解压文件:unzip -d 解压后目录文件 压缩文件

unzip -d ./target_dir bak.zip  # 解压到指定目录
unzip bak.zip                  # 解压到当前目录

5.3、ln命令

软链接:软链接不占用磁盘空间,源文件删除则软链接失效。常用,可以对文件或文件夹创建

ln -s 源文件 链接文件

硬链接:硬链接只能链接普通文件,不能链接目录。即使删除了源文件,链接文件还是存在

ln 源文件 链接文件

5.4、scp远程拷贝

scp jetson@192.168.16.66:/home/jetson/xxx.tar.gz /home/yahboom/ # 从远程复制文件到本地
scp /home/yahboom/xxx.png jetson@192.168.16.66:/home/jetson/    # 从本地复制文件到远程
scp -r jetson@192.168.16.66:/home/jetson/test /home/yahboom/    # 从远程复制目录到本地 -r
scp -r /home/yahboom/test jetson@192.168.16.66:/home/jetson/    # 从本地复制目录到远程 -r

5.5、wget文件下载

在百度随便搜索一张图片地址,作为示例。

wget "https://img0.baidu.com/it/u=3911542037,2006161295&fm=224&fmt=auto&gp=0.jpg"                 # 下载普通文件(百度链接要加双引号)
wget -O yahboom.jpg "https://img0.baidu.com/it/u=3911542037,2006161295&fm=224&fmt=auto&gp=0.jpg"  # 以指定文件名保存文件

5.6、dpkg命令

dpkg -i ~/mozybackup_i386.deb  # 安装
dpkg -L mozybackup             # 列出与该包先关联的文件
dpkg -l mozybackup             # 显示包的版本
dpkg -r mozybackup             # 移除软件(保留配置)
dpkg -P mozybackup             # 移除软件(不保留配置)
dpkg -s mozybackup             # 查找包的详细信息
dpkg -c mozybackup             # 列出deb包的内容
dpkg -S keyword                # 搜索所属的包内容
dpkg –unpack package.deb       # 解开 deb 包的内容
dpkg –configure package        # 配置包

修复依赖项的问题

sudo apt install -f

dpkg 的命令可用于查看 Debian/ Ubuntu 操作系统是 32 位还是 64 位,此命令只适用于基于 Debian 和 Ubuntu 的 Linux 发行版。

dpkg --print-architecture
如果当前 Linux 是 64 位则输出 amd64,是 32 位则会输出 i386。

5.7、getconf 命令

getconf 命令主要用于显示系统变量配置,我们也可使用如下参数来查看 Linux 系统架构:

getconf LONG_BIT

5.8、arch 命令

arch

主要用于显示操作系统架构类型,与 uname -m 命令非常类似。如果输出 x86_64 则表示为 64 位系统,如果输出 i686 或 i386 则表示为 32 位系统。

  • 其他
nautilus .          # 打开当前文件
cd ~                # 切换到当前用户的主目录(/home/用户目录)
cd .                # 切换到当前目录
cd -                # 可进入上次所在的目录
cd /                # 切换到系统根目录/
pwd                 # 显示当前路径
echo "HelloWorld"   # 向控制台输出HelloWorld信息
which               # 查看命令位置

6、编辑器

6.1、vim

vim是vi的升级版,最常见的区别是能用多种颜色显示显示系统文件的一些特殊信息。

  • 安装命令
sudo apt install vim
  • 三种主要模式

命令模式(编辑模式):默认模式,移动光标,剪切/粘贴文本(界面表现:左下角显示文件名或为空)
插入模式(输入模式):修改文本(界面表现:左下角显示—INSERT–)插入模式下,按ESC按键返回命令模式
末行模式(扩展模式):保存、退出等(界面表现:左下角显示—VISUAL–)末行模式下连续按两次ESC按键返回末行模式

  • 模式切换

命令模式切换到编辑模式

i    # 插入方式进入编辑模式
a    # 追加方式进入编辑模式
o    # 当前行下一行开始位置开始编辑
O    # 当前行上一行开始位置开始编辑

命令模式切换到末行模式

:     # 输入冒号【:】

末行模式切换到命令模式:按【esc】

编辑模式切换到命令模式:按【esc】

Esc建:退出到当前模式

Esc建Esc建:总是返回到命令模式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aitFzjQE-1646987471220)(vim.png)]

  • 末行模式
w           # 保存
q           # 退出
q!          # 强制退出
x           # 保存并退出
set nu      # 显示行号
set         # nonu 隐藏行号
0,$d        # vim 删除文件全部内容:
/string     # 从光标处开始向后寻找字符串string;按n定位下一个,shfit+n定位上一个。
g/string    # 检索string。使光标停止在第一个检索到的 string 串的行首。
  • 命令模式
yy        # 复制
p         # 粘贴
3yy       # 复制3行
2p        # 粘贴2遍
dd        # 剪切
3dd       # 剪切3行
u         # 撤销
Ctrl + r  # 反撤销
dd        # 删除当前行
dG        # 删除当前行到文件末尾
dH        # 删除当前行到文件开头
gg        # 跳到当前文档首行
G         # 跳到当前文档末行
^         # 跳到当前行首
$         # 跳到当前行尾
h         # 左移一个字符
j         # 下移一行
k         # 上移一行
l         # 右移一个字符
PageDown(或Ctrl+F)  # 下翻一屏
PageUp(或Ctrl+B)    # 上翻一屏

6.2、nano

nano是Unix和类Unix系统中的一个文本编辑器,是Pico的复制品。

  • 安装
sudo apt install nano

新建/打开文件

nano 路径+文件名
例如:nano test_nano.txt

控制命令

Ctrl+v     # 下一页
Ctrl+y     # 上一页
Ctrl+w     # 搜索单词或短语
Ctrl+x     # 关闭当前文本,退出nano,返回shell
Ctrl+\     # 搜索替换
Ctrl+k     # 剪切文本行
Ctrl+u     # 粘贴文本行
Ctrl+c     # 显示光标在文本中的位置

6.3、gedit

gedit跟Windows下记事本的用法没什么差别。

在编辑器中我们可以点击 ”Open” 按钮浏览最近打开过的文件列表并打开文件;点击 ”Save” 按钮可以保存当前正在编辑的文件;点击右侧的菜单栏进行更多的操作等等。
快捷键也跟windows下一样:

Ctrl + s           保存文件
Ctrl + Shift + s   另存为
Ctrl + f           搜索文本内容

gedit编辑器启动必须在能够显示界面的情况下,不可ssh、jupyter、putty等远程无界面启动。

7、Ubuntu软件操作命令

sudo apt-get update                            # 更新源
sudo apt-get install package                   # 安装包
sudo apt-get remove package                    # 删除包
sudo apt-cache search package                  # 搜索软件包
sudo apt-cache show package                    # 获取包的相关信息,如说明、大小、版本等
sudo apt-get install package --reinstall       # 重新安装包
sudo apt-get -f install                        # 修复安装
sudo apt-get remove package --purge            # 删除包,包括配置文件等
sudo apt-get build-dep package                 # 安装相关的编译环境
sudo apt-get upgrade                           # 更新已安装的包
sudo apt-get dist-upgrade                      # 升级系统
sudo apt-cache depends package                 # 了解使用该包依赖那些包
sudo apt-cache rdepends package                # 查看该包被哪些包依赖
sudo apt-get source package                    # 下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean   # 清理无用的包
sudo apt-get check                             # 检查是否有损坏的依赖

Linux学习笔记(四)Linux基础操作相关推荐

  1. Linux学习笔记(四)-Linux常用命令

    常用命令格式 #command(指令) [-options] parameter1(参数1) parameter2(参数2)... 大小写区分,tab自动补全 Shell特殊字符 通配符 管道Pipe ...

  2. 史上最牛最强的linux学习笔记 10.shell基础

    史上最牛最强的linux学习笔记 10.shell基础 写在最前面: 本文是基于某站的视频学习所得,第一个链接如下: https://www.bilibili.com/video/BV1mW411i7 ...

  3. 【黑马程序员新版Linux学习笔记】Linux系统实用操作命令——操作演示

    [黑马程序员新版Linux学习笔记]Linux 零基础快速入门: (一)Linux基本命令--操作演示 (二)Linux用户和权限 -- 操作演示 (三)Linux 小技巧快捷键 (四)Linux系统 ...

  4. Linux学习笔记之——Linux系统内部相关介绍

    Linux学习笔记之--Linux系统内部相关介绍 摘要:主要记录一些比较有用的能够帮助理解和使用Linux的知识.比如一些相关概念.没兴趣的看看就好.知道有这么个东西.注意事项.和一些常用目录的作用 ...

  5. Linux中常用的文件目录,Linux学习笔记2——Linux中常用文件目录操作命令

    ls 显示文件和目录列表 -l 列出文件的详细信息 -a 列出当前目录所有文件,包含隐藏文件 mkdir 创建目录 -p 父目录不存在情况下先生成父目录 cd 切换目录 touch 生成一个空文件 e ...

  6. 【Linux学习笔记】Linux服务器:配置与管理samba服务器

    Linux系列文章目录 一.[linux学习笔记]红帽Linux 7.8系统在虚拟机上的安装 二.[Linux学习笔记]Linux系统的基本操作 三.[Linux学习笔记]管理Linux操作系统:用户 ...

  7. Linux学习笔记:Linux常用命令总结

    文章目录 前言 Linux学习笔记:Linux常用命令总结 1. 目录命令 1.1 Linux目录结构 1.2 cd命令 切换工作目录 1.3 ls命令 显示目录下文件 1.4 mkdir命令 创建目 ...

  8. Linux入门怎么学?262页linux学习笔记,零基础也能轻松入门

    #种一棵树最好的时间是十年前,其次是现在 很多程序员一开始在学习上找不到方向,但我想在渡过了一段时间的新手期之后这类问题大多都会变得不再那么明显,工作的方向也会逐渐变得清晰起来. 但是没过多久,能了解 ...

  9. linux学习笔记:1.基础知识和命令行基本操作

    初次学习linux系统,想在这里记录自己的学习痕迹,如发现有不足之处,希望能指出,谢谢啦,之后的学习是在虚拟机VMware 10下的Red Hat Enterprise linux 6 的操作. 一. ...

  10. Linux学习笔记(四)

    压缩和解压缩 zip和unzip命令 语法格式为:zip[选项] 参数 zip命令 可以用来解压缩文件,或者对文件进行打包操作.zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有". ...

最新文章

  1. joomla源代码探析(五) framework.php
  2. leetcode — maximum-subarray
  3. Java 取得文件名的后缀
  4. BC:带你温习并解读《腾讯区块链方案白皮书》—区块链的兴起和未来之路
  5. 从《我要投资》,看麓谷基金广场的“孤峰优势”
  6. 单例模式的特点,懒汉式和饿汉式的区别
  7. C# 4.0 新特性dynamic、可选参数、命名参数等
  8. 双电阻差分电流采样_小小的采样电阻,还真有点门道!
  9. 【Vue】详解 SFC 与 vue-loader
  10. Ext Scheduler(日程表) 2.0——升级到4.0
  11. 使用Movavi Photo Editor如何向视频中添加转场
  12. 基于MUI框架的影视播放APP的设计与实现毕业设计论文参考【原查重5.1%】
  13. 计算机网络中的A类、B类、C类地址的划分
  14. vue-cli3的eslint配置问题
  15. 如何用成长型思维赋能敏捷
  16. dlsym RTLD_DEFAULT
  17. Python 实现远程服务器(ssh)批量执行命令
  18. Lotus Notes登录后无法进入邮件,一直处于“正在加载,请稍候” 解决办法!!!
  19. [附源码]Java计算机毕业设计SSM房屋租赁管理系统
  20. 中国银行现货黄金的精髓:过犹不及

热门文章

  1. 原创整理《考研英语词汇的逻辑》精选词汇-思维导图
  2. 计算机的组成以及其功能
  3. 我的第一个小程序(Discuz! + 微信小程序)
  4. 32 任意项级数敛散性的判别法
  5. fx3u4ad一adp说明书_三菱FX3U-4AD-ADP用户手册FX3U-4AD-ADP模拟控制版本手册 - 广州凌控...
  6. 大写汉字(大写汉字又称什么数码)
  7. ESlint语法检测工具
  8. VMware虚拟机快速复制多个Linux系统
  9. Python股票数据爬虫解读
  10. 51单片机的几种精确延时