
linux&shell
文章平均质量分 74
零丁若叹
这个作者很懒,什么都没留下…
展开
-
nm命令使用
nm命令使用原创 2022-10-30 17:29:41 · 393 阅读 · 0 评论 -
连接远程linux服务器
SSH简介我们在 搭建服务器时通常选择Linux版本,如果远程的服务器没有桌面,mac电脑如何在本地操作远程的服务器呢?方法是很简单的,mac电脑为我们提供了ssh命令,使用这个命令可以快速连接到远程linux服务器。SSH是一种加密的网络传输协议,它可以在不安全的网络中提供安全的传输环境,通常利用SSH来传输命令行界面,远程执行命令。SSH工作的大概原理是客户端在建立连接过程中,服务端收到用户的登录请求,然后把服务端的公钥发给用户,客户端拿到这个公钥,把登录密码加密发送给服务端,服务端使用自己的.原创 2020-11-07 22:43:18 · 10609 阅读 · 0 评论 -
unix环境终端I/O
1. 什么是Linux 的终端I/O ,它分为几种类型。 终端是一种字符型设备,有多种类型,通常使用tty 来简称各种类型的终端设备。终端特殊设备文件一般有以下几种: 串行端口终端(/dev/ttySn ) ,伪终端(/dev/pty/ ),控制终端(/dev/tty ) ,控制台终端(/dev/ttyn, /dev/console ).1. 串行端口终端(Serial Por转载 2014-05-17 19:47:01 · 769 阅读 · 0 评论 -
unix环境编程 文件操作
1. 文件的打开读写 关闭int open(const char *pathname,int flag,…) 打开一个文件成功则返回文件描述符,若出现则返回-1flag可以取下面的常量O_RDONLY 只读打开O_WRONLY 只写打开O_RDWR 读写打开其它的常量 O_APPEND,O_CREAT,O_EXCL,O_TRUNC,O_NOCTT原创 2014-05-17 23:51:32 · 918 阅读 · 0 评论 -
unix环境编程 UDP通信
(一)UDP编程的服务器端一般步骤是:1、用函数socket()创建socket,第二个参数为SOCK_DGRAM2、用函数bind()绑定IP地址、端口信息3、用函数recvfrom()接收数据4、关闭网络连接;UDP编程的客户端一般步骤是:1、创建一个socket,用函数socket(),第二个参数为SOCK_DGRAM2、使用connect()来建立与服务程序的连原创 2014-05-25 22:59:47 · 981 阅读 · 0 评论 -
unix环境编程 阻塞IO和非阻塞IO
IO模式设置网络编程常见问题总结—IO模式设置,阻塞与非阻塞的比较,recv参数对性能的影响—O_NONBLOCK(open使用)、IPC_NOWAIT(msgrcv)、MSG_DONTWAIT(recv使用)非阻塞IO 和阻塞IO: 在网络编程中对于一个网络句柄会遇到阻塞IO 和非阻塞IO 的概念, 这里对于这两种socket 先做一下说明: 基本概念转载 2014-05-17 23:52:55 · 978 阅读 · 0 评论 -
字节对齐
数据对齐的目的是提高CPU读取元素的速度,有些CPU读取元素是从偶数地址开始的,这时如果一个int型的数据存放在起始地址为奇数的地方,这时将需要读取两次,然后将两次读取的结果合并到一起,显然这种方式低效的。改进的办法是让各种数据类型数据对齐,虽然这样增加了一些空间的开销,但它提高了CPU读取元素的效率。原创 2014-04-07 22:58:41 · 1054 阅读 · 0 评论 -
ubuntu编译汇编程序
1. 在ubuntu上编译汇编语言的步骤是先下载nasm安装包,用tar、make等命令安装,然后在vi中建立hello.asm文件,文件内容如下: section .textglobal mainmain:mov eax,4 ; 4号调用mov ebx,1 ; 表示输出mov ecx,msg; 字符串的首地址送入ecx寄原创 2014-02-08 10:23:00 · 10279 阅读 · 0 评论 -
unix环境编程 目录操作
1、目录操作有 mkdir(constchar *pathname,mode_t mode)创建目录,成功则返回0,若出错则返回-1int rmdir(const char *pathname)rmdir可以删除一个空目录,成功则返回0,若出错返回-1DIR *opendir(const *pathname)成功则返回指针,若出错则返回NULL原创 2014-05-11 19:36:42 · 1062 阅读 · 0 评论 -
计算机的中断
计算机中断(一)中断是指CPU在运行时接收到硬件发出的请求,CPU保存当前进程的相关信息,然后处理这个请求,根据中断类型号找到中断向量,执行相应的中断程序,然后恢复之前的进程信息,继续执行之前的进程。中断系统作用:1.故障检测和自动处理 程序执行出现异常如溢出可以通过中断处理2.实时信息处理实时信息处理中需要对信息做实时处理,采用中断可以完成3.并行操作 多个外部设备可以与C原创 2014-09-12 09:49:34 · 1622 阅读 · 0 评论 -
fork()和多线程
一、fork()函数 在操作系统的基本概念中进程是程序的一次执行,且是拥有资源的最小单位和调度单位(在引入线程的操作系统中,线程是最小的调度单位)。在Linux系统中创建进程有两种方式:一是由操作系统创建,二是由父进程创建进程(通常为子进程)。系统调用函数fork()是创建一个新进程的唯一方式,当然vfork()也可以创建进程,但是实际上其还是调用了fork()函数。fork()函数转载 2014-08-29 16:29:01 · 1759 阅读 · 0 评论 -
gdb常用命令
一、GDB常用命令简介 rrun运行.程序还没有运行前使用c cuntinue 运行到下一断点处qquit 退出tabtab命令补全功能h help帮助sstep跟入函数nnext转载 2014-04-12 12:19:18 · 874 阅读 · 0 评论 -
unix环境信号机制
UNIX/Linx的信号处理非常强大,它可以完成许多顺序编程不能提供的功能,比如下面这个读终端超时的程序,因为信号的到达的时间是不确定的,系统依靠中断机制来处理函数,所以不能依赖信号的到达时间编程。[cpp] view plaincopy/* * 该程序从标准输入中读,如果10内没有输入(或者输入没有按回车)则报告超时,否则打印用户转载 2014-05-17 19:46:10 · 744 阅读 · 0 评论 -
unix进程控制 exit函数
一:进程退出函数详解在前一篇的 Unix进程环境之---进程结束的方式和退出函数 中提到了Unix程序退出的八中方式,分别为:1:从 main 函数返回2:调用 exit 函数3:调用 _exit 函数或者是 _Exit 函数4:从最后一个线程中返回5:从最后一个线程中调用 pthread_exit还有三种非正常的结束方式:转载 2014-05-17 19:46:36 · 1125 阅读 · 0 评论 -
ubuntu连接adsl方法
1. 可以桌面右上角点击网络图标,选择编辑,然后弹出对话框: 点击添加,弹出对话框:填入用户名和密码,就可以使用adsl了。2.也可以使用终端输入命令的方式:打开终端,键入命令 sudo pppoeconf ,在接下来的菜单中输入用户名和密码,选择yes,即可建立adsl连接这样adsl连接就可以使用了。如果要打开或者关闭adsl连接,可以分别原创 2014-02-09 14:46:19 · 1272 阅读 · 0 评论 -
正则表达式基础
正则表达式是对字符串操作的逻辑表示,可以用来查找匹配文本。正则表达式由一般字符和特殊字符组成,特殊字符又称为元字符,常见的元字符有:\ 用来关闭后续字符的意义 . 匹配任何单个字符 * 匹配任意多个其前面出现的字符 ^ 在行或者字符串的起始处匹配$ 在行或者字符串的末尾处匹配原创 2014-02-23 18:33:47 · 925 阅读 · 0 评论 -
awk基础
1.awk是很好的文本处理工具,简化了一般文本处理的工作。使用awk有以下三种方式:(1) 使用awk命令行(2) 使用-f选项,后面接上文件名(3) 使用命令解释器#!/bin/awk –f然后使用chmod 命令给这个脚本文件加上可执行权限,就可以调用这个脚本了2.awk中的变量(1)标量变量 awk的变量不需要原创 2014-02-23 22:26:04 · 1104 阅读 · 0 评论 -
ubuntu安装twisted方法
1.Ubuntu上下载twisted压缩包,Twisted-3.2.0.tar.bz2,cd 到下载目录,用tar –jvxf Twisted-13.2.0.tar.bz2解压缩,解压完成后进入目录Twisted 13.2.0,然后用 python setup.py install命令安装完成后在shell中输入python,即可显示python版本信息,再输入import tw原创 2014-02-15 17:45:22 · 3727 阅读 · 0 评论 -
gcc查看汇编代码
1.gcc编译C语言程序#include intmain(){printf(“helloworld\n”);return0;}把上面的程序存为hello.c,然后用gcchello.c -o hello,然后./hello,即可看到运行结果2.使用gcc查看汇编代码先写一个C程序,内容为:#include intsum(int x,int y)...原创 2014-03-02 20:50:16 · 20680 阅读 · 1 评论 -
shell中的函数定义及控制语句
1.shell中的函数定义格式为:function name(){#函数体}函数的定义必须遵循先定义在使用的原则,如定义函数print原创 2014-03-03 13:03:07 · 970 阅读 · 0 评论 -
gcc常用命令
1.linux gcc常用命令无选项gcc test.c将test.c预处理、汇编、编译并链接形成可执行文件-o 文件名 编译为目标代码-c 只编译源文件不链接,例如:gcc –c test.s,可以将汇编文件输出为test.o文件-S 生成汇编代码-E 将程序预处理输出为.i文件,例如: gcc –原创 2014-03-09 20:20:18 · 1137 阅读 · 0 评论 -
循环语句的汇编表示
1.for循环循环语句的代码是:int sum(int x){int i;int res=0;for(i=0;ires+=i;return res;}产生的汇编代码为:00000000:0: 55 push %ebp1: 89 e5 mov %esp,%ebp3: 83 ec 10 sub $0x10,%esp6: c7原创 2014-03-30 16:16:00 · 4777 阅读 · 0 评论 -
if语句的汇编表示
gcc产生的代码,可以使用objdump查看它对应的汇编代码(gcc查看汇编代码),本文主要介绍条件语句if语句的汇编表示 有以下代码:int max(int x,int y){if (x>y)return x;elsereturn y;}产生的汇编代码如下:00000000:0: 55 push %ebp1: 89e5 mov %esp,%ebp...原创 2014-03-30 15:06:08 · 21491 阅读 · 2 评论 -
shell文件测试
文件类型:-f :判断文件是否为普通文件-d :判断是否目录-b :判断是都块设备文件-c :判断是都字符设备文件-S :判断是否socket文件-p:判断是否管道文件-h: 判断是都为符号链接-L:文件存在且有符号链接文件大小存在性:-e : 判断文件或者目录是否存在-s :文件或者或者目录存在且大小大于0文件读写特性-r: 判断文件是否有可读原创 2014-03-22 22:34:07 · 1802 阅读 · 0 评论 -
switch...case和if...else效率比较
1.switch的汇编表示写入switch的代码:int fun(char c) { char res; switch(c) { case 'a': res='a'; break; case 'e': res='e'; break; case 'i': res='i'; br原创 2014-04-07 17:28:49 · 13602 阅读 · 2 评论 -
tcpdump的使用
tcpdump是ubuntu默认安装的协议转包工具,它必须在root权限下进行。它支持很多的参数,如指定接口,协议等,还可以用于过滤信息。直接使用tcpdump默认抓取所有的协议包,信息过多时很难找到需要的信息,这时可以使用过滤器滤除不必要的信息。tcpdump的命令格式为:tcpdump –c [s数量] [-F文件名] [-i 文件名] [-r文件名] [-w 文件名][表达式原创 2014-01-28 13:06:38 · 917 阅读 · 0 评论