参考网址:【Linux命令大全】[]:https://linux265.com/course/linux-commands.html

为什么要学习shell指令?

学习shell指令的本身也是在了解Linux系统。shell是开发出来更好地使用Linux系统。

1.shell指令与系统调用的区别?

本是想着随便想想这个问题。没想到这个问题居然是我的知识盲区。

首先要区分系统调用 、 Linux内置命令 、 Linux外部命令 、 shell命令

系统调用:運行在使用者空間的程序向操作系统内核請求需要更高權限運行的服務。

如:open()、close()等等

然后Linux命令是用C语言调用系统调用实现特定功能的一个程序。内部外部命令在这里区分并不重要。

而shell则是一个更上层的使用Linux命令的封装,拥有我们常说的shell命令其实是Linux命令

shell以图形化的界面(又不是很图形化)将输入的指令解析成Linux命令去使用。

所以shell语言 既是命令语言又是程序设计语言。

1.nm指令?

nm是names的缩写, nm命令主要是用来列出某些文件中的符号(说白了就是一些函数和全局变量等)。

2.符号是什么?

参考网址:[]:http://jianboge.com/d420951

[]:https://www.cnblogs.com/zuofaqi/p/12026482.html

参考书籍:《程序员的自我修养——链接、装载与库》

符号是:

所说的符号其实就是我们代码中的函数和变量,在链接的过程中,链接器会把这些所有符号都统一管理起来,然后给他们赋值,叫符号值。函数和变量的符号值就是自己的地址。

所以写c语言的时候,函数不能重名,重名的时候会在链接的时候会报错,就是这个道理,当然可以用static来限制作用域。

所以每一个目标文件(hello_world.o)都有一份自己的符号表,存储在.symtab段中,链接的时候,链接器只要去找这个段中的符号,然后各种操作就可以了。

用法有很多。

2.用nm指令 实现在/usr/lib/ 目录下找出哪个库文件定义了memset函数:

3.用nm指令 实现显示hello.o 中的未定义符号,需要和其他对象文件进行链接:

4.sed指令?

用于替换字符串

5.source指令?

6.source指令是在当前进程执行还是另起子进程运行?

是在当前进程执行。

7.source指令可以强制执行指令吗?

source 命令会强制执行脚本中的全部命令,而忽略文件的权限。

不过最起码需要有读文件的权限0.0

8.执行sh(scirpt)文件有几种方式?

两种:

  • 当前shell执行(source)
  • 另起新shell执行(#!/bin/sh)

9.ar指令?

ar命令用于建立或修改备存文件,或是从备存文件中抽取文件。可集合许多文件,成为单一的备存文件。在备存文件中,所有成员文件皆保有原来的属性与权限。

10.readelf指令?

readelf命令用来显示一个或者多个elf格式的目标文件的信息,可以通过它的选项来控制显示哪些信息。这里的elf-file(s)就表示那些被检查的文件。可以支持32位,64位的elf格式文件,也支持包含elf文件的文档(这里一般指的是使用ar命令将一些elf文件打包之后生成的例如lib*.a之类的“静态库”文件)。

shell编程【一】的更多相关文章

  1. Linux学习笔记(17) Shell编程之基础

    1. 正则表达式 (1) 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配.grep.awk.sed等命令可以支持正则表达式:通配符用来匹配符合条件的文件名,通配符是完全匹配.ls.find ...

  2. shell编程:定义简单标准命令集

    shell是用户操作接口的意思,操作系统运行起来后都会给用户提供一个操作界面,这个界面就叫shell,用户可以通过shell来调用操作系统内部的复杂实现,而shell编程就是在shell层次上进行编程 ...

  3. Linux Shell编程入门

    从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...

  4. Shell编程菜鸟基础入门笔记

    Shell编程基础入门     1.shell格式:例 shell脚本开发习惯 1.指定解释器 #!/bin/bash 2.脚本开头加版权等信息如:#DATE:时间,#author(作者)#mail: ...

  5. Linux_10------Linux之shell编程------变量

    .-9 vim num.sh #! /bin/bash num1=$1 num2=$2 sum=$(($num1+$num2)) #变量sum是num1和num2的综合 echo $sum 执行 ./ ...

  6. 需要交互的shell编程——EOF(转载)

    在shell编程中,”EOF“通常与”<<“结合使用,“<<EOF“表示后续的输入作为子命令或子shell的输入,直到遇到”EOF“, 再次返回到主调shell,可将其理解为分 ...

  7. ****CodeIgniter使用cli模式运行,把php作为shell编程

    shell简介 在计算机科学中,Shell俗称壳(用来区别于核).而我们常说的shell简单理解就是一个命令行界面,它使得用户能与操作系统的内核进行交互操作. 常见的shell环境有:MS-DOS.B ...

  8. Shell 编程基础之变量和环境变量

    一.变量赋值和引用 Shell 编程中,使用变量无需事先声明,同时变量的命名不惜遵循如下规则: 首个字符必须为字母(a-z,A-Z)或者_ 变量名中间不能有空格,可以使用_连接 不能使用其他表达符号 ...

  9. Linux Shell编程基础

    在学习Linux BASH Shell编程的过程中,发现由于不经常用,所以很多东西很容易忘记,所以写篇文章来记录一下 ls   显示当前路径下的文件,常用的有 -l 显示长格式  -a 显示所有包括隐 ...

  10. centos 下建用户 shell编程

    useradd 用户名 passwd 用户名 cat /etc/passwd  查看用户信息 删除用户 userdel -r   加一个 -r 表示把用户及用户的主目录都删除 su  切换用户 sud ...

随机推荐

  1. chklist

    1. 重复检查的必要性.一段代码如果在测试期间没问题,也要间隔几天再去观察是否有问题.2. 如果是集群式的服务,使用定时任务要采用分布式锁,或使用工具随机发送一台都可以.3. 如果任务跑失败,需要支持 ...

  2. Windows初始化.net core环境

    1.项目使用.ner core版本(例:.net core.3.1) 1.1安装运行环境 https://dotnet.microsoft.com/en-us/download 1.2安装.net 运 ...

  3. yii框架中 不能正确正常使用phpredis 路径安装好后还是报 Class yii\redis\Connection does not exist!

    1,成功解决方案 在yiisoft / extensions.php 中添加如下数组 指向目录 'yiisoft/yii2-redis' =>array(      'name'=>'yi ...

  4. drf从入门到飞升仙界 06

    模型类准备 from django.db import models # 图书跟作者:多对多,需要建立中间表,但是我们可以通过ManyToManyField自动生成,写在哪里都行 # 图书跟出版社:一 ...

  5. css3字体颜色渐变

    效果图: 代码: <span class="titleName">这是个测试字体</span> .titleName { background: linea ...

  6. docker 安装后报错处理

    问题场景: Docker服务安装之后启动报错 日志如下: time="2022-03-20T21:51:16.116163560+08:00" level=info msg=&qu ...

  7. tidb配置haproxy

    1.安装haproxy wget https://www.haproxy.org/download/2.6/src/haproxy-2.6.2.tar.gz make clean make -j 8  ...

  8. 腾讯云服务器,在本地域名不能访问,IP可以访问;端口访问差异:有的地方能访问有的不能

    本地域名不能访问原因是DNS地址问题,本地设置的DNS地址没法解析出腾讯云IP,所以域名访问不到,直接就用服务器IP却可以. 修改DNS可以在本地电脑上修改,只影响本机, 按下键盘上的"Wi ...

  9. linux篇之常用的文本操作命令

    命令                                                    功能 cat .tac                             显示文本文件 ...

  10. 053_Salesforce Lightning与Classic对比

    Classic页面  Lightning页面  特点: 应用程序的切换更加方便 可以快速访问最近项目和备注等 新的记录页面布局 涡轮增压列表视图 仪表板有所变化 圆滑的报告视图 其中最重要的变化也当属 ...