Ubuntu简介

Ubuntu(乌班图)

Ubuntu是一个带有可视化操作界面的GNU/Linux操作系统

什么是linux

Linux 内核,其发音为 ‘lee-nucks’,是 Ubuntu 操作系统的核心。内核是操作系统的重要组成部分,它是硬件和软件之间进行通讯的桥梁。 Linux 诞生于1991年,由芬兰学生 Linus Torvalds 发起。那时,它只能运行在 i386 系统上,实质上是个独立编写的 UNIX 内核之克隆,旨在充分利用当时全新的 i386 架构。

什么是GNU

GNU 项目,其发音为“guh-noo”,于1984年发起,目标是开发一个完整的 UNIX 类的操作系统-GNU 系统,它全部由自由软件组成。使用 Linux 内核的 GNU 操作系统变种已被广泛使用;尽管这些系统常冠以“Linux”,更准确的说它们应称为 GNU/Linux 系统。 GNU 项目和自由软件的理念紧密相连,它也是衍生自 GNU 的、诸如 Ubuntu 等项目的关键所在。

Ubuntu目录结构

在这里插入图片描述

Ubuntu主要目录
  • / :根目录,在linux下有且只有一个目录,所有东西都是从这里开始.
  • /bin & /user :可执行二进制文件的目录.
  • /boot :放置linux启动时用到的一些文件,如linux的内核文件:/boot/vmlinuz, 系统引导管理器:/boot/frub.
  • /etc :系统配置文件存放的目录,不建议在此目录下存放可执行文件.
  • /home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下.

终端

使用命令行并不像您想象的那么困难。使用命令行不需要专门知识,和其它软件一样,它也仅仅是一个程序。Linux 中绝大部分工作都可以用命令行完成,尽管大部分程序都有相应的图形工具,但有时这些图形工具会捉襟见肘,不够用。此时便是命令行大显身手的时候。 终端常常被称为命令行或者 shell。

启动终端
  • 鼠标点一哈
  • 按Crtl+Alt+T
常用命令
  • 查看目录:ls 查看当前目录下,有什么目录,文件
  • 创建目录:mkdir (目录名),可以理解为在windows下创建文件夹
  • 创建文件:touch (文件名),如果要创建python文件,touch test.py
  • 切换目录:cd (directory/location),cd后跟绝对路径或相对路径
cd /  # 进入根目录
cd ~  # 进入用户的home目录
cd -  # 进入上次访问的目录,类似于windows的ctrl+tab 切换功能
cd ..  # 返回上级目录
cd .  # 不会有任何反应,因为.表示当前目录
  • 复制文件:cp (源文件或目录名) (目标目录或文件名)
    • cp(copy)命令会拷贝指定的任意文件。cp -r 命令则可以拷贝指定的任意目录
  • 删除文件/目录:rm (文件或目录名)
    • rm(remove)可以删除指定的任意文件,rm -rf,-f是强制删除,-r是递归删除目录下的内容,可以删除指定的任意目录;rmdir 删除空文件夹
  • 重命名文件/目录:mv (源文件或目录名) (目标文件或目录名)
mv aaa bbb # 将当前目录下的aaa文件改名为bbb
mv info/ logs  # 将info目录放入logs目录中,如果logs目录不存在,则将info改名为logs
mv /usr/student/* . # 将/usr/student下所有文件和目录移动到当前目录下
  • 查询命令的使用手册:man command(如ls)
  • 显示文件系统空间信息:df (文件名) [-h],-h是人性化显示
  • 显示目录的空间使用信息:du (目录名)
du -sh /media/floppy # -s 是summary,-h 是human-readable
  • ~ 代表主目录。如果你创建的用户叫user,~ 代表/home/user
  • 显示当前路径 pwd
  • 显示系统的网络 ifconfig, windows下的ipconfig
  • 显示目录结构: tree 如果提示没有该命令就下一个,sudo apt install tree.

root用户和sudo命令

GNU/Linux 系统的 root 用户具有系统的管理权限。出于安全考虑,普通用户并不具备这一权限。不过,Ubuntu 上并不包含 root 用户,而是将管理员权限授予特定用户,他们可以使用 “sudo” 应用程序来执行管理任务。

命令行软件包管理

APT(Advanced Package Tool,高级软件包工具)

APT是一个强大的包管理系统,运行APT要求管理权限(root用户和sudo命令)

安装软件包
sudo apt-get install packagename
删除软件包
sudo apt-get remove packagename
获取新的软件包列表
sudo apt-get update
升级
sudo apt-get upgrade
列出更多命令和选项
apt-get help

以上内容参考自:https://wiki.ubuntu.org.cn/Ubuntu%E6%A1%8C%E9%9D%A2%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97#.E6.8E.92.E7.89.88.E7.BA.A6.E5.AE.9A

查看文件内容相关命令

cat
  • 查看文件内容,cat+空格+文件名
  • 该命令会一次性显示所有内容,所以适合查看内容较少的文件
选项功能
[-b]只显示有内容的行号,空行不算一行
[-n]显示每一行的行号
more
  • 此命令可以分屏显示文件内容,每次只显示一页内容。适合查看内容多的文件。进入文件后可按以下内容操作:
操作按键功能
空格键显示下一页内容
回车键显示下一行
b返回,显示上一页
f和空格效果一样,显示下一页
qquit,退出more模式
/搜索文字搜索文本中的内容
grep
  • (global search regular expression and print out the line, 全面搜索正则表达式并把行打印出来) 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
选项功能
[-n]line-number,显示匹配行及行号
[-v]invert-match, 选中不匹配的行
[-i]ignore,忽略大小写
grep中常用的查找方式
  • file_nmae中搜索hello world这个单词
$ grep "hello world" file_name
  • 在多个文件中查找
grep "hello world" file_1, file_2, file_3...
  • 在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行.
grep test *file
  • 查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容
grep -r update /etc/acpi
  • 查找文件名中包含 test 的文件, 文件内容中不包含test 的行
grep -v test *text*
  • 常用的两种模式查找
参数功能
^hello行首,搜索已hello开头的行
world$行尾,搜索已world结尾的行

几个常用的符号

重定向符
  • linux中允许将命令执行的结果重定向到一个文件
  • 将本应该显示在终端上的内容输出/追加到指定文件中

符号|功能

|输出重定向到一个文件或设备 覆盖原来文件

|输出重定向到一个文件或设备 追加原来的文件

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

管道符|

  • linux允许将一个命令的输出,可以通过管道做为另一个命令的输入
command 1| command 2|conmmand 3 ...
### 解决 Ubuntu 系统中 `sshpass` 命令未找到及权限拒绝 (`Permission Denied`) 错误 #### 安装 `sshpass` 命令 如果在 Ubuntu 系统中运行 `sshpass` 时提示命令未找到,这表明系统尚未安装该工具。可以通过以下方法解决: ##### 方法一:通过 APT 包管理器安装 执行以下命令以安装 `sshpass`: ```bash sudo apt update && sudo apt install sshpass -y ``` 这条命令会更新系统的软件包索引并安装 `sshpass` 工具[^1]。 ##### 方法二:手动编译安装 如果由于某些原因无法使用 APT 安装,则可以选择从源码编译安装: 1. 下载最新版本的 `sshpass` 源码包: ```bash wget https://sourceforge.net/projects/sshpass/files/latest/download -O sshpass.tar.gz ``` 2. 解压下载的压缩包: ```bash tar zxvf sshpass.tar.gz cd sshpass-* ``` 3. 编译并安装: ```bash make sudo cp sshpass /usr/local/bin/ ``` 完成后可通过以下命令验证是否成功安装: ```bash sshpass --version ``` 若返回版本信息则表示安装成功[^2]。 --- #### 解决 Permission Denied 错误 当上传文件或访问目录时出现 `Permission denied` 错误,可能的原因包括但不限于以下几种情况及其解决方案: ##### 1. 文件或目录权限不足 检查目标路径的权限设置是否允许当前用户进行读取、写入或执行操作。可以使用以下命令查看权限: ```bash ls -ld /path/to/directory ``` 如果发现权限不足,可以调整权限为合适的值。例如,赋予所有人写入权限(仅用于测试目的,不建议长期使用): ```bash chmod 777 /path/to/directory ``` 或者只为特定用户组赋予权限: ```bash chown your_user:your_group /path/to/directory chmod 750 /path/to/directory ``` ##### 2. SELinux 或 AppArmor 配置冲突 在某些情况下,SELinux 或 AppArmor 可能会对文件或目录施加额外的安全策略,从而阻止正常访问。可以通过临时禁用来排查问题: - 对于 SELinux: ```bash setenforce 0 ``` - 对于 AppArmor: ```bash aa-disable /path/to/profile ``` 注意:这些更改仅为诊断用途,不应作为最终解决方案。需进一步分析安全策略配置[^3]。 ##### 3. WSL2 特殊环境下的权限问题 如果你正在使用 WSL2 并遇到类似错误(如 VSCode 中无法保存文件),可能是由于挂载选项默认设置了只读模式所致。可以在 `/etc/wsl.conf` 文件中修改挂载参数: ```ini [automount] options = "metadata" ``` 随后重启 WSL2 生效: ```bash wsl --shutdown ``` 此外,确保主机上的文件夹具有正确的 NTFS 权限,并将其映射到 WSL2 的适当位置[^4]。 --- ### 总结 - **`sshpass` 命令缺失**:通过 APT 更新和安装或手动编译安装解决。 - **`Permission denied` 错误**:检查文件/目录权限、SELinux/AppArmor 设置以及 WSL2 的挂载选项。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值