Linux/AP_Autosar/C++系列之 基础命令

无聊逛51
发布于 2023-11-9 13:55
浏览
0收藏

 磨刀不误砍柴工,先说一下基础命令,后面慢慢善其事,本文可能也看不下去,就当为后面的文章做个可有可无的字典查询。知道就好。

Linux命令概况

Linux操作系统为用户提供了两种调用其服务和功能的接口:程序接口和操作接口。

操作控制命令是由一组命令及命令解释程序组成,也称为命令接口或联机用户接口,

命令的格式如下:

命令名 参数 1 参数 2 … 参数 n

操作命令执行过程如下:

(1)系统启动命令解释程序,输出命令提示符,等待用户输入命令,

(2)用户输入命令并按Enter键,

(3)命令解释程序读入命令、分析命令、执行命令,

(4)命令执行结束后,命令提示符再次输出,等待下一条命令。

Linux/AP_Autosar/C++系列之 基础命令-鸿蒙开发者社区

Linux常用命令分类

文件管理类:cd、 cp 、chmod、chown、chgrp、comm、diff、file、find、ln、ls、mkdir、mv、pwd、

rm、rmdir。

进程管理类:at、kill、mail、nice、nohup、ps、time、write、mesg。

文本加工类:cat、crypt、grep、norff、uniq、wc、sort、spell、tail、troff。

软件开发类:cc、f77、login、logout、size、yacc、vi、emacs、dbs、lex、make、lint、ld。

系统维护类:date、man、passwd、stty、tty、who。

Linux常用命令分类

文件管理类 文件属性

第一个字母表示文件类型,

“-” 普通文件;“d” 目录,字母”d”,是dirtectory(目录)的缩写;

“l” 符号链接;“b” 块设备文件;“c” 字符设备文件。

紧接着的3*3个字符分3组,各指示此文件的读、写、执行权限。

rwx(Owner)r-x(Group)r-x(Other)

1、使用者自己可读,可写,可执行;

2、同一组的用户可读,不可写,可执行;

3、其它 用户不可读,不可写,可执行

第二个栏位,表示文件个数,

第三个栏位,表示该文件或目录的拥有者,

第四个栏位,表示所属的组(group),

第五个栏位,表示文件大小,文件大小用byte来表示,空目录一般都是1024byte,

第六个栏位,表示最后一次修改时间,以”月,日,时间”的格式表示,

第七个栏位,表示文件名,我们可以用ls –a显示隐藏的文件名。

Linux/AP_Autosar/C++系列之 基础命令-鸿蒙开发者社区

root@iZ2vcb0v0htktk3gwslzh8Z:~# ls -l
total 626316
drwxr-xr-x 10 root  root       4096 Jun 27 17:42 diag-client-lib
drwxr-xr-x  4 root  root       4096 Jul 24 23:01 DoVehicle
drwxr-xr-x 37 16446 staff      4096 Jun  7 02:30 gcc-4.9.4
-rw-r--r--  1 root  root  115960349 Aug  3  2016 gcc-4.9.4.tar.gz
drwxr-xr-x  5 root  root       4096 Jun 14 00:21 git

chmod:用来修改某个目录或文件的访问权限。

语法:chmod [-cfvR] [--help] [--version] [who] [+ | - | =] [mode] 文件名。

权限范围:

u User,即文件或目录的拥有者;

g Group,即文件或目录的所属群组;

o Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围;

a All,即全部的用户,包含拥有者,所属群组以及其他用户;

r 读取权限,数字代号为“4”;

w 写入权限,数字代号为“2”;

x 执行或切换权限,数字代号为“1”;

- 不具任何权限,数字代号为“0”;

s 特殊功能说明:变更文件或目录的权限。

chown:用于设置文件或目录所有者和所属群组。

语法:chown [-cfhvR] [--help] [--version] user[:group] file...

user : 新的文件拥有者的使用者 ID;

group : 新的文件拥有者的使用者组(group);

-c : 显示更改的部分的信息;

-f : 忽略错误信息;

-h :修复符号链接;

-v : 显示详细的处理信息;

-R : 处理指定目录以及其子目录下的所有文件;

--help : 显示辅助说明;

--version : 显示版本。

Linux/AP_Autosar/C++系列之 基础命令-鸿蒙开发者社区

find:用于在目录层次结构中搜索文件。

语法:find [path] [expression] [file name or directory name]

-path:find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录;

-expression:expression可以分为——“-options [-print -exec -ok ...]”;

-print,find命令将匹配的文件输出到标准输出;

-exec,find命令对匹配的文件执行该参数所给出的shell命令;

相应命令的形式为‘command’ { } \;,注意{ }和\;之间的空格;

-ok,和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,

在执行每一个命令之前,都会给出提示,让用户来确定是否执行;

注意:对于路径名来说,若想从某一目录开始查找,则一定需要写成绝对路径的形式,但

若以当前目录开始查找,可以直接用“ . ”代替路径名

Linux/AP_Autosar/C++系列之 基础命令-鸿蒙开发者社区

rm:用于删除一个文件或者目录。

语法:rm [options] name. . .

-i:删除前逐一询问确认;

-f:即使原档案属性设为只读,亦直接删除,无需逐一确认;

-r:将目录及以下之档案亦逐一删除;

Linux/AP_Autosar/C++系列之 基础命令-鸿蒙开发者社区

ln:为某一个文件在另外一个位置建立一个同步的链接。

语法:ln [参数][源文件或目录][目标文件或目录]

硬链接:

1.以文件副本的形式存在,但不占用实际空间;

2.不允许给目录创建硬链接;

3.只有在同一个文件系统中才能创建。

软链接:

1.以路径的形式存在,类似于Windows操作系统中的快捷方式;

2.可以 跨文件系统;

3.可以对一个不存在的文件名进行链接;

4.可以对目录进行链接。

注意:ln命令会保持每一处链接文件的同步性,不论改动了哪处,其他链接的文件都会

发生相同的变化。

必要参数:

-b 删除,覆盖以前建立的链接

-d 允许超级用户制作目录的硬链接

-f 强制执行

-i 交互模式,文件存在则提示用户是否覆盖

-n 把符号链接视为一般目录

-s 软链接(符号链接)

-v 显示详细的处理过程

选择参数:

-S “-S<字尾备份字符串> ”或 “--suffix=<字尾备份字符串>”

-V “-V<备份方式>”或“--version-control=<备份方式>”

--help 显示帮助信息

--version 显示版本信息

Linux/AP_Autosar/C++系列之 基础命令-鸿蒙开发者社区

下面我们对源文件进行编辑。然后通过链接的文件cat.

Linux/AP_Autosar/C++系列之 基础命令-鸿蒙开发者社区

ps:用于显示当前进程的状态,类似于 windows 的任务管理器。

语法:ps [options] [--help]

ps:的参数非常多, 在此仅列出几个常用的参数并大略介绍含义

-A:列出所有的进程;

-w:显示加宽可以显示较多的资讯;

-au:显示较详细的资讯;

-aux:显示所有包含其他使用者的行程;

au(x) 输出格式 :USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND ;

USER:行程拥有者;

PID:pid;

%CPU:占用的 CPU 使用率;

%MEM:占用的记忆体使用率;

VSZ:占用的虚拟记忆体大小;

RSS:占用的记忆体大小;

TTY:终端的次要装置号码 (minor device number of tty);

STAT: 该行程的状态:

D:无法中断的休眠状态 (通常 IO 的进程);

R:正在执行中;

S:静止状态;

T:暂停执行;

Z:不存在但暂时无法消除;

W:没有足够的记忆体分页可分配;

<:高优先序的行程;

N:低优先序的行程;

L:有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O);

START: 行程开始时间;

TIME: 执行的时间;

COMMAND:所执行的指令。

Linux/AP_Autosar/C++系列之 基础命令-鸿蒙开发者社区

我这个是阿里云服务器,可能和一般虚拟机有点不同。

kill:用于删除执行中的程序或工作。

语法:kill [信息名称或编号][程序]

[程序]:程序的PID或是PGID,也可以是工作编号;

[信息名称或编号]:指定要送出的信息;

最常用的信号是:

1 (HUP):重新加载进程。

9 (KILL):杀死一个进程。

15 (TERM):正常停止一个进程。

cat:用于连接文件并打印到标准输出设备上。

语法:cat [-AbeEnstTuv] [--help] [--version] fileName

-n 或 --number:由 1 开始对所有输出的行数编号;

-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号;

-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;

-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外;

-E 或 --show-ends:在每行结束处显示 $;

-T 或 --show-tabs:将 TAB 字符显示为 ^I;

-A:--show-all:等价于 –vET;

-e:等价于"-vE"选项;

-t:等价于"-vT"选项;

root@iZ2vcb0v0htktk3gwslzh8Z:~/Linux_Se# cat test.txt niubiroot@iZ2vcb0v0htktk3gwslzh8Z:~/Linux_Se#

grep:用于查找文件里符合条件的字符串。

语法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行

动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

-a 或 –text:不要忽略二进制的数据;

-A<显示行数> 或 --after-context=<显示行数>:除了显示符合范本样式的那一列之外,并显

示该行之后的内容;

-b 或 --byte-offset:在显示符合样式的那一行之前,标示出该行第一个字符的编号;

-B<显示行数> 或 --before-context=<显示行数>:除了显示符合样式的那一行之外,并显示

该行之前的内容;

-c 或 –count:计算符合样式的列数;

-C<显示行数> 或 --context=<显示行数>或-<显示行数>:除了显示符合样式的那一行之外,

并显示该行之前后的内容;

-d <动作> 或 --directories=<动作>:当指定要查找的是目录而非文件时,必须使用这项参数,

否则grep指令将回报信息并停止动作;

-e<范本样式> 或 --regexp=<范本样式>:指定字符串做为查找文件内容的样式;

-E 或 --extended-regexp:将样式为延伸的正则表达式来使用;

-f<规则文件> 或 --file=<规则文件>:指定规则文件,其内容含有一个或多个规则样式,让

grep查找符合规则条件的文件内容,格式为每行一个规则样式;

-F 或 --fixed-regexp:将样式视为固定字符串的列表;

-G 或 --basic-regexp:将样式视为普通的表示法来使用;

-h 或 --no-filename:在显示符合样式的那一行之前,不标示该行所属的文件名称;

-H 或 --with-filename:在显示符合样式的那一行之前,表示该行所属的文件名称;

-i 或 --ignore-case:忽略字符大小写的差别;

-l 或 --file-with-matches:列出文件内容符合指定的样式的文件名称;

-L 或 --files-without-match:列出文件内容不符合指定的样式的文件名称;

-n 或 --line-number:在显示符合样式的那一行之前,标示出该行的列数编号;

-o 或 --only-matching:只显示匹配PATTERN 部分;

-q 或 --quiet或—silent:不显示任何信息;

-r 或 –recursive:此参数的效果和指定“-d recurse”参数相同;

-s 或 --no-messages:不显示错误信息;

-v 或 --invert-match:显示不包含匹配文本的所有行;

-V 或 –version:显示版本信息;

-w 或 --word-regexp:只显示全字符合的列;

-x --line-regexp:只显示全列符合的列;

-y:此参数的效果和指定“-i”参数相同。

注意:grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件

的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列

显示出来,若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令

会从标准输入设备读取数据。

1、以递归的方式查找“/etc/acpi” 下包含“update”的文件;

2、查找后缀有 file 字样的文件中包含 test 字符串的文件,并 打印出该字符串的行;

grep test *file

3、反向查找,查找文件名中包含 test 的文件中不包含test 的行;

grep -v test *file

VI/VIM

Linux/AP_Autosar/C++系列之 基础命令-鸿蒙开发者社区

使用:vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert

mode)和底线命令模式(Last line mode)。

命令模式:

用户刚刚启动 vi/vim,便进入了命令模式。

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会

输入一个字符,i被当作了一个命令。

以下是常用的几个命令:

i 切换到输入模式,以输入字符;

x 删除当前光标所在处的字符;

: 切换到底线命令模式,以在最底一行输入命令;

若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。

底线命令模式:

在命令模式下按下:(英文冒号)就进入了底线命令模式;

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多;

在底线命令模式中,基本的命令有(已经省略了冒号):

q 退出程序

w 保存文件

输入模式:

在命令模式下按下i就进入了输入模式。

在输入模式中,可以使用以下按键:

字符按键以及Shift组合,输入字符;

ENTER,回车键,换行;

BACK SPACE,退格键,删除光标前一个字符;

DEL,删除键,删除光标后一个字符;

方向键,在文本中移动光标;

HOME/END,移动光标到行首/行尾;

Page Up/Page Down,上/下翻页;

Insert,切换光标为输入/替换模式,光标将变成竖线/下划线;

ESC,退出输入模式,切换到命令模式。

vi几种模式间切换:

Linux/AP_Autosar/C++系列之 基础命令-鸿蒙开发者社区

date:用来显示或设定系统的日期与时间。

语法:date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr]

[--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]

-d datestr:显示 datestr 中所设定的时间 (非系统时间);

--help:显示辅助讯息;

-s datestr:将系统时间设为 datestr 中所设定的时间;

-u:显示目前的格林威治时间;

--version:显示版本编号。

root@iZ2vcb0v0htktk3gwslzh8Z:~/Linux_Se# date
Mon 24 Jul 2023 11:42:32 PM CST
root@iZ2vcb0v0htktk3gwslzh8Z:~/Linux_Se# date '+%c'
Mon 24 Jul 2023 11:42:37 PM CST
root@iZ2vcb0v0htktk3gwslzh8Z:~/Linux_Se# date '+%D'
07/24/23
root@iZ2vcb0v0htktk3gwslzh8Z:~/Linux_Se# date '+%x'
07/24/2023
root@iZ2vcb0v0htktk3gwslzh8Z:~/Linux_Se# date '+%T'
23:42:53
root@iZ2vcb0v0htktk3gwslzh8Z:~/Linux_Se# date '+%X'
11:42:55 PM
root@iZ2vcb0v0htktk3gwslzh8Z:~/Linux_Se#

全系更新中......

Linux/AP_Autosar/C++系列之 基础命令-鸿蒙开发者社区




文章转载自公众号:汽车与基础软件

分类
已于2023-11-9 13:55:34修改
收藏
回复
举报
回复
    相关推荐