一、Ubuntu 系统常用命令学习及其作用
(一)进入终端(Terminal)的多种方式
1、使用快捷键:
- 快捷键Ctrl + Alt + T:这是最常见的方式,可以快速打开一个新的终端窗口。
2、从应用程序菜单中:
- 单击左上角的“应用”图标,然后在“搜索”框中输入“终端”或“Terminal”,然后点击终端应用图标即可打开。
3、使用启动器:
- 按super键(通常是Windows键),然后在搜索框中输入“终端”或“Terminal”,然后点击终端应用图标。
4、在文件夹中打开:
- 打开文件浏览器,在当前文件夹窗口中,右键单击鼠标并选择“在终端打开”选项,这将在当前文件夹中打开一个终端。
(二)进入vim编辑器的方式
命令 | 作用 |
mkdir FolderName | 进入终端后,在桌面上利用终端创建一个新的文件夹,mkdir+文件夹名字 |
cd FolderName | 在上个命令创建新的文件夹的基础上,打开新创建的文件夹 |
vi | 打开Vim文本编辑器 |
vi filename | 进入Vim文本编译器并新建一个文件 |
vi +# filename | 在vi filename命令的基础上,打开创建的新建文件并把光标定位在第#(数字)行 |
vi -R filename | 以只读的方式打开打开已存在的文件 |
(三)Vi的四种模式简介
1、普通模式(Normal Mode):
- 利用上述命令中的vi ProgramName进入Vi后的默认模式。
- 用于浏览文件、移动光标、复制以及粘贴文件等。
- 按键盘方向键“←”或是“h”、“↑”或是“k”、“↓”或是“j”、“→”或是“l”四个按键完成光标的移动。
- 按键盘“i”键进入插入模式,按键盘“a”键进入插入模式并将光标移动到下一位置,按键盘“A”键进入插入模式并将光标移动到行末。
- 按键盘“x”键删除当前字符,按两次键盘“d”键删除当前行。
2、插入模式(Insert Mode):
- 用于编辑文本。
- 可以通过按键盘“a”键(光标前插入文本内容)或按键盘“i”键(光标后插入文本内容)来进入插入模式。
- 通过按键盘“ESC”键退出插入模式。
3、可视模式(Visual Mode ):
- 用于选择文本。
- 可以在普通模式的基础上按键盘“v”键进入可视模式,然后可以通过普通模式的移动光标的方法来选取文本。
- 可以复制、剪切或删除所选文本。
4、命令行模式(Command Mode):
- 用于执行Vi的高级命令。
- 可以通过按键盘“:”竟然命令行模式,然后输入命令。
(四)三种模式下的常见命令
1、普通模式(Normal Mode):
h或“←” | 向左移动光标。 |
j或“↓” | 向下移动光标。 |
k或“↑” | 向上移动光标。 |
l或“→” | 向右移动光标。 |
数字0 | 移动到本行行首。 |
特殊符号“$” | 移动到本行行末。 |
w | 向前移动一个单词。 |
b | 向后移动一个单词。 |
G | 移动到该文件末尾。 |
gg | 移动到该文件开头。 |
yy | 复制光标所在的当前行。 |
dd | 剪切光标所在的当前行。 |
p | 粘贴剪切或复制的文本内容在光标后。 |
大写字母“P” | 粘贴剪切或复制的文本内容在光标前。 |
x | 删除光标所在字符。 |
大写字母“X” | 删除光标前的字符。 |
dw | 删除一个单词。 |
dd | 删除当前行。 |
大写字母“D” | 删除从光标位置到当前行尾的文本。 |
n(n为数字)dd | 删除从光标所在的行到其后的n-1行(n必须用数字代替) |
n(n为数字)x | 删除从光标所在的字符开始的n个字符(n必须用数字代替) |
2、普通模式(Normal Mode)------>插入模式(Insert Mode):
i | 进入插入模式,并在当前光标位置前插入文本内容。 |
大写字母“I” | 进入插入模式,并在当前行首插入文本内容。 |
a | 进入插入模式,并在当前光标位置后插入文本内容。 |
大写字母“A” | 进入插入模式,并在当前行尾插入文本内容。 |
o | 在当前行的下一行插入新行并进入插入模式。 |
大写字母“O” | 在当前行的上一行插入新行并进入插入模式。 |
r | 替换当前字符。但不进入插入模式 |
大写字母“R” | 进入替换模式,连续替换多个字符,可替换光标所在位置之后的多个字符,并进入插入模式。 |
3、命令行模式(Command Mode):
:w | 保存文件,但不退出Vi。 |
:w filename | 把Vi中的内容另存为指定的文件名。,不退出Vi。 |
:n1,n2w filename | 把第n1行到第n2行的内容另存到指定文件名的文件中。 |
:w! filename | 把Vi中的内容保存到已存在的另一个文件中,不退出Vi。 |
:n1,n2w! filename | 把第n1行到第n2行的内容保存到已存在的另一个文件中。 |
:q | 退出Vi,前提为使用:w保存后。 |
:q! | 强制退出Vi,丢弃未保存的更改。 |
:wq | 保存并退出Vi。 |
:x | 类似于:wq ,保存并退出。 |
:n(n为数字) | 定位到第n行的行首 |
:$ | 定位到最后一行的行首 |
:n1,n2 d | 删除n1行到n2行的内容 |
二、ubuntu软件下载安装
(一)apt-get 常用命令
sudo apt-get update | 该命令可以更新本地软件包列表,从所配置的虚拟机的存储库中获取最新的软件包信息。(在安装或升级软件包之前,通常需要先运行此命令) |
sudo apt-get upgrade | 此命令可以升级存储库中已安装的软件包到最新版本,但在升级此相应软件包时,apt-get 不会添加新的软件包也不会删除旧版本的软件包。 |
sudo apt-get dist-upgrade | 此命令可以升级系统中所有的软件包,包括依赖关系的变化,以此确保系统保持最新的状态。 |
sudo apt-get install package-name | 此命令可以用来安装指定的软件包。例如:如果要安装htop(Linux下的交互式的进程浏览器)可以运行 sudo apt-get install htop。 |
sudo apt-get remove package-name | 此命令可以删除指定名称的软件包,但会保留其配置文件。若想同时删除配置文件则可使用如下命令:sudo apt-get purge package -name。 |
sudo apt-get autoremove | 此命令会删除已安装但不被其他软件包所依赖的软件包,以达到释放磁盘空间的目的。(软件包依赖是指一个软件包在正常运行之前需要依赖于其他软件包或库文件) |
apt-cache search search-term | 此命令可以用来搜索与search-term匹配的软件包。例如:atp-cache search text editor 将显示与文本编辑器相关的软件包列表。 |
apt-cache show package-name | 此命令将显示已安装的软件包列表,包括软件包名称以及版本号。 |
(二)提高软件安装速度
1.Ubuntu下载软件速度慢的原因:
因为安装的Ubuntu默认官方的软件源仓库位于国外,所以下载软件的速度会很慢,我们将修改系统参数,选择国内的镜像源仓库(如阿里云和清华大学镜像等各大高校以及企业的镜像仓库),来提高软件安装速度。
2.解决办法
步骤1:打开终端,通过Ctrl+Alt+T的快捷键来打开终端。
步骤2:打开更新源的配置文件,在终端中输入以下命令来编辑更新源的配置文件:
sudo nano /etc/apt/sources.list
步骤3:寻找到合适的国内的镜像源(阿里云、清华大学等高校以及名企)
清华大学
ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
阿里云
华为
https://repo.huaweicloud.com/ubuntu-releases/
步骤4:将与国内镜像源相同的软件包内容进行替换,一直粘贴保存。
三、Ubuntu系统下c语言编写helloworld。
步骤1:打开Ubuntu系统下的终端在桌面上创建一个程序文件夹,并用cd+文件名打开此文件。
mkdir programwork
打开programwork
cd programwork
步骤2:以同样的方式创建程序项目1文件(pw1)。
mkdir pw1
cd pw1
结果如图所示
步骤3:用Vim新建并打开一个名为hello.c的c语言文件
vi hello.c
并按下键盘“a”键进入插入模式,在文本内输入以下代码:
#include <stdio.h>
int main()
{
printf("hello world!");
return 0;
}
步骤4:输入完成后按键盘“ESC”键回到普通模式,再按下键盘“:”进入命令行模式,使用“:x”保存并退出vi。
步骤5:用gcc命令编译hello.c文件。
gcc常见的命令:
命令 | 作用 |
gcc hello.c -o hello | 该命令可以编译名为:hello.c的文件并生成一个名为hello的可执行文件。 |
gcc hello.c | 该命令相较于上条命令少了“-o”的部分,但均可编译hello.c的文件,但未指定生成的可执行文件名,所以默认生成一个“a. out”的可执行文件。 |
gcc file1.c file2.c -o outputfile | 该命令将编译并链接file1.c到file2.c,同时生成可执行文件outputfile。 |
gcc --version | 该命令将显示gcc的版本信息。 |
gcc -c sourcefile.c | 该命令使用“-c”选项,可以仅编译文件而不链接,生成一个目标文件“sourcefile.o”。 |
./ executable name | ./+可执行文件名,则可运行之前编译的结果。 |
因此在终端输入以下代码进行编译hello.c文件并生成一个名为hello的可执行文件。
gcc hello.c -o hello
步骤6:运行hello可执行文件,即在终端下一行首输出“hello world!”的字样。
./hello
四、Devc++基于“辗转相除法”的10进制数转2进制的程序。
(一)基本思路
在学习中我们可以知道十进制数(Decimal Number)转换为二进制数(Binary Number)是将十进制数除以二取余,则我们可以使用一个数组(binaryNumber【32】)来储存二进制的每一位数数。我们从右边依次计算二进制数的每一位,并将其储存在数组中。最后将数组中的元素逆序输出就位最最终的二进制数结果。
(二)代码实现
#include <bits/stdc++.h>
using namespace std;
void Computational_function(int decimalNumber)//计算函数
{
if(decimalNumber == 0) //第一种情况若输入的十进制数为0,则输出二进制形式也为0。
{
cout<<"十进制转为二进制的结果为:"<<decimalNumber<<endl;
return;
}
else
{
int binaryNumber[32];//定义储存二进制数的数组。
int i=0;
while (decimalNumber > 0) {
binaryNumber[i] = decimalNumber % 2;//十进制数对于2取余为十进制转二进制的基本算法。
decimalNumber /= 2;
i++;
}
cout<<"十进制转为二进制的结果为:";
for(int j=i-1;j>=0;j--)//逆向输出数组中的元素为二进制数。
{
cout<<binaryNumber[j];
}
}
cout<<endl;
}
int main()
{
int decimalNumber;
cout<<"请输入需运算的十进制数:";
cin>>decimalNumber;
Computational_function(decimalNumber);
return 0;
}
Devc++内代码编写展示:
程序运行结果:以5为例
定义参考文献: 百度百科