unix命令

操作系统简史

萝らか妹 提交于 2019-11-26 19:28:33
什么是操作系统? 可能很多人都会说,我们平时装的windows7 windows10都是操作系统,没错,他们都是操作系统。还有没有其他的? 想想我们使用的手机,Google公司的Android系统,Apple公司笔记本上的的MacOSX、IPhone的IOS,他们都是操作系统。 那么我们想想,操作系统都可以做什么? 我们买来电脑的后第一件事情就是安装操作系统,有的电脑则在我们买来的时候已经安装好了操作系统,比如说品牌机(Dell、HP、lenovo)。 我们可以在操作系统上通过安装程序来看视频,听音乐,玩游戏、浏览网页,还可以弹出移动硬盘和U 盘、管理我们硬盘中的文件等等;我们通过操作系统来和计算机交互,系统协调我们安排给计算机的各种任务。 操作系统(Operating System, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境的程序集合。 计算机操作系统是随着计算机研究和应用的发展逐步形成并发展起来的,它是计算机系统中最基本的系统软件。 我们通过操作系统来使用计算机。 知道了系统是用来做什么的,我们来了解一下系统的发展历史。 (操作系统工作方式的演变——20世纪五六十年代) 手工操作(无操作系统) 人们先把程序纸带(或卡片)装上计算机,然后启动输入机把程序和送入计算机

用 GDB 调试Linux下的C程序

随声附和 提交于 2019-11-26 17:13:33
查看程序出现段错误的语句,可以使用where命令,好像与bt命令相同。 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。 一般来说,GDB主要帮忙你完成下面四个方面的功能: 1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式) 3、当程序被停住时,可以检查此时你的程序中所发生的事。 4、动态的改变你程序的执行环境。 从上面看来,GDB和一般的调试工具没有什么两样,基本上也是完成这些功能,不过在细节上,你会发现GDB这个调试工具的强大,大家可能比较习惯了图形化的调试工具,但有时候,命令行的调试工具却有着图形化工具所不能完成的功能。让我们一一看来。 一个调试示例 —————— 源程序:tst.c 1 #include 2 3 int func(int n) 4 { 5 int sum=0,i; 6 for(i=0; i 7 { 8 sum+=i; 9 } 10 return sum; 11 } 12 13 14 main() 15 { 16 int i; 17 long

Linux 中几个高效过滤命令

隐身守侯 提交于 2019-11-26 17:03:35
过滤器是一个程序,它从标准输入读取数据,在数据上执行操作,然后把结果写到标准输出。 因此,它可以用来以强大的方式处理信息,例如重新结构化输出以生成有用的报告,修改文件里面的文本,以及其他很多系统管理任务。 下面是 Linux 上的一些有用的文件或者文本过滤器。 1、 awk 命令 awk 是一个卓越的模式扫描和处理语言,它可被用于在 Linux 下构造有用的过滤器。你可以通过阅读我们的 awk 系列 1 到 13 部分 来开始使用它。 另外,也可以通过阅读 awk 的 man 手册来获取更多的信息和使用选项。 $ man awk 2、 sed 命令 sed 是一款过滤和转换文本的强大的流编辑器。我们已经写了两篇关于 sed 的有用的文章,你可以通过这儿来了解: 如何使用 GNU sed 命令在 Linux 下创建、编辑和处理文件 日常 Linux 系统管理员任务使用的 15 个有用的 sed 命令小贴士和技巧 sed 的 man 手册已经添加控制选项和说明: $ man sed 3、 grep、 egrep、 fgrep、 rgrep 命令行 这些过滤器输出匹配指定模式的行。它们从一个文件或者标准输入读取行,并且输出所有匹配的行,默认输出到标准输出。 注意 :主程序是 grep ,这些变体与 使用特定的选项的 grep 相同,如下所示(为了向后兼容性,它们依旧在使用): $

An art - C Language

为君一笑 提交于 2019-11-26 14:13:07
思前想后,还是把写的这本书直接发到公众号上。 这是一本C语言的入门书,用去了我2018年的整个冬天。作为一个在学习C的征途中踩坑无数的人,这让我不禁想起学习C的一路艰辛。 这本书用作者本人喜欢的逻辑方式,去描述了C语言的一些基本概念,最为关键的是,结合linux操作系统去描述,这样一些概念会更清晰。从而使入门的难度进一步降低。 虽然能够熟练的使用C,也对C中的概念、设计思想有所了解,但在C语言面前,我依然是一个小学生。无论何时,请保持一个谦虚、奋进的态度,这是你前进的根本。 本书的写成与发布,无关荣誉,无关利益,只是想让那些与我有过同样迷惑的人,拨云见日。如果你觉得好,就转发给你身边需要的朋友,这就是我们能得到的最大快乐。 书中的写作难免有错,如果有误,或者理解不对的地方,请直接与作者本人联系taxuxiang@buaa.edu.cn 或添加本人微信ta1969。由作者本人修改后,再次发布。 注:大家可以转载,但请不要用来谋利。多谢 作者简介: 他旭翔,男,1990年,博士生,现就读于北京航空航天大学计算机学院网络空间安全专业,主要研究方向为物联网安全、人工智能。 序 言 大浪淘沙,时光飞逝。计算机、互联网深刻地改变了我们的世界。剥开迷雾,隐藏在这些神奇技术背后的是一串串01代码,这些代码如同跳动的音符,在演奏美妙的旋律,又如同让人迷惑不解的星空,闪烁着诱人的光芒。

unix系统中查看端口号被占用

自闭症网瘾萝莉.ら 提交于 2019-11-26 14:07:56
1. 查看端口占用情况的命令:lsof -i [root@www ~]# lsof -i COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME nginx 2333 root 6u IPv4 6242 TCP *:http (LISTEN) nginx 2334 www 6u IPv4 6242 TCP *:http (LISTEN) sshd 2349 root 3u IPv6 6283 TCP *:ndmp (LISTEN) sshd 2349 root 4u IPv6 6286 TCP *:ssh (LISTEN) 这里返回了Linux当前所有打开端口的占用情况。 第一段是进程,最后一列是侦听的协议、侦听的IP与端口号、状态。 如果端口号是已知的常用服务(如80、21等),则会直接显示协议名称,如http、ftp、ssh等。 2. 查看某一端口的占用情况: lsof -i:端口号 [root@www ~]# lsof -i:21 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME pure-ftpd 2651 root 4u IPv4 7047 TCP *:ftp (LISTEN) pure-ftpd 2651 root 5u IPv6 7048 TCP *:ftp (LISTEN)