linux下如何运行程序

linux下如何运行程序,第1张

运行()中间是你的命令

调用格式: 〈逻辑型〉 运行 (文本型 欲运行的命令行,逻辑型 是否等待程序运行完毕,[整数型 被运行程序窗口显示方式]) - 系统核心支持库->系统处理

英文名称:run

本命令运行指定的可执行文件或者外部命令。如果成功,返回真,否则返回假。本命令为初级命令。

参数<1>的名称为“欲运行的命令行”,类型为“文本型(text)”。

参数<2>的名称为“是否等待程序运行完毕”,类型为“逻辑型(bool)”,初始值为“假”。

参数<3>的名称为“被运行程序窗口显示方式”,类型为“整数型(int)”,可以被省略。参数值可以为以下常量之一:1、#隐藏窗口; 2、#普通激活; 3、#最小化激活; 4、#最大化激活; 5、#普通不激活; 6、#最小化不激活。如果省略本参数,默认为“普通激活”方式。

*** 作系统需求: Windows、Linux

一、linux和os:

1、命令:netstat tcpdump ipcs ipcrm 这四个命令的熟练掌握程度基本上能体现实际开发和调试程序的经验

2、cpu 内存 硬盘 等等与系统性能调试相关的命令必须熟练掌握,设置修改权限 tcp网络状态查看 各进程状态 抓包相关等相关命令 必须熟练掌握

3、awk sed需掌握

4、共享内存的使用实现原理、然后共享内存段被映射进进程空间之后,存在于进程空间的什么位置共享内存段最大限制是多少

5、c++进程内存空间分布(注意各部分的内存地址谁高谁低,注意栈从高道低分配,堆从低到高分配)

6、ELF是什么其大小与程序中全局变量的是否初始化有什么关系(注意bss段)

7、使用过哪些进程间通讯机制,并详细说明

8、makefile编写,虽然比较基础,但是会被问到

9、gdb调试相关的经验,会被问到

10、如何定位内存泄露

11、动态链接和静态链接的区别

12、32位系统一个进程最多多少堆内存

13、多线程和多进程的区别(重点 必须从cpu调度,上下文切换,数据共享,多核cup利用率,资源占用,等等各方面回答,然后有一个问题必须会被问到:哪些东西是一个线程私有的答案中必须包含寄存器,否则悲催)

14、写一个c程序辨别系统是64位 or 32位

15、写一个c程序辨别系统是大端or小端字节序

16、信号:列出常见的信号,信号怎么处理

17、i++是否原子 *** 作并解释为什么

18、说出你所知道的各类linux系统的各类同步机制(重点),什么是死锁如何避免死锁(每个技术面试官必问)

19、列举说明linux系统的各类异步机制

20、exit() _exit()的区别

21、如何实现守护进程

22、linux的内存管理机制是什么

23、linux的任务调度机制是什么

24、标准库函数和系统调用的区别

25、补充一个问题:系统如何将一个信号通知到进程

二、c语言:

1、宏定义和展开(必须精通)

2、位 *** 作(必须精通)

3、指针 *** 作和计算(必须精通)

4、内存分配(必须精通)

5、各类库函数必须非常熟练的实现

6、哪些库函数属于高危函数,为什么(strcpy等等)

三、c++:

1、一个String类的完整实现必须很快速写出来(注意:赋值构造,operator=是关键)

2、虚函数的作用和实现原理(必问必考,实现原理必须很熟)

3、sizeof一个类求大小(注意成员变量,函数,虚函数,继承等等对大小的影响)

4、指针和引用的区别(一般都会问到)

5、多重类构造和析构的顺序

6、stl各容器的实现原理(必考)

7、extern c 是干啥的,(必须将编译器的函数名修饰的机制解答的很透彻)

8、volatile是干啥用的,(必须将cpu的寄存器缓存机制回答的很透彻)

9、static const等等的用法,(能说出越多越好)

四、数据结构或者算法:

1、《离散数学》范围内的一切问题皆由可能被深入问到(最重要,最体现功底,最能加分,特别是各类树结构的实现和应用)

2、各类排序:大根堆的实现,快排(如何避免最糟糕的状态),bitmap的运用等等

3、hash, 任何一个技术面试官必问(例如为什么一般hashtable的桶数会取一个素数如何有效避免hash结果值的碰撞)

五、网络编程:

1、tcp与udp的区别(必问)

2、udp调用connect有什么作用

3、tcp连接中时序图,状态图,必须非常非常熟练

4、socket服务端的实现,select和epoll的区别(必问)

5、epoll哪些触发模式,有啥区别(必须非常详尽的解释水平触发和边缘触发的区别,以及边缘触发在编程中要做哪些更多的确认)

6、大规模连接上来,并发模型怎么设计

7、tcp结束连接怎么握手,time_wait状态是什么,为什么会有time_wait状态哪一方会有time_wait状态,如何避免time_wait状态占用资源(必须回答的详细)

8、tcp头多少字节哪些字段(必问)

9、什么是滑动窗口(必问)

10、connect会阻塞,怎么解决(必考必问,提示:设置非阻塞,返回之后用select检测状态)

11、如果select返回可读,结果只读到0字节,什么情况

12、keepalive 是什么东东如何使用

13、列举你所知道的tcp选项,并说明其作用。

14、socket什么情况下可读

六、db:

1、mysql,会考sql语言,服务器数据库大规模数据怎么设计,db各种性能指标

我们在Linux下运行程序的时候,一般都是这样的 *** 作的,例如启动Tomcat:

[root@hostname bin]# /catalinash run

我一直不理解这个“/”到底是什么意思,其实很好理解。

1首先,我们看一下Windows在命令行里是怎么运行可执行程序的:

当前目录在D盘时,我运行C盘下的微信,需要指定完整的路径;当前目录就在微信的安装目录下时,我运行微信,直接指定exe可执行文件名就可以了。

搞懂了Windows怎么运行程序,Linux也是一样,说白了,都是直接敲文件名就能执行。

2那Linux中的“”到底是啥意思?为啥一定要敲一个“/”呢?

和/就是表示当前目录。同Windows一样,Linux也是当前目录下没有可执行文件时,需要指定完整的路径;当前目录下有可执行文件时,直接指定可执行文件名就可以了。只不过Linux有点呆呆的,执行当前目录下的可执行文件时,必须要额外多敲一个"/",否则的话它自己不知道在当前目录下找这个可执行文件。

不加这个“/”,Linux就会从环境变量PATH中定义的路径中找可执行文件,只有加了这个“/”之后,Linux才会从当前目录中找可执行文件。

外延1:Windows和Linux中的command not found道理也是一样的,都是给定的路径不正确,导致找不到可运行文件。

Windows中直接运行微信如图:

Linux中直接运行Tomcat如图:

外延2:Windows中的PATH这个环境变量和Linux中的PATH作用是一样的

Windows中能直接运行记事本,就是因为环境变量PATH里设置了C:\Windows\System32这个路径

当把PATH里中的C:\Windows\System32这个路径去掉之后,就无法直接在命令行中运行记事本了。

以上就是关于linux下如何运行程序全部的内容,包括:linux下如何运行程序、Linux开发需要什么呢需要具备什么基础呢、如何理解Linux下使用“./”运行程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10126386.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存