介于有些同学想学习linux,但是又不知道如何着手,希望笔者能这篇博客给大家简单的参考,运行环境为centos+xshell。
一.快速入门
1.打开Linux命令行,输入以下命令,创建出名叫helloworld.c的文件
vim helloworld.c
2.在英文模式下,按i进入插入模式,然后开始正常编辑代码,如下
#include<stdio.h>
int main(){
printf("helloworld");
return 0;
}
3.代码编辑完毕后,按esc回到普通模式,底部命令行输入
:wq //保存文件并退出
4.接着命令行窗口输入
gcc helloworld -o helloworld.c -g
//前边是将要生成可执行文件名,可以随便起,后边是源文件名
5.然后命令行输入ls,你会发现多了一个可执行文件(helloworld),输入
./helloworld //执行文件
至此代码就算编译运行完成了。
接下来我会详解以上内容中的所有知识点,让大家可以系统的了解,举一反三。
二.进阶篇
以上内容主要涉及三个方面,Linux常见命令、vim下三种模式、编译运行具体操作。
1.Linux常见命令
(1)ls指令
语法:ls [参数] [文件名] //命令行输入时此处是不用输入“[]"的
功能:查看文件或者文件夹信息。一般Linux文件并不像windows一样都是显式的,所以我们想要查看文件信息就需要使用ls命令。
ls命令带不同参数可以查看文件不同的信息,当我们可以不加具体参数只输入ls时,查看到到是当前文件夹下的所有文件名称。以下为ls常用参数列表。
-l 列出文件的详细信息。
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-r 对目录反向排序。
-t 以时间排序。
-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-R 列出所有子目录下的文件。(递归)
-1 一行只输出一个文件。
eg:在上边快速入门例子中,可以使用ls查看文件的信息。
ls -l helloworld.c //查看文件详细信息
-rw-rw-r-- 1 long long 61 Mar 17 14:42 helloworld.c //输出长这样子
(2)pwd指令
语法:pwd
功能:显示当前路径。有时候我们打开文件夹层数过多,就会“迷路”,这个时候我们就可以通过这个指令查看路径,配合cd指令进行跳转目录。
eg:在上边快速入门例子中,可以使用cd查看路径信息。
pwd
/home/long/test/homework //我的文件夹路径是这样滴
(2)cd指令
语法:cd [目录名] 这个目录名可以给绝对路径和相对路径
功能:切换到指定目录
cd .. 返回上级目录
cd ~ 进入用户家目录
cd - 返回最近访问目录
eg:在上边快速入门例子中,我们并未创建文件夹,当我创建文件夹之后,可以使用cd切换目录,然后把源文件放到想要的文件夹中。
(3)mkdir指令
语法:mkdir [参数] testname
功能:在当前目录下创建一个名为 “testname”的目录
常用参数:
mkdir –p test/test1 //递归建立多个目录
eg:在上边快速入门例子中,我们可以使用mkdir指令来创建文件夹
mkdir test //创建一个普通文件夹时,可以省略参数,此处创建了一个test文件夹
(4)touch指令
语法:touch [参数] testname
功能:Linux中文件或者目录信息中都是存着修改时间的,touch命令参数可以修改这个时间,或者创建一个新文件。
常用参数:
-m 只更改变动时间。
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t 使用指定的日期时间,而非现在的时间。
(5)rm指令
语法:rm [参数] [文件名]
功能:删除文件或者文件夹
常用参数:
-f 即使文件属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件
eg:在上边快速入门例子中,我们可以使用rm指令来删除文件夹
rm -r test //我的test文件夹下嵌套了文件夹,所以使用递归删除
(6)mv指令
语法:rm [参数] [源文件或目录] [目标文件或目录]
功能:移动文件或者文件改名。看最后一个参数,若是文件名则此功能为重命名,若是目录,则移动文件。
常用参数:
-f force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i 若目标文件已经存在时,就会询问是否覆盖
(7)tar指令
语法:tar [参数] [目标文件名] [源文件]
功能:压缩/解压
常用参数:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令
-t :查看 tarfile 里面的文件
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩
-v :压缩的过程中显示文件
-C : 解压到指定目录
eg:在上边快速入门例子中,我们可以使用tar来压缩文件
tar -zcvf hm.tar.gz helloworld.c //这里我们将helloworld.c压缩为hm.tar.gz
Linux常见指令还有很多,笔者列出了几个就初学者来说必须掌握的命令,若还有需求,笔者会继续更新相关命令。
2.vim三种基础模式
Linux和windows的代码编辑器是不同的,windows是像word一样直接输入,而Linux是可以理解成将编辑模式,浏览模式分开,每种模式都有自己的功能。以下是三种基本的模式。
正常/普通/命令模式(Normal mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。
插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到正常模式。该模式是我们后面用的最频繁的编辑模式。
末行模式(last line mode)
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。
3.编译器的基本操作
此时我们代码已经写好了,接下来就需要开始编译运行程序了。这里我们需要知道Windows中的一键调试运行其实是将预处理、编译、汇编、链接整合到一块的。Linux中可以选择分步来做,也可选择一步生成,具体根据需求选择。此处以C程序举例,其他语言也是相似的。
预处理阶段
作用:宏替换,头文件展开,删除注释,条件编译
gcc -E [源文件名] -o [将要生成的文件名] //此处让编译器执行完预处理结束
编译阶段
作用:将文件生成汇编代码
gcc -S [源文件名称] -o [目标文件名称] //此处是从第一步开始执行,直到编译阶段结束
汇编阶段
作用:将汇编代码转换为二进制代码
gcc -c [源文件名称] -o [目标文件名称] //此处是从第一步开始执行,直到汇编结束
链接阶段
作用:将若干个二进制代码或者库文件链接起来生成可执行程序
gcc [源文件名称] -o [目标文件名称] //此处是从第一步开始执行,直到链接结束
没有特殊需求情况下,我们想运行代码可直接使用最后一步的命令,此时就生成了可执行程序。
./[可执行程序名] //此处为运行程序
以上就是Linux初入时的一些基本操作,为了让大家少踩坑,笔者就不再更深入的讲解了,如需了解更深的内容,可以根据笔者划分的模块去搜索学习,若对文章内容有疑问,可在评论区留言。
更多推荐
【快速入门】创建你的第一个linux程序(详细教程)
发布评论