来源操作系统的一次作业——230306
作业操作
视频链接:pic-ldd-test.oss-cn-hangzhou.aliyuncs.com/OS/%E5%9C%A…
装 emacs 的命令(sudo apt install emacs)
安装gcc工具 (sudo apt install gcc) 创建文件 vim **.c 完成后编译 gcc **** .c -o **
运行 ./**
- hello.c 编译
编辑
- hello2.c编译结果
编辑
- 安装中文输入法
编辑
编辑
- 安装QQ
编辑
编辑
- 安装wps
软件安装
编辑
编辑
编辑
命令备忘录
写在前面: 因为VMware中的Ubuntu内的内容过少,必要时使用Ubuntu on Windows使用命令查看效果
操作命令原版链接:www.cnblogs.com/andy-0212/p…
Bash命令
| uname -a | 查看内核/操作系统/CPU信息 |
|---|---|
| head -n 1 /etc/issue | 查看操作系统版本 |
| mount | 挂载 |
| date | 显示时间格式 |
| uptime | 获取主机运行时间和查询Linux系统负载等信息 |
| whoami | 查看当前登录用户的账户名 |
| man command | 帮助手册, 打开程序手册,显示命令手册 |
uname -a 查看内核/操作系统/CPU信息
编辑
head -n 1 /etc/issue 查看操作系统版本
编辑
mount挂载
编辑
date显示时间格式
编辑
uptime获取主机运行时间和查询Linux系统负载等信息
编辑
whoami查看当前登录用户的账户名
编辑
man command帮助手册, 打开程序手册,显示命令手册
编辑
Bash 快捷方式
| CTRL-c | 终止正在运行的程序 |
|---|---|
| CTRL-z | 挂起一个进程,把当前进程转到后台运行,使用’ fg ‘命令恢复。比如top -d1 然后ctrl+z ,到后台,然后fg,重新恢复 esc组合 |
| CTRL-a | 光标移到行首 |
| CTRL-e | 光标移到行尾 |
| CTRL-u | 清除光标前至行首间的所有内容 |
| CTRL-k | 清除光标后至行尾的内容 |
| CTRL-r | 搜索之前打过的命令。会有一个提示,根据你输入的关键字进行搜索bash的history |
| !! | 重复最后一个命令 |
| !abc | 执行以abc开头的最后一个命令 |
| !abc:p | 打印以 abc 开头的最近的命令,并将其替换为该命令的输出 |
| !$ | 用于引用前一个命令的最后一个参数 |
| ALT-. | 用于快速获取之前执行的命令中最后一个参数 |
| !* | 用于引用前一个命令中除第一个参数外的所有参数 |
| ^abc^123 | 用123替换abc |
CTRL-c* 终止正在运行的程序*
编辑
CTRL-z挂起一个进程,把当前进程转到后台运行,使用’ fg ‘命令恢复。比如top -d1 然后ctrl+z ,到后台,然后fg,重新恢复 esc组合
CTRL-a光标移到行首
CTRL-e光标移到行尾
CTRL-u清除光标前至行首间的所有内容
CTRL-k* 清除光标后至行尾的内容*
CTRL-r搜索之前打过的命令。会有一个提示,根据你输入的关键字进行搜索bash的history
编辑
!!重复最后一个命令
编辑
!abc执行以abc开头的最后一个命令
!abc:p打印以 abc 开头的最近的命令,并将其替换为该命令的输出
!$ 用于引用前一个命令的最后一个参数
编辑
ALT-.* 用于快速获取之前执行的命令中最后一个参数
编辑
!* 用于引用前一个命令中除第一个参数外的所有参数
编辑
^abc^123 用123替换abc
Bash变量
| env | 查看环境变量 |
|---|---|
| echo $NAME | 打印出一个环境变量 $NAME 的值 |
| export NAME=value | 将名为 NAME 的变量设置为 value 的值,并将其标记为环境变量 |
| $PATH | 环境变量 |
| $HOME | 环境变量,用于指定当前用户的主目录 |
| $SHELL | 环境变量,它指定了当前正在使用的 shell 程序的路径 |
env查看环境变量
编辑
**echo NAME 的值
编辑
编辑
export NAME=value 将名为 NAME 的变量设置为 value 的值,并将其标记为环境变量
编辑
$PATH环境变量
编辑
$HOME环境变量,用于指定当前用户的主目录
编辑
$SHELL环境变量,它指定了当前正在使用的 shell 程序的路径
编辑
I/O 重定向
| | cmd < file |将命令 cmd 的输入数据从文件 file 中读取,而不是从键盘或其他标准输入源中读取 编辑 |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| cmd1 <(cmd2) |将命令 "cmd2" 的输出作为 "cmd1" 的输入
编辑 |
| cmd > file |将命令的输出重定向到名为 "file" 的文件中
编辑 |
| cmd > /dev/null |命令的标准输出将被重定向到 "/dev/null",因此不会在终端上显示任何输出
编辑 |
| cmd>> file |不会覆盖文件中原有的内容,将命令的输出附加到名为 "file" 的文件的末尾
编辑 |
| cmd2 >> file |将命令的输出追加到指定文件的末尾,而不是覆盖文件中原有的内容
编辑 |
| cmd1>&2 |是一个重定向命令,表示将标准错误输出 (
stderr) 重定向到标准输出 (stdout)编辑 |
| cmd2>&1 |将第二个命令的标准错误输出重定向到第二个命令的标准输出的命令
编辑 |
| cmd &>file |将命令的标准输出和标准错误输出都重定向到一个文件中的命令
编辑 | ```
cmd指的是一个命令
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| |
cmd指的是一个命令
### 管道Pipes
| | 编辑 |
| ------------------------------------------------------------------------------------------ |
| **cmd1 |cmd2 |将第一个命令的标准输出重定向到第二个命令的标准输入,这种技术通常称为管道。** |
| **cmd1 |& cmd2 |将第一个命令的标准输出和标准错误输出合并,然后将其作为第二个命令的标准输入。** | 

新建虚拟电脑:


## vmware中
并拖拽以移动")编辑 |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| |
### 命令列表
| **cmd1 ; cmd2 |按顺序执行两个命令,不管第一个命令的执行结果如何,都会执行第二个命令**编辑 |
| ----------------------------------------------------------------------------------------------------------------------------------------------- |
| **cmd1 && cmd2 |在 "cmd1" 命令执行成功时执行 "cmd2" 命令的命令**编辑 |
| **cmd1 || cmd2 |在 "cmd1" 命令执行失败时执行 "cmd2" 命令的命令**编辑 |
| **cmd & |命令用于在后台运行命令,而不阻塞当前终端**编辑 |
### 目录操作
| **pwd** | **用于显示当前工作目录的命令** |
| ------------- | ----------------------------- |
| **mkdir dir** | **用于创建名为 "dir" 的新目录** |
| **cd dir** | **用于切换到当前工作目录下名为 "dir" 的子目录** |
| **cd ..** | **用于进入当前工作目录的父目录的命令** |
| **ls** | **列出文件** |
**pwd用于显示当前工作目录的命令**
编辑
**mkdir dir** **用于创建名为 "dir" 的新目录**
编辑
**cd dir** **用于切换到当前工作目录下名为 "dir" 的子目录**
编辑
**cd ..** **用于进入当前工作目录的父目录的命令**
编辑
**ls** **列出文件**
编辑
### ls选项
| -a | 显示指定目录下所有子目录与文件,包括隐藏文件 |
| -- | ----------------------------------------------- |
| -R | 用于在终端输出指定目录及其子目录中的所有文件和目录 |
| -r | 以相反的顺序显示 |
| -t | 按照修改时间来排序 |
| -S | 命令输出结果按照文件大小来排序 |
| -l | 以长格式输出目录中的所有文件和目录的详细信息 |
| -1 | 用于在终端输出目录中的所有文件和目录名称,每个文件或目录占用一行,适用于输出长列表或大量文件时 |
| -m | 输出文件和目录名称的逗号分隔列表的命令选项 |
| -Q | 列出指定目录下的文件和子目录 |
-a 显示指定目录下所有子目录与文件,包括隐藏文件
编辑
-R 用于在终端输出指定目录及其子目录中的所有文件和目录
编辑
-r 以相反的顺序显示
编辑
-t 按照修改时间来排序
编辑
-S 命令输出结果按照文件大小来排序
编辑
-l 以长格式输出目录中的所有文件和目录的详细信息
编辑
-1 用于在终端输出目录中的所有文件和目录名称,每个文件或目录占用一行,适用于输出长列表或大量文件时
编辑
-m 输出文件和目录名称的逗号分隔列表的命令选项
编辑
-Q 列出指定目录下的文件和子目录
编辑
### 搜索文件
| **grep pattern files** | **查找符合特定模式(即 `pattern`)的文本字符串所在的文件的命令** |
| ------------------------- | --------------------------------------- |
| **gerp -i** | **忽略大小写的不同** |
| **gerp -r** | **递归搜索指定目录及其子目录中的文件,查找包含指定字符串的行** |
| **gerp -v** | **反向选择,显示出没有‘查找字符’内容的那一行** |
| **gerp -o** | **仅显示到匹配到的字符串本身** |
| **find /dir/-name name*** | **查找指定目录 /dir/ 下文件名以 name 开头的文件** |
| **find /dir/-user name** | **查找指定目录 /dir/下属于指定用户 name的文件** |
| **find /dir/-mmin num** | **查找指定目录 /dir/ 下最近 num分钟内被修改过的文件** |
| **whereis command** | **查找可执行程序、源代码文件和帮助文档等文件** |
| **locate file** | **查找文件(快速搜索系统索引)** |
**grep pattern files** **查找符合特定模式(即 `pattern`)的文本字符串所在的文件的命令**

编辑
**gerp -i** **忽略大小写的不同**

编辑
**gerp -r** **递归搜索指定目录及其子目录中的文件,查找包含指定字符串的行**

编辑
**gerp -v** **反向选择,显示出没有‘查找字符’内容的那一行**

编辑
**gerp -o** **仅显示到匹配到的字符串本身**

编辑
**find /dir/-name name*** **查找指定目录 /dir/ 下文件名以 name 开头的文件**

编辑
**find /dir/-user name** **查找指定目录 /dir/下属于指定用户 name的文件**

编辑
**find /dir/-mmin num** **查找指定目录 /dir/ 下最近 num分钟内被修改过的文件**

编辑
**whereis command** **查找可执行程序、源代码文件和帮助文档等文件**

编辑
**locate file** **查找文件(快速搜索系统索引)**
编辑
### 文件操作
| **touch file1** | **创建文件1** |
| ------------------- | ------------------------------- |
| **cat file1 file2** | **连接文件1和文件2,并输出** |
| **less file1** | **打开并查看文件1的内容** |
| **file file1** | **获取文件1的类型** |
| **cp file1 file2** | **将文件1复制到文件2** |
| **mv file1 file2** | **将文件名为 file1的文件移动或重命名为 file2** |
| **rm file1** | **删除文件1** |
| **tail file1** | **显示文件1的最后10行** |
| **tail -F file1** | **监视文件file1的变化,并显示最新的内容** |
**touch file1** **创建文件1**
编辑
**cat file1 file2** **连接文件1和文件2,并输出**
编辑
**less file1** **打开并查看文件1的内容**
编辑
**file file1** **获取文件1的类型**
编辑
**cp file1 file2** **将文件1复制到文件2**
编辑
编辑
**mv file1 file3** **将文件名为 file3的文件移动或重命名为 file2**
编辑
**rm file3** **删除文件3**
编辑
**tail file1** **显示文件1的最后10行**
编辑
**tail -F file1** **监视文件file1的变化,并显示最新的内容**
编辑
### 查看命令
编辑
### 进程管理
| **ps** | **查看进程** |
| ---------------- | ------------------------- |
| **top** | **实时显示进程状态** |
| **kill pid** | **根据id杀死进程,pid是要终止的进程编号** |
| **pkill name** | **根据进程名杀死进程** |
| **killall name** | **杀死指定name开头的名字的进程** |
**ps** **查看进程**
**top** **实时显示进程状态**
编辑
**kill pid** **根据id杀死进程,pid是要终止的进程编号**
编辑
**pkill name** **根据进程名杀死进程**
正在上传…重新上传取消
**killall name** **杀死指定name开头的名字的进程**

编辑
### Nano快捷方式
> 文件
| **Ctrl-R** | **读文件** |
| ---------- | ------------------------ |
| **Ctrl-O** | **保存,会提示是否更改文件名,回车则不修改** |
| **Ctrl-X** | **退出,如果没有保存会提示是否要保存** |
**Ctrl-R** **读文件**
编辑
编辑
编辑
**Ctrl-O** **保存,会提示是否更改文件名,回车则不修改**
编辑
**Ctrl-X** **退出,如果没有保存会提示是否要保存**
编辑
> 剪切和粘贴
| **ALT-A** | **开始文本标记** |
| ---------- | ------------------ |
| **CTRL-K** | **剪切标记的文本或容** |
| **CTRL-U** | **清除光标前至行首间的所有内容** |
**ALT-A** **开始文本标记**
编辑
**CTRL-K** **剪切标记的文本或容**
编辑
**CTRL-U** **清除光标前至行首间的所有内容**
编辑
> 导航文件
| **ALT-/** | **到文件的结束** |
| ---------- | ----------------------- |
| **CTRL-A** | **光标移到行首** |
| **CTRL-E** | **光标移到行尾** |
| **CTRL-C** | **显示行号** |
| **CTRL-_** | **可以直接输入行号,让光标快速移动到该行** |
**ALT-/** **到文件的结束**
编辑
**CTRL-A** **光标移到行首**
编辑
**CTRL-E** **光标移到行尾**
编辑
**CTRL-C** **显示行号**
编辑
**CTRL-_** **可以直接输入行号,让光标快速移动到该行**
编辑
编辑
> 搜索文件
| **CTRL-W** | **查找** |
| ----------- | --------- |
| **ALT-W** | **找到下一个** |
| **CTRL-\** | **搜索和替换** |
**CTRL-W** **查找**
编辑
编辑
**ALT-W** **找到下一个**
编辑
**CTRL-\** **搜索和替换**
编辑
编辑
编辑
更多详情信息: www.nano-editor.org/docs.php
### Screen 快捷方式
| **screen** | **启动屏幕会话** |
| ---------------- | -------------- |
| **screen -r** | **恢复屏幕会话** |
| **screen -list** | **显示当前的屏幕会话** |
| **CTRL-A** | **激活屏幕命令** |
| **CTRL-A c** | **创建一个新的终端实例** |
| **CTRL-A n** | **转到终端的下一个实例** |
| **CTRL-A p** | **转到终端的上一个实例** |
| **CTRL-A ''** | **显示终端的当前实例** |
| **CTRL-A A** | **修改当前窗口的名称** |
更多screen详细信息资讯: www.gnu.org/software/sc…
**screen** **启动屏幕会话**
编辑
**screen -r** **恢复屏幕会话**
编辑
**screen -list** **显示当前的屏幕会话**
编辑
**CTRL-A** **激活屏幕命令**
编辑
**CTRL-A c** **创建一个新的终端实例**
编辑
**CTRL-A n** **转到终端的下一个实例**
编辑
**CTRL-A p** **转到终端的上一个实例**
编辑
**CTRL-A ''** **显示终端的当前实例**
编辑
**CTRL-A A** **修改当前窗口的名称**
编辑
### File 文件权限
| c**hmod 755 file** | **修改文件或目录的权限,数字755 将读写执行权限分配给用户所有者,将读取执行权限分配给组所有者和其他人** |
| ------------------------- | ------------------------------------------------------- |
| **chmod -R 600 folder** | **递归chmod文件找到600** |
| **chown user.group file** | **将文件所有者更改为用户和组** |
c**hmod 755 file** **修改文件或目录的权限,数字755 将读写执行权限分配给用户所有者,将读取执行权限分配给组所有者和其他人**
编辑
编辑
**chmod -R 600 folder** **递归chmod文件找到600**
编辑
编辑
**chown user.group file** **将文件所有者更改为用户和组**
编辑
### 文件权限编号
第一个数字是所有者权限,第二个数字是组,第三个数字是所有人。 通过在下面添加数字来计算许可数字。
| **4** | **读(r)** |
| ----- | --------- |
| **2** | **写(w)** |
| **1** | **执行(x)** |
编辑