学习Linux C命令行参数的基础知识 (linux c 命令行参数)

在Linux系统中,使用命令行参数是非常常见的操作。如果想要编写一个能够很好地与其他应用程序交互的程序,那么掌握Linux C命令行参数的基础知识是非常必要的。在本文中,我们将介绍Linux C命令行参数的基础知识,帮助读者初步掌握它们。

什么是Linux C命令行参数?

在Linux C编程中,命令行参数是指在程序运行时从命令行中接收的参数。这些参数通常是可选的,并且可以在程序运行时动态指定,而不需要重新编译代码。在Linux C中,命令行参数通常以字符串的形式传递给程序,并且可以使用命令行参数解析库来解析这些参数。

如何使用命令行参数?

在C语言中,要使用命令行参数我们需要引入头文件“stdlib.h”和“unistd.h”,并定义一个mn函数。在mn函数中,我们使用argc参数来获取命令行参数的数量,并使用argv参数来获取每个参数的值。

例如,下面的代码片段演示了如何在C语言中使用命令行参数:

“`c

#include

#include

int mn(int argc, char *argv[]) {

int i;

for (i = 0; i

printf(“Argument %d: %s\n”, i, argv[i]);

}

return 0;

}

“`

在上述代码中,我们定义了一个mn函数,并使用两个参数来接收命令行参数。在循环中,我们依次获取每个参数的值,并使用printf函数将其打印到控制台上。

如何解析命令行参数?

解析命令行参数是一个非常常见的任务,这通常需要使用命令行参数解析库。在Linux C中,有许多优秀的命令行参数解析库,例如getopt、getopt_long、argp、popt等。让我们一一介绍一下它们的用法。

getopt

getopt函数是POSIX标准中定义的函数,它可以轻松地解析命令行参数。它接收4个参数:argc、argv、选项字母和选项参数。getopt函数将扫描argv数组,并返回每个选项字母和选项参数。如果选项字母后面有一个冒号,则表示该选项需要一个参数。如果选项不需要参数,则getopt函数将返回选项字母。如果选项需要参数,则getopt函数将返回冒号前的选项字母,并将参数存储在optarg变量中。

例如,在下面的代码中,我们使用getopt函数解析命令行参数:

“`c

#include

#include

#include

int mn(int argc, char *argv[]) {

int opt;

while ((opt = getopt(argc, argv, “abc:”)) != -1) {

switch (opt) {

case ‘a’:

printf(“Option a detected\n”);

break;

case ‘b’:

printf(“Option b detected\n”);

break;

case ‘c’:

printf(“Option c with argument %s detected\n”, optarg);

break;

default:

printf(“Unknown option detected\n”);

exit(EXIT_FLURE);

}

}

return 0;

}

“`

在上述代码中,我们使用了选项字母”abc”来解析命令行参数。选项”abc”中,选项”a”和”b”不需要任何参数,而选项”c”需要一个参数。在循环中,我们使用switch语句来处理每个选项和选项参数。如果选项字母不是选项”abc”中的任何一个,则将会返回错误,程序会退出。

getopt_long

getopt_long函数是getopt函数的扩展版本,它提供了更强大的选项解析功能。getopt_long函数接收4个参数:argc、argv、长选项参数和短选项参数。它将扫描argv数组,并返回每个选项字母和选项参数。如果选项需要一个参数,则getopt_long函数将返回冒号前的选项字母,并将参数存储在optarg变量中。如果选项不需要参数,则getopt_long函数将返回选项字母。

例如,在下面的代码中,我们使用getopt_long函数解析命令行参数:

“`c

#include

#include

#include

#include

int mn(int argc, char *argv[]) {

int opt;

struct option long_options[] = {

{“optiona”, no_argument, NULL, ‘a’},

{“optionb”, no_argument, NULL, ‘b’},

{“optionc”, required_argument, NULL, ‘c’},

{NULL, 0, NULL, 0}

};

while ((opt = getopt_long(argc, argv, “abc:”, long_options, NULL)) != -1) {

switch (opt) {

case ‘a’:

printf(“Option a detected\n”);

break;

case ‘b’:

printf(“Option b detected\n”);

break;

case ‘c’:

printf(“Option c with argument %s detected\n”, optarg);

break;

default:

printf(“Unknown option detected\n”);

exit(EXIT_FLURE);

}

}

return 0;

}

“`

在上述代码中,我们使用了长选项参数”optiona”、”optionb”和”optionc”,并使用短选项参数”abc”来解析命令行参数。在循环中,我们使用switch语句来处理每个选项和选项参数。如果选项字母不是选项”abc”中的任何一个,或者长选项参数不是”optiona”、”optionb”或”optionc”中的任何一个,则将会返回错误,程序会退出。

argp

argp是一个比较高级的命令行参数解析库,它提供了更强大的选项解析功能。在使用argp之前,我们需要定义一个参数结构体,并将其传递给argp_parse函数来解析参数。argp参数结构体包含两个字段:options和parser。options是一个数组,用于指定命令行选项和它们的处理函数。parser是一个函数指针,用于处理额外的位置参数。

例如,在下面的代码中,我们使用argp库解析命令行参数:

“`c

#include

#include

#include

const char *argp_program_version = “1.0”;

static char doc[] = “A command line argument parser example”;

static char args_doc[] = “ARG1 ARG2”;

enum {OPT_ITERATIONS=1000, OPT_OUTPUTFILE};

static struct argp_option options[] = {

{“iterations”, ‘i’, “ITERATIONS”, 0, “Number of iterations (default 1000)”},

{“output”, ‘o’, “OUTPUTFILE”, 0, “Output file (default stdout)”},

{ 0 }

};

struct arguments {

int iterations;

char *output_file;

char *args[2];

};

static error_t parse_opt (int key, char *arg, struct argp_state *state) {

struct arguments *arguments = state->input;

switch (key) {

case ‘i’:

arguments->iterations = atoi(arg);

break;

case ‘o’:

arguments->output_file = arg;

break;

case ARGP_KEY_ARG:

if (state->arg_num >= 2) {

argp_usage (state);

}

arguments->args[state->arg_num] = arg;

break;

case ARGP_KEY_END:

if (state->arg_num

argp_usage (state);

}

break;

default:

return ARGP_ERR_UNKNOWN;

}

return 0;

}

static struct argp argp = {

.doc = doc,

.args_doc = args_doc,

.options = options,

.parser = parse_opt,

.flags = ARGP_NO_ERRS

};

int mn(int argc, char *argv[]) {

struct arguments arguments;

arguments.iterations = OPT_ITERATIONS;

arguments.output_file = NULL;

argp_parse(&argp, argc, argv, 0, 0, &arguments);

printf(“Number of iterations: %d\n”, arguments.iterations);

printf(“Output file: %s\n”, arguments.output_file ? arguments.output_file : “stdout”);

printf(“Argument 1: %s\n”, arguments.args[0]);

printf(“Argument 2: %s\n”, arguments.args[1]);

return 0;

}

“`

在上述代码中,我们使用了argp库来解析命令行参数。在参数结构体中,我们定义了iterations、output_file和args三个字段。在options数组中,我们定义了两个选项:”iterations”和”output”。在parse_opt函数中,我们使用switch语句来处理每个选项和选项参数。在mn函数中,我们使用argp_parse函数来解析命令行参数,并打印它们的值。

popt

popt是另一个非常好用的命令行参数解析库,它是基于getopt函数的扩展版本。popt库提供了许多高级选项,例如选项别名、可选参数、可变参数等等。popt库同样也要引入头文件”popt.h”。

例如,在下面的代码中,我们使用popt库解析命令行参数:

“`c

#include

#include

#include

int mn(int argc, char *argv[]) {

int opt;

poptContext opt_context;

const char *option_a;

const char *option_b;

opt_context = poptGetContext(NULL, argc, (const char **)argv, NULL, 0);

while ((opt = poptGetNextOpt(opt_context)) != -1) {

switch (opt) {

case ‘a’:

option_a = poptGetOptArg(opt_context);

printf(“Option a with argument %s detected\n”, option_a ? option_a : “none”);

break;

case ‘b’:

printf(“Option b detected\n”);

break;

default:

printf(“Unknown option detected\n”);

exit(EXIT_FLURE);

}

}

option_b = poptGetArg(opt_context);

printf(“Option b argument: %s\n”, option_b ? option_b : “none”);

poptFreeContext(opt_context);

return 0;

}

“`

在上述代码中,我们使用了选项”a”和”b”来解析命令行参数。在循环中,我们使用switch语句来处理每个选项和选项参数。在使用popt库时,我们需要定义一个poptContext对象,并使用poptGetNextOpt函数来获取每个选项。如果选项需要一个参数,则通过poptGetOptArg函数获取参数值。在循环退出后,我们使用poptGetArg函数来获取剩余的未知参数。

结论

相关问题拓展阅读:

Linux命令

命令

格式:

命令

如:ls -la /usr

**说明: **

大部分命令遵从该格式

多个选项时,可以一起写 eg:ls –l –a à ls –la

简化选项与完整选项(注:并非所有选项都可使用完整选项) eg:ls –all à ls –a

作用:切换用户身份

语法:su

用户名

-c 仅执行一次命令,而不切换用户身份

$ su – root

env

$ su – root –c “useradd longjing”

文件或目录的CRUD

英文:change directory 命令路径:内部命令 执行权限:所有用户

作用: 切换目录

语法:cd / 切换到

根目录

.. 回到上一级目录

. 当前目录

~ 当前用户的宿主目录(eg:# cd ~用户名 进入某个用户的家目录)

英文:list 命令路径:/bin/ls 执行权限:所有用户

作用:显示目录文件

语法:ls

-a all 显示所有文件,注意隐藏文件,特殊目录.和..

-l(long) 显示详细信息

-R(recursive) 递归显示当前目录下所有目录

-r (reverse) 逆序排序

-t(time) 按修改时间排序(降序)

英文:print working directory 命令路径:/bin/pwd 执行权限:所有用户

作用:显示当前工作目录

语法:pwd

-L 显示链接路径,当前路径,默认

-P 物理路径

eg:# cd /etc/init.d

英文:make directories 命令路径:/bin/mkdir 执行权限:所有用户

作用:创建新目录

语法:mkdir 目录名

-p 父目录不存在情况下先生成父目录 (parents)

eg: mkdir linux/test 如果目录linux不存在,则报错,使用参数-p即可自动创建父目录。

命令路径:/bin/touch 执行权限:所有用户

作用:创建空文件或更新已存在文件的时间

语法:touch 文件名

eg:touch a.txt b.txt touch {a.txt,b.txt} 同时创建多个文件

创建带空格的文件 eg:touch “program files” 在查询和删除时也必须带双引号

注意:生产环境中,文件名,一定不要加空格

英文:copy 命令路径:/bin/cp 执行权限:所有用户

作用:复制文件或目录

语法:cp

源文件

或目录 目的目录

-r -R recursive 递归处理,复制目录

-p 保留文件属性 (原文件的时间不变)

eg:

1,

相对路径

cp –R /etc/* . cp –R ../aaa ../../test/

2,,

绝对路径

cp –R

/

ect/service /root/test/aa/bb

英文:move 命令路径:/bin/mv 执行权限:所有用户

作用:移动文件或目录、文件或目录改名

语法:mv 源文件或目录 目的目录

英文:remove 命令路径:/bin/rm 执行权限:所有用户

作用:删除文件

语法: rm 文件或目录

-r (recursive)删除目录,同时删除该目录下的所有文件

-f(force) 强制删除文件或目录 即使原档案属性设为唯读,亦直接删除,无需逐一确认

注意:工作中,谨慎使用rm –rf 命令。

扩展点

:删除

乱码

文件

一些文件乱码后使用rm -rf 依然无法删除

此时,使用ll -i 查找到文件的inode节点

然后使用find . -inum 查找到的inode编号 -exec rm {} -rf ;

就能顺利删除了

英文:concatenate 命令路径:/bin/cat 执行权限:所有用户

作用:显示文件内容

语法:cat

-n 显示行号

eg:cat /etc/services

命令路径:/bin/more 执行权限:所有用户

作用:分页显示文件内容

语法:more

空格或f 显示下一页

Enter键

显示下一行

q或Q 退出

命令路径:/usr/bin/head 执行权限:所有用户

作用:查看文件前几行(默认10行)

语法:head

-n 指定行数

eg:head -20 /etc/services head –n 3 /etc/services

命令路径:/usr/bin/tail 执行权限:所有用户

作用:查看文件的后几行

语法:tail

-n 指定行数

-f (follow) 动态显示文件内容

获取一个大文件的部分文件,可使用head或tail命令

head -n 100 /etc/services >config.log

英文: link 命令路径:/bin/ln 执行权限:所有用户

作用:产生链接文件

语法:

ln -s 创建软链接 源文件 使用 绝对路径

ln 创建

硬链接

eg:ln -s /etc/service ./service.soft

创建文件/etc/service的软链接service.soft

eg:/etc/service /service.hard

创建文件/etc/service的硬链接/service.hard

软连接类似于windows下的

快捷方式

软连接文件格式:

lrwxrwxrwx. 1 root root 13 Jul 20 07:50 service -> /etc/services

1 硬链接数量,如果该文件没有硬链接,就只有本身一个硬链接。

13链接文件的长度

格式解析(特征):

1, 软连接的

文件类型

是 l(软连接),软连接文件的权限 都是 lrwxrwxrwx

2,-> 箭头指向到源文件

真正的权限取决于对源文件的权限

时间值为创建软连接的时间

软连接可以跨

文件系统

生成

硬链接特征

1,相当于 cp -p +同步更新

2,通过i节点识别,与源文件有相同的inode节点

3,硬链接不能跨分区,ln /home/test/issuels /boot/test (错误)

4,不能针对目录使用 ln /tmp/ aa.hard (无法将目录/tmp 生成硬链接)

删除软连接

rm -rf symbolic_name

英文:manual 命令路径:/usr/bin/man 执行权限:所有用户

作用:获取命令或

配置文件

的帮助信息

语法:man

eg:man ls man services

(查看配置文件时,不需要配置文件的绝对路径,只需要文件名即可)

调用的是more命令来浏览帮助文档,按空格翻下一页,按回车翻下一行,按q退出。

使用/加上关键的参数可直接定位搜索, n 查找下一个,shift+n 查找上一个

eg: /-l 直接查看-l的介绍

扩展:man的级别

(帮助文档的类型, 了解1 5即可)

man man-pages 查看每一种类型代表的含义 man文档的类型(1~9)

1是命令,5是配置文件 man优先显示命令,可指定帮助类型

eg:man 5 passwd (5代表配置文件级别)

help 查看shell内置命令的帮助信息

eg:help cd

内置命令,使用whereis,which,man都不能查看

type 命令 查看内部命令还是外部命令

命令名 –help 列举该命令的常用选项

eg: cp –help

命令路径:/bin/find 执行权限:所有用户

作用:查找文件或目录

语法:find

如果没有指定搜索路径,默认从当前目录查找

find命令选项

-name

按名称查找 精准查找

eg:find /etc -name “init” 在目录/etc中查找文件init

-iname

按名称查找

find查找中的字符匹配:

*:匹配所有

?:匹配单个字符

eg:find /etc -name “init???” 在目录/etc中查找以init开头的,且后面有三位的文件

模糊匹配的条件,建议使用

单引号

或双引号括起来。如果*被转义,可使用 单双引号括住查询条件,或者使用*。

eg: # find . –name *g

-size ****按文件大小查找

以block为单位,一个block是512B, 1K=2block +大于 -小于 不写是等于

eg:find /etc -size在etc目录下找出大于100MB的文件

100MB=102400KB=202300block

**-type **

按文件类型查找

f 二进制文件l 软连接文件 d 目录 c 字符文件

eg: find /dev -type c

find****查找的基本原则

占用最少的系统资源,即查询范围最小,查询条件最精准

eg:

如果明确知道查找的文件在哪一个目录,就直接对指定目录查找,不查找根目录/

命令路径:/bin/grep 执行权限:所有用户

作用:在文件中搜寻

字串

匹配的行并输出

语法:grep ‘搜寻

字符串

‘ filename

选项与参数:

-c :输出匹配行的次数(是以行为单位,不是以出现次数为单位)

-i :忽略大小写,所以大小写视为相同

-n :显示匹配行及行号

-v :反向选择,显示不包含匹配文本的所有行。

eg:grep ftp /etc/services

eg:#grep -v ^# /etc/inittab 去掉文件行首的#号

eg:# grep -n “init”/etc/inittab 显示在inittab文件中,init匹配行及行号

eg:# grep -c“init”/etc/inittab 显示在inittab文件中,init匹配了多少次

命令路径:/usr/bin/which 执行权限:所有用户

作用:

显示系统命令所在目录(绝对路径及别名)

which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回之一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令

alias ls=’ls –color=auto’

/bin/ls

/usr/bin/which: no zs in (/usr/local/bin:/usr/bin:/bin:/usr/local/in:/usr/in:/in:/home/ch/bin)

命令路径:/usr/bin/whereis 执行权限:所有用户

作用:**搜索命令所在目录 配置文件所在目录 及帮助文档路径 **

eg: which passwd 和 whereis passwd

eg:查看/etc/passwd配置文件的帮助,就用 man 5 passwd

英文:GNU zip 命令路径:/bin/gzip 执行权限:所有用户

作用:压缩(解压)文件,压缩文件后缀为.gz

gzip只能压缩文件,不能压缩目录;不保留原文件

语法:gzip 文件

-d将压缩文件解压(decompress)

解压使用gzip –d或者 gunzip

命令路径:/usr/bin/bzip2 执行权限:所有用户

作用:

压缩(解压)文件,压缩文件后缀为.bz2

语法:bzip2

-k:产生压缩文件后保留原文件(压缩比高)

-d 解压缩的参数(decompress)

解压使用bzip2 –d或者 bunzip2

命令路径:/usr/bin/zip 执行权限:所有用户

作用:

压缩(解压)文件,压缩文件后缀为.zip

语法:zip 选项

-r压缩目录

eg:zip services.zip /etc/services 压缩文件;

zip -r test.zip /test 压缩目录

如果不加-r选项,压缩后的文件没有数据。

解压使用unzip

命令路径:/bin/tar 执行权限:所有用户

作用:文件、目录打(解)包

语法:tar 压缩后文件名 文件或目录

-c 建立一个压缩文件的参数指令(create),后缀是.tar

-x 解开一个压缩文件的参数指令(extract)

-z 以gzip命令压缩/解压缩

-j 以bzip2命令压缩/解压缩

-v 压缩的过程中显示文件(verbose)

-f file 指定文件名,必选项

1, 单独的打包 ,解包 tar –cf tar –xf

2, 打包之后,进行压缩 gzip bzip2

3, 一步到位 tar –zcvf tar -zxvf

tar -cf -xf 单独 压缩 解压缩

tar -z 以gzip打包目录并压缩 文件格式.tar.gz(.tgz)

tar -j 以bzip2打包目录并压缩 文件格式.tar.bz2

eg:tar -zcvf dir1.tar.gzdir1 使用gzip将目录dir1压缩成一个打包并压缩文件dir1.tar.gz

eg: tar -cvf bak.tar . 将当前目录的文件打包为bak.tar

eg: tar -xvf bak.tar 解压

eg: tar -zcvf bak.tar.gz bak.tar 或 gzip bak.tar使用gzip将打包文件bak.tar压缩为bak.tar.gz

eg: tar -jcvf bak.tar.bz2 bak.tar 或 bzip2 bak.tar 使用bzip2将打包文件bak.tar压缩为bak.tar.bz2

eg: tar -rvf bak.tar /etc/password 将/etc/password追加文件到bak.tar中(r)

eg:tar -cjvf test.tar.bz2 test 生成test.tar.bz2的压缩文件

eg:tar -xjf test.tar.bz解压

最常用: tar + gzip

tar –zcvf 压缩

tar –zxvf 解压

补充:

1,文件路径, 压缩包带文件路径

2,源文件是保留的,不会被删除

**shutdown ** 时间

选项: -c: 取消前一个关机命令

-h:关机

-r:重启

eg:

shutdown -h now 立即关机 shutdown -h 20:30 定时关机

其他关机命令 halt poweroff init 0

其他重启命令

**reboot **重启系统 reboot -h now立即重启

init 6

注意:生产环境中,关机命令和重启命令谨慎执行。

善于查看man help等帮助文档

利用好Tab键 自动补全

掌握好一些快捷键

ctrl + c(停止当前进程)

ctrl + z 挂起当前进程,放后台

ctrl + r(查看命令历史) history

ctrl + l(清屏,与clear命令作用相同)

方向箭头 上 下 可以查看执行过的命令

ctrl + a 行首 ctrl + e 行尾

ctrl + k 清除 ctrl+ w 清除单词

vim/vi是Unix / Linux上最常用的文本编辑器而且功能非常强大。

只有命令,没有菜单。

《大碗》编辑器版

周围的同事不是用VI就是Emacs,你要是用UltraEdit都不好意思跟人家打招呼…什么插件呀、语法高亮呀、拼写检查呀,能给它开的都给它开着,就是一个字:酷!你说这么牛X的一东西,怎么着学会也得小半年吧。半年!?入门都远着呢!能学会移动光标就不错了,你还别说耗不起,就这还是左右移动!!!

:

命令模式:又称一般模式

编辑模式:又称底行模式,命令行模式

|

命令

|

作用

|

|

a

|

在光标后附加文本

|

|

A(shift + a)

|

在本行行末附加文本 行尾

|

|

i

|

在光标前插入文本

|

|

I(shift+i)

|

在本行开始插入文本 行首

|

|

o

|

在光标下插入新行

|

|

O(shift+o)

|

在光标上插入新行

|

|

命令

|

作用

|

|

:set nu

|

设置行号

|

|

:set nonu

|

取消行号

|

|

gg

G

|

到之一行

到最后一行

|

|

nG

|

到第n行

|

|

:n

|

到第n行

|

|

命令

|

作用

|

|

:w

|

保存修改

|

|

:w new_filename

|

另存为指定文件

|

|

:w >> a.txt

|

内容追加到a.txt文件中 文件需存在

|

|

:wq

|

保存修改并退出

|

|

shift+zz(ZZ)

|

快捷键,保存修改并退出

|

|

:q!

|

不保存修改退出

|

|

:wq!

|

保存修改并退出(文件所有者可忽略文件的只读属性)

|

不保存并退出:

1, 有修改,但是修改后的内容是不保存的

2, 有突况,导致窗口退出。修改文件之后,直接删除同名的.swp文件

|

命令

|

作用

|

|

x

|

删除光标所在处字符 nx 删除光标所在处后n个字符

|

|

dd

|

删除光标所在行,ndd删除n行

|

|

:n1,n2d

|

删除指定范围的行(eg :1,3d 删除了123这三行)

|

|

dG

|

删除光标所在行到末尾的内容

|

|

D

|

删除从光标所在处到行尾

|

|

命令

|

作用

|

|

yy、Y

|

复制当前行

|

|

nyy、nY

|

复制当前行以下n行

|

|

dd

|

剪切当前行

|

|

ndd

|

剪切当前行以下n行

|

|

p、P

|

粘贴在当前光标所在行下 或行上

|

|

命令

|

作用

|

|

r

|

取代光标所在处字符

|

|

R(shift + r)

|

从光标所在处开始替换字符,按Esc结束

|

|

u

|

undo,取消上一步操作

|

|

ctrl+r

|

redo,返回到undo之前

|

|

命令

|

作用

|

|

/string

|

向后搜索指定字符串 搜索时忽略大小写 :set ic

|

|

?string

|

向前搜索指定字符串

|

|

n

|

搜索字符串的下一个出现位置,与搜索顺序相同

|

|

N(Shift + n)

|

搜索字符串的上一个出现位置,与搜索顺序相反

|

|

:%s/old/new/g

|

全文替换指定字符串

|

|

:n1,n2s/old/new/g

|

在一定范围内替换指定字符串

|

% 指全文,s 指开始,g 指全局替换

eg: :41,44/yang/lee/c 从41行到44行,把yang替换为lee,询问是否替换

eg: :41,44/yang/lee/g 同上,不询问,直接替换

使用替换命令来添加删除注释

:% s/^/#/g 来在全部内容的行首添加 # 号注释

:1,10 s/^/#/g 在1~10 行首添加 # 号注释

vi里面怎么查命令??

:!which cp

vi里面怎么导入命令的结果?

:r !which cp

v

可视字符模式

V****(shift+v)

可视行模式,选择多行操作

**ctrl+v **可视块模式(列模式),操作列

I或者O进入插入模式。

1,图形化界面

2,setup 命令虚拟界面

3,修改配置文件(以网络方式为NAT示例)

vi /etc/sysconfig/network-scripts/ifcfg-eth0

BOOTPROTO=static

ONBOOT=yes

IPADDR=192.168.2.129

NETMASK=255.255.255.0

GATEWAY=192.168.2.

2

#网段2任意,IP地址2固定,网段为vmnet8的设置的IP网段

DNS1=114.114.114.114

DNS2=8.8.8.8

重启网络生效:

service network restart

命令路径:/bin/ping 执行权限:所有用户

作用:测试网络的连通性

语法:ping 选项 IP地址

-c 指定发送次数

ping 命令使用的是icmp协议,不占用端口

eg: # ping -c 3 127.0.0.1

英文:interface configure 命令路径:/in/ifconfig 执行权限:root

作用:查看和设置网卡网络配置

语法:ifconfig

-a:显示所有网卡信息

ifconfig IP地址 修改ip地址

英文:network statistics 命令路径:/bin/netstat 执行权限:所有用户

作用:主要用于检测主机的网络配置和状况

-a all显示所有连接和监听端口

-t (tcp)仅显示tcp相关选项

-u (udp)仅显示udp相关选项

-n 使用数字方式显示地址和端口号

-l (listening) 显示监控中的服务器的socket

eg:# netstat -tlnu 查看本机监听的端口

tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN

协议 待收数据包 待发送数据包 本地ip地址:端口 远程IP地址:端口

netstat –antpl

临时生效:

hostname 主机名

永久生效:修改配置文件

vi /etc/sysconfig/network

修改主机名和ip地址之间的映射关系

vi /etc/hosts

192.168.2.120 node-1.edu.cn node-1

可配置别名

进程和程序的区别:

1、程序是静态概念,本身作为一种软件资源长期保存;而进程是程序的执行过程,它是动态概念,有一定的生命期,是动态产生和消亡的。

2、程序和进程无一一对应关系。一个程序可以由多个进程共用;另一方面,一个进程在活动中有可顺序地执行若干个程序。

进程和线程的区别:

进程: 就是正在执行的程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

线程: 轻量级的进程;进程有独立的地址空间,线程没有;线程不能独立存在,它由进程创建;相对讲,线程耗费的cpu和内存要小于进程。

进程管理的作用?

判断服务器的健康状态

查看系统所有的进程

杀死进程

作用:查看系统中的进程信息

语法:ps

常用选项

查看系统中所有进程

ps应用实例 # ps -u or ps -l 查看隶属于自己进程详细信息

作用:

查看当前进程树

语法:pstree

-p 显示进程PID

-u 显示进程的所属用户

作用:查看系统健康状态

显示当前系统中耗费资源最多的进程,以及系统的一些负载情况。

语法:top

-d 秒数,指定几秒刷新一次,默认3秒(动态显示)

作用:关闭进程

语法:kill pId

kill -9 进程号(强行关闭) 常用

kill -1 进程号(重启进程)

添加用户

语法:useradd 用户名

修改密码命令

语法:passwd

用户密码:生产环境中,用户密码长度8位以上,设置大小写加数字加特殊字符,要定期更换密码。

ys^h_L9t

删除用户

-r 删除账号时同时删除宿主目录(remove)

作用:用于查看Linux文件系统的状态信息,显示各个分区的容量、已使用量、未使用量及挂载点等信息。看剩余空间

语法:df

-h(human-readable)根据磁盘空间和使用情况 以易读的方式显示 KB,MB,GB等 -k  以KB 为单位显示各分区的信息,默认

-M 以MB为单位显示信息 -a  显示所有分区包括大小为0 的分区

作用:用于查看文件或目录的大小(磁盘使用空间)

语法:du

-a 显示子文件的大小

-h以易读的方式显示 KB,MB,GB等

-s summarize 统计总占有量

eg:

du -a(all) /home  显示/home 目录下每个子文件的大小,默认单位为kb

du -b /home  以bytes为单位显示/home 目录下各个子目录的大小

du -h /home 以K,M,G为单位显示/home 文件夹下各个子目录的大小

du -sh /home  以常用单位(K,M,G)为单位显示/home 目录的总大小 -s summarize

df命令和du命令的区别:

df命令是从文件系统考虑的,不仅考虑文件占用的空间,还要统计被命令或者程序占用的空间。

du命令面向文件,只计算文件或目录占用的空间。

作用:查看内存及交换空间使用状态

语法: free

选项:

-k: 以KB为单位显示,默认就是以KB为单位显示

-m: 以MB为单位显示

-g: 以GB为单位显示

清理缓存命令:

echo 1 > /proc/sys/vm/drop_caches

Linux命令行是一种在Linux操作系统中通过文本界面进行交互的方式。它是一种强大的工具,用于执行各种系统管理和配置任务,以及执行命令行工具和应用程序。

以下是一些常用的Linux命令行操作:

文件和目录操作:

ls:列出当前目录下的文件和目录。

cd:切换目录。

mkdir:创建新目录。

rm:删除文件或目录。

cp:复制文件或目录。

mv:移动文件或目录。

文件查看和编辑:

cat:查看文件内容。

grep:在文件中搜索指定的字符串。

less:按页查看文件内容。

vi或nano:文本编辑器,用于编辑文件内容。

系统管理:

sudo:以超级用户身份执行命令。

apt或yum:包管理器,用于安装、更新和删除软件包。

systemctl:用于管理系统服务。

top:显示系统进程和资源使用情况。

网络管理:

ifconfig:显示网络接口的配置信息。

ping:测试与目标主机之间的网络连接。

ssh:通过安全的方式远程登录到其他主机。

基本linux命令

Linux 对我们的生活产生了巨大的冲击。至少你的安卓手机使用的就是 Linux 核心。尽管如此,在之一次开始使用 Linux 时你还是会感到难以下手。因为在 Linux 中,通常需要使用终端命令来取代 Windows 系统中的点击启动图标操作。但是不必担心,这里我们会介绍 10 个 Linux 基本命令来帮助你开启 Linux 神秘之旅。

帮助新手走出之一步的 10 个 Linux 基本命令

当我们谈论 Linux 命令时,实质上是茄早手在谈论 Linux 系统本身。这短短的 10 个 Linux 基本命令不会让你变成天才或者 Linux 专家,但是能帮助你轻松开始 Linux 之旅。使用这些基本命令会帮助新手们完成 Linux 的日常任务,由于它们的使用频率如此至高,所以我更乐意称他们为 Linux 命令之王!

让我们开始学习这 10 条 Linux 基本命令吧。

1. sudo

这条命令的意思是“以超级用户的身份执行”,是 SuperUserDo 的简写,它是新手将要用到的最重要的一条 Linux 命令。当一条单行命令需要 root 权限的时候,sudo命令就派上用场了。你可以在每一条需要 root 权限的命令前都加上sudo。

$ sudo su

2. ls

跟其他人一样,你肯定也经常想看看目录下都有些什么东西。使用列表命令,终端会把当前工作目录下所有的文件以及文件夹展示给你。比如说,我当前处在 /home 文件夹中,我想看看 /home 文件夹中都有哪些文件和目录。

/home$ ls

在 /home 中执行ls命令将会返回类似下面的内容:

imad lost+found

3. cd

变更目录命令(cd)是终端中总会被用到的主要命令。它是最常用到的 Linux 基本命令之一。此命令使用非常简单,当你打算从当前目录跳转至某个文件夹时,只需要将文件夹键入此命令之后即可。如果你想跳转至上层目录,只需要在此命令之后键入两个点 (..) 就可以了。 举个例子,我现在处在 /home 目录中,我想移动到 /home 目录中的 usr 文件夹下,可以通过以下命令来完成操作。

/home $ cd usr

/home/usr $

4. mkdir

只是可以切换目录还是不够完美。有时候你会想要新建一个文件夹或子文件夹。此时可以使用 mkdir 命令来完成操作。使用方法很简单,只需要把新的文件夹名跟在 mkdir 命令之后就好了。

~$ mkdir folderName

5. cp

拷贝-粘贴copy-and-paste是我们组织文件需要用到的重要命令。使用 cp命令可以帮助你在终端当中完成拷贝-粘贴操作。首先确定你想要拷贝的文件,然后键入打算粘贴此文件的目标位置。

$ cp src des

注意:如果目标目录对新建文件需要 root 权限时,你可以使用 sudo命令来完成文件拷贝操作。

6. rm

rm 命令可以帮助你移除文件甚至目录。如果不希望每删除一个文件都提示确认一次,可以用-f参数来强制执行。也可以使用-r参数来递归的移除睁滑文件夹。

$ rm myfile.txt

7. apt-get

这个命令会依据发行版的不同而有所区别。在基于 Debian 的发行版中,我们拥有 Advanced Packaging Tool(APT)包管理工具来安装、移除和升级包。apt-get 命令会帮助你安装需要在 Linux 系统中运行的软件。它是一个功能强大的命令行,可以用来帮助你对软件执行安装、升级和移除操作。

在其颤嫌他发行版中,例如 Fedora、Centos,都各自不同的包管理工具。Fedora 之前使用的是 yum,不过现在 dnf 成了它默认的包管理工具。

$ sudo apt-get update

$ sudo dnf update

8. grep

当你需要查找一个文件,但是又忘记了它具体的位置和路径时,grep命令会帮助你解决这个难题。你可以提供文件的关键字,使用grep命令来查找到它。

$ grep user /etc/passwd

9. cat

作为一个用户,你应该会经常需要浏览脚本内的文本或者代码。cat命令是 Linux 系统的基本命令之一,它的用途就是将文件的内容展示给你。

$ cat CMakeLists.txt

10. poweroff

最后一个命令是 poweroff。有时你需要直接在终端中执行关机操作。此命令可以完成这个任务。由于关机操作需要 root 权限,所以别忘了在此命令之前添加sudo。

$ sudo poweroff

总结

如我在文章开始所言,这 10 条命令并不会让你立即成为一个 Linux 大拿,但它们会让你在初期快速上手 Linux。以这些命令为基础,给自己设置一个目标,每天学习一到三条命令,这就是此文的目的所在。

基本

linux命令

有哪些呢?

1、ls命令

就是 list 的缩写,通过 ls 命令不仅可以查看 linux

文件夹

包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。

常用参数搭配:

ls -a 列出目录所有文件,包含以.开始的隐藏文件

ls -A 列出除.及..的其它文件

ls -r 反序排列

ls -t 以文件修改时间排序

ls -S 以文件大小排序

ls -h 以易读大小显示

ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来

实例:

(1) 按易读方式按时间反序排序,并显示文件详细信息

ls -lhrt

(2) 按大小反序显示文件详细信息

ls -lrS

(3)列出当前目录中所有以”t”开头的目录的详细内容

ls -l t*

(4) 列出文件

绝对路径

(不包含隐藏文件)

ls | sed “s:^:`pwd`/:”

(5) 列出文件绝对路径(包含隐藏文件)

find $pwd -maxdepth 1 | xargs ls -ld

2、cd 命令

cd(changeDirectory) 命令语法:

cd

说明:切换当前目录至 dirName。

实例:

(1)进入要目录

cd /

(2)进入 “home” 目录

cd ~

(3)进入上一次工作路径

cd –

(4)把上个命令的参数作为cd参数使用。

cd !$

3、pwd 命令

pwd 命令用于查看当前工作目录路径。

实例:

(1)查看当前路径

pwd

(2)查看软链接的实际路径

pwd -P

4、mkdir 命令

mkdir 命令用于创建文件夹。

可用选项:

-m: 对新建目录设置存取权限,也可以用 chmod 命令设置;

-p: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录。

实例:

(1)当前工作目录下创建名为 t的文件夹

mkdir t

(2)在 tmp 目录下创建路径为 test/t1/t 的目录,若不存在,则创建:

mkdir -p /tmp/test/t1/t

5、rm 命令

删除一个目录中的一个或多个文件或目录,如果没有使用 -r 选项,则 rm 不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。

rm 文件…

实例:

(1)删除任何 .log 文件,删除前逐一询问确认:

rm -i *.log

(2)删除 test 子目录及子目录中所有档案删除,并且不用锋丛一一确认:

rm -rf test

(3)删除以 -f 开头的文件

rm — -f*

6、rmdir 命令

从一个目录中删除一银消樱个或多个子目录项,删除某目录时也必须具有对其父目录的写权限。

注意:不能删除非空目录

实例:

(1)当 parent 子目录被删除后使它也成为空目录的话,则顺便一并删除:

rmdir -p parent/child/child11

7、mv 命令

移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命令该文件)。

当第二个参数为目录时,之一个参数可以是多个以空格分隔的文件或目录,然后移动之一个参数指定的多个文件到第二个参数指定的目录中。

实例:

(1)将文件 test.log 重命名为 test1.txt

mv test.log test1.txt

(2)将文件 log1.txt,log2.txt,log3.txt 移动到根的 test3 目录中

mv llog1.txt log2.txt log3.txt /test3

(3)将文件 file1 改名为 file2,如果 file2 已经存在,则询问是否覆盖

mv -i log1.txt log2.txt

(4)移动当前文件夹下的所有文件到上一级目录

mv * ../

8、cp 命令

源文件

复制至目标文件,或将多个源文件复制至目标目录。

注意:

命令行

复制,如果目标文件已经存在会提示是否覆桥脊盖,而在 shell 脚本中,如果不加 -i 参数,则不会提示,而是直接覆盖!

-i 提示

-r 复制目录及目录内所有项目

-a 复制的文件与原文件时间一样

实例:

(1)复制 a.txt 到 test 目录下,保持原文件时间,如果原文件存在提示是否覆盖。

cp -ai a.txt test

(2)为 a.txt 建议一个链接(

快捷方式

cp -s a.txt link_a.txt

9、cat 命令

cat 主要有三大功能:

1.一次显示整个文件:

cat filename

2.从键盘创建一个文件:

cat > filename

只能创建新文件,不能编辑已有文件。

3.将几个文件合并为一个文件:

cat file1 file2 > file

-b 对非空输出行号

-n 输出所有行号

实例:

(1)把 log2023.log 的文件内容加上行号后输入 log2023.log 这个文件里

cat -n log2023.log log2023.log

(2)把 log2023.log 和 log2023.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里

cat -b log2023.log log2023.log log.log

(3)使用 here doc 生成新文件

cat >log.txt Hello

>World

>PWD=$(pwd)

>EOF

ls -l log.txt

cat log.txt

Hello

World

PWD=/opt/soft/test

(4)反向列示

tac log.txt

PWD=/opt/soft/test

World

Hello

10、more 命令

功能类似于 cat, more 会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示。

命令参数:

+n 从笫 n 行开始显示

-n定义屏幕大小为n行

+/pattern 在每个档案显示前搜寻该

字串

(pattern),然后从该字串前两行之后开始显示

-c从顶部清屏,然后显示

-d提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能

-l忽略Ctrl+l(换页)字符

-p通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似

-s把连续的多个空行显示为一行

-u把文件内容中的下画线去掉

常用操作命令:

Enter 向下 n 行,需要定义。默认为 1 行

Ctrl+F 向下滚动一屏

空格键 向下滚动一屏

Ctrl+B 返回上一屏

=输出当前行的行号

:f 输出文件名和当前行的行号

V 调用vi编辑器

!命令 调用Shell,并执行命令

q退出more

实例:

(1)显示文件中从第3行起的内容

more +3 text.txt

(2)在所列出文件目录详细信息,借助管道使每次显示 5 行

ls -l | more -5

按空格显示下 5 行。

11、less 命令

less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

常用命令参数:

-i 忽略搜索时的大小写

-N 显示每行的行号

-o 将less 输出的内容在指定文件中保存起来

-s 显示连续空行为一行

/

字符串

:向下搜索“字符串”的功能

?字符串:向上搜索“字符串”的功能

n:重复前一个搜索(与 / 或 ? 有关)

N:反向重复前一个搜索(与 / 或 ? 有关)

-x 将“tab”键显示为规定的数字空格

b 向后翻一页

d 向后翻半页

h 显示帮助界面

Q 退出less 命令

u 向前滚动半页

y 向前滚动一行

空格键 滚动一行

回车键 滚动一页

: 向下翻动一页

: 向上翻动一页

实例:

(1)ps 查看进程信息并通过 less 分页显示

ps -aux | less -N

(2)查看多个文件

less 1.log 2.log

可以使用 n 查看下一个,使用 p 查看前一个。

12、head 命令

head 用来显示档案的开头至标准输出中,默认 head 命令打印其相应文件的开头 10 行。

常用参数:

-n 显示的行数(行数为复数表示从最后向前数)

实例:

(1)显示 1.log 文件中前 20 行

head 1.log -n 20

(2)显示 1.log 文件前 20 字节

head -c 20 log2023.log

(3)显示 t.log最后 10 行

head -n -10 t.log

13、tail 命令

用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

常用参数:

-f 循环读取(常用于查看递增的日志文件)

-n 显示行数(从后向前)

(1)循环读取逐渐增加的文件内容

ping 127.0.0.1 > ping.log &

后台运行:可使用 jobs -l 查看,也可使用 fg 将其移到前台运行。

tail -f ping.log

(查看日志)

14、which 命令

在 linux 要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:

which 查看

可执行文件

的位置。

whereis 查看文件的位置。

locate 配合数据库查看文件位置。

find实际搜寻硬盘查询文件名称。

which 是在 PATH 就是指定的路径中,搜索某个系统命令的位置,并返回之一个搜索结果。使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

常用参数:

-n  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

实例:

(1)查看 ls 命令是否存在,执行哪个

which ls

(2)查看 which

which which

(3)查看 cd

which cd(显示不存在,因为 cd 是内建命令,而 which 查找显示是 PATH 中的命令)

查看当前 PATH 配置:

echo $PATH

或使用 env 查看所有

环境变量

及对应值

15、whereis 命令

whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。whereis 及 locate 都是基于系统内建的数据库进行搜索,因此效率很高,而find则是遍历硬盘查找文件。

常用参数:

-b 定位可执行文件。

-m 定位帮助文件。

-s 定位源代码文件。

-u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。

实例:

(1)查找 locate 程序相关文件

whereis locate

(2)查找 locate 的源码文件

whereis -s locate

(3)查找 lcoate 的帮助文件

whereis -m locate

Linux是一套免费使用和自由传播的类Unix操作系芦早陆统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。

命令

功能说明

线上查询及帮助命令 (2 个)

man

查看命令帮助,命令的词典,更复杂的还有 info,但不常用。

help

查看 Linux 内置命令的帮助,比如 cd 命令。

文件和目录操作命令 (18 个)

ls

全拼 list,功能是列出目录的内容及其内容属性信息。

cd

全拼 change directory,功能是从当前工作目录切换到指定的工作目录。

cp

全拼 copy,其功能为复制文件或目录。

find

查找的意思,用于查找目录及目录下的文件。

mkdir

全拼 make directories,其功能是创建目录。

mv

全拼 move,其功能是移动或重命名文件。

pwd

全拼 print working directory,其功能是显示当前工作目录的绝对路径。

rename

用于重命名文件。

rm

全拼 remove,其功能是删除一个或多个文件或目录。

rmdir

全拼 remove empty directories,功能是删除空目录。

touch

创建新的空文件,改变已有文件的时间戳属性。

tree

功能是以树形结构显示目陪顷录下的内容。

basename

显示文件名或目录名。

dirname

显示文件或目录路径。

chattr

改变文件的扩展属性。

lsattr

查看文件扩展属性。

file

显示文件的类型。

md5sum

计算和校验文件的 MD5 值。

查看文件及内容处理命令(21 个)

cat

全拼 concatenate,功能是用于连接多个文件并且打印到屏幕输

出或重定向到指定文件中。

tac

tac 是 cat 的反向拼写,因此命令的功能为反向显示文件内容。

more

分页显示文件内容。

less

分页显示睁行文件内容,more 命令的相反用法。

head

显示文件内容的头部。

tail

显示文件内容的尾部。

cut

将文件的每一行按指定分隔符分割并输出。

split

分割文件为不同的小片段。

paste

按行合并文件内容。

sort

对文件的文本内容排序。

uniq

去除重复行。oldboy

wc

统计文件的行数、单词数或字节数。

iconv

转换文件的编码格式。

dos2unix

将 DOS 格式文件转换成 UNIX 格式。

diff

全拼 difference,比较文件的差异,常用于文本文件。

vimdiff

命令行可视化文件比较工具,常用于文本文件。

rev

反向输出文件内容。

grep/egrep

过滤字符串,三剑客老三。

join

按两个文件的相同字段合并。

tr

替换或删除字符。

vi/vim

命令行文本编辑器。

文件压缩及解压缩命令(4 个)

tar

打包压缩。oldboy

unzip

解压文件。

gzip

gzip 压缩工具。

zip

压缩工具。

信息显示命令(11 个)

uname

显示操作系统相关信息的命令。

hostname

显示或者设置当前系统的主机名。

dmesg

显示开机信息,用于诊断系统故障。

uptime

显示系统运行时间及负载。

stat

显示文件或文件系统的状态。

du

计算磁盘空间使用情况。

df

报告文件系统磁盘空间的使用情况。

top

实时显示系统资源使用情况。

free

查看系统内存。

date

显示与设置系统时间。

cal

查看日历等时间信息。

搜索文件命令(4 个)

which

查找二进制命令,按环境变量 PATH 路径查找。

find

从磁盘遍历查找文件或目录。

whereis

查找二进制命令,按环境变量 PATH 路径查找。

locate

从数据库 (/var/lib/mlocate/mlocate.db) 查找命令,使用 updatedb 更新库。

用户管理命令(10 个)

useradd

添加用户。

usermod

修改系统已经存在的用户属性。

userdel

删除用户。

groupadd

添加用户组。

passwd

修改用户密码。

chage

修改用户密码有效期限。

id

查看用户的 uid,gid 及归属的用户组。

su

切换用户身份。

visudo

编辑 / etc/sudoers 文件的专属命令。

sudo

以另外一个用户身份(默认 root 用户)执行事先在 sudoers 文件允许的命令。

基础网络操作命令(11 个)

telnet

使用 TELNET 协议远程登录。

ssh

使用 SSH 加密协议远程登录。

scp

全拼 secure copy,用于不同主机之间复制文件。

wget

命令行下载文件。

ping

测试主机之间网络的连通性。

route

显示和设置 linux 系统的路由表。

ifconfig

查看、配置、启用或禁用网络接口的命令。

ifup

启动网卡。

ifdown

关闭网卡。

netstat

查看网络状态。

ss

查看网络状态。

深入网络操作命令(9 个)

nmap

网络扫描命令。

lsof

全名 list open files,也就是列举系统中已经被打开的文件。

mail

发送和接收邮件。

mutt

邮件管理命令。

nslookup

交互式查询互联网 DNS 服务器的命令。

dig

查找 DNS 解析过程。

host

查询 DNS 的命令。

traceroute

追踪数据传输路由状况。

tcpdump

命令行的抓包工具。

有关磁盘与文件系统的命令(16 个)

mount

挂载文件系统。

umount

卸载文件系统。

fsck

检查并修复 Linux 文件系统。

dd

转换或复制文件。

dumpe2fs

导出 ext2/ext3/ext4 文件系统信息。

dump

ext2/3/4 文件系统备份工具。

fdisk

磁盘分区命令,适用于 2TB 以下磁盘分区。

parted

磁盘分区命令,没有磁盘大小限制,常用于 2TB 以下磁盘分区。

mkfs

格式化创建 Linux 文件系统。

partprobe

更新内核的硬盘分区表信息。

e2fsck

检查 ext2/ext3/ext4 类型文件系统。

mkswap

创建 Linux 交换分区。

swapon

启用交换分区。

swapoff

关闭交换分区。

sync

将内存缓冲区内的数据写入磁盘。

resize2fs

调整 ext2/ext3/ext4 文件系统大小。

系统权限及用户授权相关命令(4 个)

chmod

改变文件或目录权限。

chown

改变文件或目录的属主和属组。

chgrp

更改文件用户组。

umask

显示或设置权限掩码。

查看系统用户登陆信息的命令(7 个)

whoami

显示当前有效的用户名称,相当于执行 id -un 命令。

who

显示目前登录系统的用户信息。

w

显示已经登陆系统的用户列表,并显示用户正在执行的指令。

last

显示登入系统的用户。

lastlog

显示系统中所有用户最近一次登录信息。

users

显示当前登录系统的所有用户的用户列表。

finger

查找并显示用户信息。

内置命令及其它(19 个)

echo

打印变量,或直接输出指定的字符串

printf

将结果格式化输出到标准输出。

rpm

管理 rpm 包的命令。

yum

自动化简单化地管理 rpm 包的命令。

watch

周期性的执行给定的命令,并将命令的输出以全屏方式显示。

alias

设置系统别名。

unalias

取消系统别名。

date

查看或设置系统时间。

clear

清除屏幕,简称清屏。

history

查看命令执行的历史纪录。

eject

弹出光驱。

time

计算命令执行时间。

nc

功能强大的网络工具。

xargs

将标准输入转换成命令行参数。

exec

调用并执行指令的命令。

export

设置或者显示环境变量。

unset

删除变量或函数。

type

用于判断另外一个命令是否是内置命令。

bc

命令行科学计算器

系统管理与性能监视命令 (9 个)

chkconfig

管理 Linux 系统开机启动项。

vmstat

虚拟内存统计。

mpstat

显示各个可用 CPU 的状态统计。

iostat

统计系统 IO。

sar

全面地获取系统的 CPU、运行队列、磁盘 I/O、分页(交换区)、内存、

CPU 中断和网络等性能数据。

ipcs

用于报告 Linux 中进程间通信设施的状态,显示的信息包括消息列表、

共享内存和信号量的信息。

ipcrm

用来删除一个或更多的消息队列、信号量集或者共享内存标识。

strace

用于诊断、调试 Linux 用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,

比如系统调用、信号传递、进程状态变更等。

ltrace

命令会跟踪进程的库函数调用, 它会显现出哪个库函数被调用。

关机 / 重启 / 注销和查看系统信息的命令(6 个)

shutdown

关机。

halt

关机。

poweroff

关闭电源。

logout

退出当前登录的 Shell。

exit

退出当前登录的 Shell。

Ctrl+d

退出当前登录的 Shell 的快捷键。

进程管理相关命令(15 个)

bg

将一个在后台暂停的命令,变成继续执行 (在后台执行)。

fg

将后台中的命令调至前台继续运行。

jobs

查看当前有多少在后台运行的命令。

kill

终止进程。

killall

通过进程名终止进程。

pkill

通过进程名终止进程。

crontab

定时任务命令。

ps

显示进程的快照。

pstree

树形显示进程。

nice/renice

调整程序运行的优先级。

nohup

忽略挂起信号运行指定的命令。

pgrep

查找匹配条件的进程。

runlevel

查看系统当前运行级别。

init

切换运行级别。

service

启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。

今年留学的命令,它就是一个特定的东西,然后。你在那边找到它,然裤樱后就胡培丛会有东西看到几件,然后都就会发现这个命运。我自己找中雀找就会希望我的回答对你能有帮助。

关于linux c 命令行参数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 学习Linux C命令行参数的基础知识 (linux c 命令行参数)