Linux学习笔记(四)Linux基础操作

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,学习)