当前位置:首页>Linux>OS4.【Linux】基本指令入门(3)

OS4.【Linux】基本指令入门(3)

  • 2026-09-08 11:08:21
OS4.【Linux】基本指令入门(3)

目录

1.rm指令改造为mv指令实现回收站

2.指令存储的位置

3.简易安装自制的指令(深刻理解指令的本质)

使用nano+gcc去编译C语言文件

移动到usr/bin路径下 

4.指令的别名

alias

单独一个alias

加选项的alias

设置别名的格式

取消别名的格式

5.程序角度理解Linux系统下一切皆文件的观点

单独一个cat

cat < 文件

cat 文件

echo

echo 字符串

echo 字符串 > 文件

由上可以得出清空文件的简化指令:>out.txt

echo 字符串 >> 文件

printf 字符串 >> 文件

新建文件的简单指令">文件名"


1.rm指令改造为mv指令实现回收站

之前在OS3.【Linux】基本指令入门(2)文章讲过,由于rm指令比较危险,且文件较难恢复,没有Windows系统下的回收站策略,因此在一个工程中一般是建立一个delete文件夹,然后使用 mv 指令移走文件,定时对delete进行删除

实际上可以对rm指令改造为mv指令来实现回收站,讲完vim后会写,现在暂时不讲

2.指令存储的位置

在使用Linux的命令行界面的时候,有时候会输错指令,例如:

注意到"not found",推测输入指令时,系统会先去找指令,如果没有则显示"Command '???' not found",如果找到了,那么会正常执行指令

指令存储在root用户下的usr目录的bin目录下

ls -l后会列出一大堆文件,例如可以看到之前讲过的cat指令

结论:1.指令在系统的特定路径下存储 2.指令和可执行程序都是可以被执行的,那么指令就是可执行程序

3.简易安装自制的指令(深刻理解指令的本质)

前面的结论提到了:指令在系统的特定路径下存储,那么是不是可以自己将编译后的可执行文件放到usr/bin的目录下然后手动执行呢? 答案是可以的

使用nano+gcc去编译C语言文件

首先要知道Linux环境下怎么编译C语言文件

新建C语言文件+使用nano文本编辑器编辑C语言文件

touch test.cnano test.c

目前先用nano文本编辑器,不用vim 

输入以下代码

#includeintmain(){        printf("Hello World!");        return 0;}

Ctrl+S保存,Ctrl+X退出nano

 编译指令(gcc是原来是C语言编译器,现已扩展到C++、Objective-C、Fortran、Ada等语言的编译)

gcc test.c

注:g++是gcc的一个分支,专门用于编译C++代码 

产生a.out(绿色字体),是可执行文件,相当于Windows平台下的*.exe文件 

移动到usr/bin路径下 

 将a.out改成自己想要的指令名称,然后用移动到usr/bin路径下

mv mycommand /usr/bin

之后可再次切换到/usr/bin路径下查看是否安装了mycommand指令

mycommand指令正常执行了 :

4.指令的别名

一些指令具有别名,例如ls -l的别名为ll,但去用which去查ll指令时却显示没有查询到

which用于查询指令的存储路径

alias

单独一个alias

在Ubuntu系统下,which后需要跟可执行文件,可以使用单独一个alias指令来查看所有的别名

(注: --color=auto是配色方案,不用管)

在Ubuntu系统下,ll是ls -alF的别名,而在CentOS系统下,ll是ls -l的别名,这个依系统而定 

加选项的alias

加选项的alias:可以对指令临时使用别名,与服务器断链后会失效(要永久有效需要更改配置文件)

设置别名的格式

alias 指令的别名='指令'

即指令和指令的别名的效果是等价的

例如alias wai='whomai',即设置whoami的别名为wai

取消别名的格式

例如alias wai='',取消设置wai别名

5.程序角度理解Linux系统下一切皆文件的观点

例如:显示器(为输出设备,则可以写入数据,即写入显存,但不能读数据),键盘(只能读数据),普通文件(可写可读)

单独一个cat

单独一个cat,则默认从键盘(一切皆文件)读取数据,之后显示到显示器上

(输入什么显示什么)

可以使用输入重定向符"<"来修改cat读取数据地方,如下

cat < 文件

cat 文件

作用:查看目标文件内容(全称concatenate)

指令"cat 文件"就是将文件的内容写入显示器中

其余有关cat的细节部分参见下一篇文章

echo

echo 字符串

作用:将字符串在显示器上打印(可以认为将字符串写入显示器中)

(无论字符串加不加引号,无论是单引号还是双引号,打印结果都是一样的)

echo 字符串 > 文件

观察以下图片,能否得出单个输出重定向符">"特点

(注:若echo写的文件不存在,则会自动创建) 

发现向test.txt写入456后会覆盖掉原来的文件内容 

结论: 单个输出重定向符的特点:覆盖写入,即先清空文件再写入数据

上方结论可以类比在C语言75.【C语言】文件操作(2)文章中讲过的fopen文件函数:如果打开的文件已经存在,fopen函数会自动将文件清空 

那如果想追加字符串可以使用两个重定向符号>>(中间不能有空格)

由上可以得出清空文件的简化指令:>out.txt

echo 字符串 >> 文件

作用:向文件中追加字符串,旧的内容不会被清空,但会在字符串的结尾多追加一个换行符号,这点可以类比75.【C语言】文件操作(2)文章的a选项

可以使用xxd指令来验证查看test.txt存储的换行符(0x0a)

安装xdd的指令:

sudo apt-get install xxd       # Debian/Ubuntu 系统sudo yum install xxd           # CentOS 系统sudo dnf install xxd           # Fedora 系统

printf 字符串 >> 文件

和指令"echo 字符串 >> 文件"不同的是:不会在字符串的结尾多追加一个换行符号

也可以使用echo -n 字符串 >> 文件,可以达到同样的效果

新建文件的简单指令">文件名"

>是一个输出重定向符,用于将命令的输出内容写入到指定的文件,如果文件不存在,则会自动创建

创建空白文件可以不用touch指令

原文首发于CSDN,点击阅读全文即可

最新文章

随机文章