linux基础
ccccccsdn
这个作者很懒,什么都没留下…
展开
-
linux更新文件
最近发现很多同学不知道线上操作替换文件的要点。所以又整理了一下。 线上替换一个正在运行进程的文件时(包括二进制、动态库、需要读取的资源文件等)。应避免使用cp/scp操作。而需要使用mv/rsync作为替代。原因:cp是将源文件截断然后写入新内容。也就是说正在打开这个文件的进程可以立刻感知到修改。修改文件内容很可能导致程序逻辑错误甚至崩溃。而mv则是标记”删除“老文件,然后放一转载 2017-07-20 10:36:10 · 2417 阅读 · 0 评论 -
linux日志系统
日志系统:操作系统在运行过程中会有很多信息产生,这些信息即是我们去观察系统运行过程当中正常状况一种途径;同时为我们提供了当发生故障的时候定位问题所在位置根源syslogd与klogd介绍syslogd;专门记录非内核的其他设施所产生的日志;当系统的控制权 由内核转交给init的时候,这时候的日志信息的记录由syslog记录 klogd:内核 主要负责内核所产生的日志当系统启动完成之后就转载 2015-07-07 15:50:03 · 511 阅读 · 0 评论 -
Makefile经典教程(掌握这些足够)
makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写make转载 2015-06-02 10:08:06 · 403 阅读 · 0 评论 -
使用awk命令获取文本的某一行,某一列
1、打印文件的第一列(域) : awk '{print $1}' filename2、打印文件的前两列(域) : awk '{print $1,$2}' filename3、打印完第一列,然后打印第二列 : awk '{print $1 $2}' filename4、打印文本文件的总行数 :转载 2015-06-02 10:17:17 · 8835 阅读 · 0 评论 -
内存检测方法
内存检测方法针对常见的DDR内存故障进行了严格的检测处理,下图描述了该检测处理过程的三个步骤:检测数据线、地址线和DDR物理存储部件,主要涉及这三个步骤的处理过程和方法。下面主要是相关的检测处理思路及问题:1、为什么先检测数据线?因为如果数据线是断开的,那么一切无从谈起!接下来是检测地址线,只有数据线和地址线都通过,检测内存的存储单元才有意义,这样的流程也利于分割定位问题。上面te转载 2015-06-01 09:49:04 · 1665 阅读 · 0 评论 -
Makefile中的wildcard用法
在Makefile规则中,通配符会被自动展开。但在变量的定义和函数引用时,通配符将失效。这种情况下如果需要通配符有效,就需要使用函数“wildcard”,它的用法是:$(wildcard PATTERN...) 。在Makefile中,它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。如果不存在任何符合此模式的文件,函数会忽略模式字符并返回空。需要注意的是:这种情况下规则中通配符转载 2015-05-31 10:12:33 · 417 阅读 · 0 评论 -
Core资料
1、简单介绍:程序崩溃时,一般会在指定的目录下生成一个core文件。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。2、开启或关闭core文件的生成ulimit -c可以查看是否打开此选项,若为0则为关闭;ulimit -c 0可手动关闭ulimit -c 1000为设置core文件大小最大为1000k3、设置CoreDump的核心转储文件目录和命名规转载 2015-05-29 12:54:14 · 358 阅读 · 0 评论 -
grep -v grep
一般用在看进程情况,ps -ef | grep httpd | grep -v grep防止列表出grep的进程号。转载 2015-04-28 16:25:00 · 775 阅读 · 0 评论 -
Git的Patch功能
Git的Patch功能UNIX世界的软件开发大多都是协作式的,因此,Patch(补丁)是一个相当重要的东西,因为几乎所有的大型UNIX项目的普通贡献者,都是通过 Patch来提交代码的。作为最重要的开源项目之一,Linux,也是这样的。普通开发者从软件仓库clone下代码,然后写入代码,做一个Patch, 最后用E-mail发给Linux Kernel的维护者就好了。Git最初转载 2015-04-27 13:11:37 · 335 阅读 · 0 评论 -
嵌入式linux配置静态IP
设定IP$sudo vi /etc/network/interfacesauto loiface lo inet loopback auto eth0iface eth0 inet staticaddress 192.168.1.221netmask 255.255.255.0gateway 192.168.1.1 保存,并关闭gedit。转载 2015-04-27 15:01:11 · 5585 阅读 · 0 评论 -
linux下普通用户登录后自动切换到root用户
我们使用SSH或者telnet登录远端的Linux服务器的时候,假设登录使用的用户名是aaa,登录成功后,会直接进入/home/aaa/目录下,但这时使用的用户名还是aaa,如下所示:aaa@ubuntu:~$ pwd/home/aaaaaa@ubuntu:~$ whoamiaaa我们如果要使用root用户的话,必须使用sudo –s 进行切换,应为转载 2015-04-27 15:22:23 · 4006 阅读 · 0 评论 -
trap用法
在有些情况下,我们不希望自己的shell脚本在运行时刻被中断,比如说我们写得shell脚 本设为某一用户的默认shell,使这一用户进入系统后只能作某一项工作,如数据库备份, 我 们可不希望用户使用ctrl+C之类便进入到shell状态,做我们不希望做的事情。这便用到了信号 处理。 kill -l可以列出系统的信号名称,如下: -bash-3.00# kill -l 1转载 2015-03-17 13:22:39 · 1602 阅读 · 0 评论 -
Makefile中指示符“include”、“-include”和“sinclude”的区别
指示符“include”、“-include”和“sinclude” 如果指示符“include”指定的文件不是以斜线开始(绝对路径,如/usr/src/Makefile...),而且当前目录下也不存在此文件;make将根据文件名试图在以下几个目录下查找:首先,查找使用命令行选项“-I”或者“--include-dir”指定的目录,如果找到指定的文件,则使用这个文件;否则继续依此搜转载 2015-04-16 22:40:55 · 405 阅读 · 0 评论 -
linux内核的打印printk的级别
有时调试内核模块,打印信息太多了,可以通过修改/proc/sys/kernel/printk文件内容来控制。默认设置是6 4 1 7# cat /proc/sys/kernel/printk7 4 1 7该文件有四个数字值,它们根据日志记录消息的重要性,定义将其发送到何处。关于不同日志级别的更多信息,请查阅syslog(2)联机帮助。上转载 2015-07-09 16:40:33 · 689 阅读 · 0 评论 -
linux控制台超时自动注销
Almost everyone (not just system administrators) are forgetful and used to leave theLinux/Unix login session open (without logging out). So, how to make sure all the Linux servers will automat转载 2015-06-04 09:55:53 · 4989 阅读 · 0 评论 -
硬中断与软中断
一、什么是中断? 在计算机科学中,中断是指由于接收到外围硬件(相对于CPU与内存而言)的异步信号或者来自软件的同步信号而进行相应的硬件/软件处理。二、什么是硬中断? 显然,外围硬件发给CPU或者内存的异步信号就是硬中断信号。简言之:外设对CPU的中断三、什么是软中断? 由软件本身发给操作系统内核的中断信号,称之为软中断。通常是由硬中断转载 2015-06-16 09:38:34 · 685 阅读 · 0 评论 -
linux 只获取dns服务器地址
有一款设备需要使用静态ip,但是还要用到dns解析域名。我的想法是定时去查看/etc/resolve.conf文件,如果为空,则获取一次dns。在嵌入式linux中,我们使用busybox的udhcpc来获取ip,netmask,网关和dns。运行udhcpc,在获取到ip,dns等信息后并不会直接更细系统的相关信息,而是调用一个脚本去设置。如本次使用的/etc/udhcpc.d/原创 2017-01-22 10:04:28 · 3172 阅读 · 0 评论 -
patch学习
@@ -1,7 +1,7 @@ ##表示下面列的内容为旧文件的1到7行和新文件的1到7行;如下面的例子,旧文件比新文件多一行。diff -urN u-boot-1.1.6/common/env_nand.c u-boot-1.1.6_jz2440/common/env_nand.c--- u-boot-1.1.6/common/env_nand.c 2006-11-02 22:15:转载 2016-10-25 19:40:14 · 420 阅读 · 0 评论 -
linux重定向
在了解重定向之前,我们先来看看linux 的文件描述符。linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作。 用户可以自定义文件描述符范围是:3-num,这个最大数字,跟用户的:ulimit –n 定义数字有关系,不能超过最大值。 linux启动后,会默认打开3个文件描述符,分别是:标准输转载 2016-10-14 13:05:17 · 296 阅读 · 0 评论 -
多个进程对同一文件写入的问题
转载。讨论关于并发环境下,多个进程对同一文件写入的问题,我们会涉及到文件共享的知识。在开始之前,我们先讨论一些有关文件共享的知识。1. 文件共享 Unix系统支持在不同进程间共享打开的文件。为此,我们先介绍一下内核用于所有I/O的数据结构。注意,下面的说明是概念性的,与特定的实现可能匹配,也可能不匹配。 内核使用三种数据结构表示打开的文件,它们之间的关系决定了在文件共享方面转载 2016-10-14 10:00:14 · 10839 阅读 · 0 评论 -
Makefile 中:= ?= += =的区别
在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验新建一个Makefile,内容为:ifdef DEFINE_VRE VRE = “Hello World!”elseendififeq ($(OPT),define) VRE ?= “Hello World! First!”endifif转载 2016-09-06 14:41:57 · 256 阅读 · 0 评论 -
linux 内存释放
总有很多朋友对于Linux的内存管理有疑问,之前一篇[转]理解Linux的性能日志似乎也没能清除大家的疑虑。而在新版核心中,似乎对这个问题提供了新的解决方法,特转出来给大家参考一下。最后,还附上我对这方法的意见,欢迎各位一同讨论。 当在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching。这个问题,貌似有不少人在问,不过都没有转载 2016-08-29 10:34:17 · 575 阅读 · 0 评论 -
/proc/$pid/status内容说明
/proc/9744$ cat statusName: gedit /*进程的程序名*/State: S (sleeping) /*进程的状态信息,具体参见http://blog.chinaunix.net/u2/73528/showart_1106510.html*/Tgid: 9744 /*线程组号*/Pid: 9744 /*进程pid*/PPid: 7672 /*父进程的转载 2016-07-26 09:16:29 · 669 阅读 · 0 评论 -
什么是真正的实时操作系统
什么是真正的实时操作系统做嵌入式系统开发有一段时间了,做过用于手机平台的嵌入式Linux,也接触过用于交换机、媒体网关平台的VxWorks。实际应用后回过头来看理论,才发现自己理解的肤浅,也发现CSDN上好多同学们都对实时、嵌入式这些概念似懂非懂。毕竟如果不做类似的产品,平时接触的机会很少,即使做嵌入式产品开发,基本也是只管调用Platform Team封装好的API。所以,在此总结一下这转载 2015-12-16 21:03:24 · 2594 阅读 · 0 评论 -
linux内核的三种调度方法
1,SCHED_OTHER 分时调度策略,2,SCHED_FIFO实时调度策略,先到先服务3,SCHED_RR实时调度策略,时间片轮转 实时进程将得到优先调用,实时进程根据实时优先级决定调度权值,分时进程则通过nice和counter值决定权值,nice越小,counter越大,被调度的概率越大,也就是曾经使用了cpu最少的进程将会得到优先调度。SHCED_RR和转载 2015-12-16 21:06:45 · 576 阅读 · 0 评论 -
Linux操作系统实时性
一、实时系统基本概念什么是实时系统,POSIX作了这样的定义:指能够在限定的响应时间内提供所需水平服务的系统。另个一被Donald Gillies提出定义为:一个实时系统是指计算的正确性不仅取决于程序的逻辑正确性,也取决于结果产生的时间,如果系统的时间约束条件得不到满足,将会发生系统出错。实时系统对响应时间有严格要求。实时操作系统(RTOS,RealTime Operation Syste转载 2015-12-16 16:52:08 · 1097 阅读 · 0 评论 -
linux命令行设置时间
在ubuntu12.04系统上使用系统设置无法更改时间,不知到怎么回事,干脆通过命令行修改。轻松解决问题。1、man手册1.1、调用格式 date [选项] ... [+格式] date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 1.2、功能 按格式显示时间或设置系统时间。 1.3、选转载 2015-11-13 14:53:56 · 1748 阅读 · 0 评论 -
tar 隐藏文件
通常使用的“tar -zcvf”命令不会打包压缩文件夹下到隐藏文件,下面到命令解决这个问题:tar -zcvf xxx.tar.gz `ls -a`转载 2015-03-30 10:02:26 · 6181 阅读 · 0 评论 -
ubuntu创建新用户命令(useradd和adduser)的使用方法和区别
在Ubuntu中创建新用户,通常会用到两个命令:useradd和adduser,虽然作用一样,但用法却不尽相同。本文接下来便为读者带来具体的解释。在Ubuntu中创建新用户,通常会用到两个命令:useradd和adduser。虽然作用一样,但用法却不尽相同:1. 使用useradd时,如果后面不添加任何参数选项,例如:#sudo useradd test创建出来的用户将是默认“三无转载 2015-04-08 15:06:32 · 1925 阅读 · 0 评论 -
Linux下passwd和shadow文件内容详解
一、/etc/passwd/etc/passwd 文件是一个纯文本文件,每行采用了相同的格式: name:password:uid:gid:comment:home:shell name 用户登录名 password 用户口令。此域中的口令是加密的,常用x表示。当用户登录系统时,系统对输入的口令采取相同的算法,与此域中的内容进行比较。如果此域为空,表明该用户登录时不需要口令。转载 2015-04-08 15:02:07 · 386 阅读 · 0 评论 -
配置文件/etc/inittab详解
第二部分:运行initinit的进程号是1,从这一点就能看出,init进程是系统所有进程的起点,Linux在完成核内引导以后,就开始运行init程序,。init程序需 要读取配置文件/etc/inittab。inittab是一个不可执行的文本文件,它有若干行指令所组成。在Redhat系统中,inittab的内容 如下所示(以“###"开始的中注释为笔者增加的): # #转载 2015-04-08 14:18:09 · 1547 阅读 · 0 评论 -
Ubuntu启动流程及定制
Linux系统主要通过以下步骤启动:1、读取MBR的信息,启动Boot Manager2、加载系统内核,启动/sbin/init进程 init进程是Linux的根进程,所有的系统进程都是它的子进程。3、init进程读取“/etc/inittab”(注:新版本找不到此文件)文件中的信息,并进入预设的运行级别,按顺序运行该运行级别对应文件夹下的脚本: /et转载 2015-03-17 10:30:47 · 521 阅读 · 0 评论 -
linux 单引号、双引号和反引号
单引号目的:为了保护文字不被转换.除了他本身.就是说除去单引号外,在单引号内的所有文字都是原样输出.被单引号用括住的内容,将被视为单一字串。在引号内的代表变数的$符号,没有作用,也就是说,他被视为一般符号处理,防止任何变量替换。1.[root@jszwl161 SP49EP9]# echo '$*> $*>2. [root@jszwl161 SP49EP9]# ec转载 2015-03-16 19:41:25 · 487 阅读 · 0 评论 -
ubuntu系统硬盘温度过高的解决方法
一.更改swap分区设置在ubuntu 里面,swappiness的值的大小对如何使用swap分区是有着很大的联系的。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。两个极端,对于 ubuntu的默认设置,这个值等于60,建议修改为10。具体这样做:转载 2014-07-24 10:38:21 · 2851 阅读 · 1 评论 -
自旋锁
自旋锁 ------------------------------------------------------ 自旋锁是专为防止多处理器并发而引入的一种锁,它在内核中大量应用于中断处理等部分(对于单处理器来说,防止中断处理中的并发可简单采用关闭中断的方式,不需要自旋锁)。 自旋锁最多只能被一个内核任务持有,如果一个内核任务试图请求一个已被争用(已经被持有)的自旋锁,那么这个转载 2014-07-24 14:46:04 · 511 阅读 · 0 评论 -
自旋锁的讨论
最近在看宋宝华的《设备驱动开发详解》第二版,看到自旋锁的部分,有些疑惑,所以来请教下大家。下面是我参考一些网络上的资料得出的一些想法,不知正确与否,记录下来大家讨论下:(1) linux上的自旋锁有三种实现: 1. 在单cpu,不可抢占内核中,自旋锁为空操作。 2. 在单cpu,可抢占内核中,自旋锁实现为“禁止内核抢占”,并不实现“自旋”。转载 2014-07-24 14:49:07 · 878 阅读 · 0 评论 -
ubuntu 12.04创建多用户及开启telnet远程登录
ubuntu 12.04创建多用户及开启telnet远程登录 ubuntu 创建/删除用户及修改密码 以root帐户登录, 创建新用户: 运行:$ sudo adduser tete 正在添加用户"tete"... 正在添加新组"tete" (1002)... 正在添加新用户"tete" (1002) 到组"tete"... 创建主目录转载 2014-07-16 11:05:52 · 1502 阅读 · 0 评论 -
ubuntu 12.04搭建tftp服务器
第1步:安装tftp所需的软件。首先需要安装tftp-hpa,tftpd-hpa,前者是客户端,后者是服务程序,在终端下输入 sudo apt-get install tftp-hpa tftpd-hpa,安装tftp-hpa和tftpd-hpa。然后还需要安装xinetd,在终端下输入 sudo apt-getinstall xinetd,安装好xinetd 第2步:转载 2014-07-16 16:40:38 · 881 阅读 · 0 评论 -
linux 启动失败--Stopping System V runlevel compatibility-
在“Stopping System V runlevel compatibility”时停了很长时间,然后到“Stopping Mount network filesystems”时彻底停了。http://www.cnblogs.com/ma6174/archive/2012/09/05/2672414.html 解决方案: 在这个界面上按"++"进入终端字符模转载 2014-07-20 23:19:12 · 1638 阅读 · 0 评论 -
ubuntu 12.04配置NFS
#sudo apt-get install nfs-kernel-serverubuntu12.04中的已经是最新版本了,无需安装打开/etc/exports文件,在末尾加入:/home/kevin *(rw,sync,no_root_squash)注:nfs允许挂载的目录及权限,在文件/etc/exports中进行定义,各字段含义如下:/home/kevin:要共享的目录转载 2014-07-17 11:02:06 · 492 阅读 · 0 评论