linux中$与()的一点使用疑惑解释】的更多相关文章

a=$(cat 1.sh)等价于a=`cat 1.sh` 而a=(cat 1.sh) 相当于定义一个a数组,内容为cat 1.sha=(`cat 1.sh`)相当于把1.sh里面的内容当成a的数组,a仍旧是一个数组a=$(`cat 1.sh`)此命令会报错,不能执行 [root@zejin240 chenzejin]# cat 1.sh hello world 2016better[root@zejin240 chenzejin]# a=(.sh) [root@zejin240 chenzeji…
转自:http://blog.chinaunix.net/uid-30339363-id-5116170.html 原文地址:Linux下函数调用堆栈帧的详细解释 作者:cssjtuer http://www.ibm.com/developerworks/cn/linux/l-overflow/ 本文首先向读者讲解了Linux下进程地址空间的布局以及进程堆栈帧的结构,然后在此基础上介绍了Linux下缓冲区溢出攻击的 原理及对策. 前言 从逻辑上讲进程的堆栈是由多个堆栈帧构成的,其中每个堆栈帧都对…
Linux常用命令英文全称与中文解释Linux系统(转)   Linux常用命令英文全称与中文解释Linux系统 man: Manual 意思是手册,可以用这个命令查询其他命令的用法. pwd:Print working directory 意思是密码. su:Swith user 切换用户,切换到root用户 cd:Change directory 切换目录 ls:List files 列出目录下的文件 ps:Process Status 进程状态 mkdir:Make directory 建…
Linux shell中2>&1的含义解释 (全网最全,看完就懂) https://blog.csdn.net/zhaominpro/article/details/82630528    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/zhaominpro/article/details/82630528 A.首先了解下1和2在Linux中代表什么 在Linux系统中0 1 2是一个文件描述符 名称 代码 操作符 Java中表示 Linux…
https://blog.csdn.net/qq_40334837/article/details/83819735 Linux常用命令英文全称与中文解释 apt: Advanced Packaging Tool 高级包装工具 cp: Copy file  复制文件 cat: Concatenate  串联 cd:Change directory 切换目录 chmod: Change mode 改变模式 chown: Change owner 改变所有者 chgrp: Change group…
 一.fork入门知识 一个进程,包含代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程差点儿全然同样的进程,也就是两个进程能够做全然同样的事,但假设初始參数或者传入的变量不同,两个进程也能够做不同的事.    一个进程调用fork()函数后,系统先给新的进程分配资源,比如存储数据和代码的空间.然后把原来的进程的全部值都拷贝到新的新进程中,仅仅有少数值与原来的进程的值不同.相当于克隆了一个自己. 我们来看一个样例: /* * fork_test.c * version…
GDB 命令详细解释 Linux中包含有一个很有用的调试工具--gdb(GNU Debuger),它可以用来调试C和C++程序,功能不亚于Windows下的许多图形界面的调试工具. 和所有常用的调试工具一样,gdb提供了以下功能: # 监视程序中变量的值 # 在程序中设置断点 # 程序的单步执行 在使用gdb前,必须先载入可执行文件,因为要进行调试,文件中就必须包含调试信息,所以在用gcc或cc编译时就需要用-g参数来打开程序的调试选项. 调试开始时,必须先载入要进行调试的程序,可以用以下两种方…
Linux的驱动程序注冊过程,大致分为两个步骤: 模块初始化 驱动程序注冊 以下以内核提供的演示样例代码pci-skeleton.c,具体说明一个pci设备驱动程序的注冊过程.其它设备的驱动代码注冊过程基本同样,大家可自行查看.使用的内核代码版本号是2.6.38. 1. 模块初始化 1.1 驱动程序入口 全部的设备驱动程序都会有例如以下两行代码: 1922 module_init(netdrv_init_module); 1923 module_exit(netdrv_cleanup_modul…
前言: tomcat理论并发处理能力, 大概500左右吧, 即使通过一些优化, 能提升一点, 但是, 并不能达到质变, 最多涨几百. 对于非互联网项目, 确实够用了. 在企业中, 如果要达到500并发量, 首先你得有超过500个人吧, 罒ω罒, 其次, 就算你超过500人, 同时访问的可能性还是很低的. 但是对于互联网项目, 500并发, 确实低了点. 如果想要提高并发量, 是不是可以换一个服务器, 或者说, 在tomcat集群前面, 加一个牛B的可接收高并发的服务器, 然后让这个服务器, 分配…
[net] ######################## cat /proc/sys/net/ipv4/tcp_syncookies # 默认值:1 # 作用:是否打开SYN Cookie功能,该功能可以防止部分SYN攻击 net.ipv4.tcp_syncookies = 1   ######################## cat /proc/sys/net/ipv4/ip_local_port_range # 默认值:32768   61000 # 作用:可用端口的范围 net.i…
在linux下我们首先要获取root权限 当然也可是使用 sudo命令 接着让我们来安装sqlite3吧!博主当然是已经安装好了! 别急,的确你是安装好了sqlite3但是有一点必须要记住,你还没有安装对应的api库,所谓的api库就是在你使用c接口编程时导致的各种没有定义和找不到! 于是我们接着安装好它的库,我的是已经安装好后的了! OK,下面便到了我们理解SQL语言的步骤了! sql功能 数据定义(DDL):用户定义.删除和修改数据模式 数据查询(DQL):用于查询数据 数据操纵(DML):…
Linux中find常见用法示例 ·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \; find命令的参数: pathname: find命令所查找的目录路径.例如用.来表示当前目录,用/来表示系统根目录.-print: find命令将匹配的文件输出到标准输出.-exec: find命令对匹配的文件执行该参数所给出的shell命令.相应命令的形式为'command' { } \;,注意{ }和\:之间的…
大家 都知道在 linux 通过源代码 安装程序 1. 下载源码 2.解压缩 3. 执行 ./configure 4. make 5 make install make 命令 是对 makefile 文件 操作,make install 是安装命令,那么 ./configure 是 干什么呢? ./configure 其实 就是 生成 makefile 文件 生成 makefile 主要通过 autoscan,aclocal,automake,autoconf 命令 ,这些命令 属于 libto…
这些都是比较有实用性的系统配置,收藏下,以备不时之需!以下是etc下重要配置文件解释: 1./etc/hosts  #文件格式: IPaddress hostname aliases #文件功能: 提供主机名到IP地址的对应关系,建议将自己经常使用的主机 # 加入此文件中,也可将没有DNS记录的机器加入到此文件中, 会方便网络应用 系统默认有以下两条,建议保留: #cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost…
目录 /bin 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里. /etc 存放系统管理和配置文件 /home 存放所有用户文件的根目录,是用户主目录的基点, 比如用户user的主目录就是/home/user,可以用~user表示 /usr 用于存放系统应用程序,比较重要的目录/usr/local 本地系统 管理员软件安装目录(安装系统级的应用). 这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录. /usr/x11r6 存放x window的目录 /usr/b…
上一节拒绝造轮子!如何移植并使用Linux内核的通用链表(附完整代码实现)我们在分析Linux内核链表的时候注意到内核在求解结构体偏移的时候巧妙的使用了container_of宏定义,今天我们来详细剖析下内核到底是如何求解结构体成员变量的地址的. @ 目录 结构体在内存中是如何存储的 container_of宏 typeof (((type *)0)->member) const typeof(((type )0)->member)__mptr = (ptr); offsetof(type,…
IO多路复用模型广泛的应用于各种高并发的中间件中,那么区别于其他模式他的优势是什么.其核心设计思想又是什么.其在Linux中是如何实现的? I/O模型 I/O模型主要有以下五种: 同步阻塞I/O:I/O操作将同步阻塞用户线程 同步非阻塞I/O:所有操作都会立即返回,但需要不断轮询获取I/O结果 I/O多路复用:一个线程监听多个I/O操作是否就绪,依然是阻塞I/O,需要不断去轮询是否有就绪的fd 信号驱动I/O:当I/O就绪后,操作系统发送SIGIO信号通知对应进程,避免空轮询导致占用CPU(li…
最近操作系统的实验要用到fork,于是去搜索了一下资料,很幸运地在博客中找到一篇深度好文: http://blog.csdn.net/jason314/article/details/5640969 讲的非常详细,分析得很好,读完能够对fork有个较好的理解.这里就上面的博客中提到的个别代码进行尝试和分析. 首先是进阶知识的第一份代码,我在自己的机子上尝试了一下,试着看看运行结果并进行分析. #include <stdio.h> #include <unistd.h> int ma…
在Linux/Unix类操作系统上的GUI应用程序使用X Window系统(X Window System),它旨在允许多个用户使用窗口化的应用程序通过网络访问计算机. DISPLAY环境变量用来设置将图形显示到何处.直接登录图形界面或者登录命令行界面后使用startx启动图形,DISPLAY环境变量自动设置为:0:0,此时可以打开终端,输入图形程序的名称(比如xclock)来启动程序, 图形将显示在本地窗口上. 在终端中输入可以通过如下命令DISPLAY设置情况. 1.echo $DISPLA…
我一直以来有一个误解,那就是在终端运行某个程序时,按下Ctrl + D时我误以为就是杀死了这个进程,今天才知道原来不是.比如我利用libevent在Linux环境下写了一个网络监听程序,当启动程序之后,就会一直监听本地的6789端口.如果此时按下Ctrl + D,其实这个进程不是结束了,而是暂停并转为后台运行了(Ctrl + C才是终止进程).当再次启动程序的时,就是因为端口被占用而出现“bind error”,请看: [xiaoku@localhost workspace]$ ls echoS…
最近在学习linux操作系统中的相关知识,在使用execlp系统调用时,发现了些有趣的东西. 首先,关于execlp函数的用法: int execlp(const char *file, const char *arg, ...); 第一个参数是,可执行文件的路径:第二个参数是,可执行程序的程序名,其余参数是命令函的参数,通常最后一个参数是一个空指针NULL(用来表示命令行数组的结尾). 例如:execlp("echo", "echo", "execute…
文件特殊权限的解释. -rwsr-xr-x = 4755 文件执行的时候,会以owner的身份来执行,就是setuid . 例如:-rwxr-xr-t 1 root wheel 0 7 9 18:24 test 这个test 是允许同组或其他人运行的,但是他运行的时候去可以控制那些root 属性的文件或设备. 再来一个特殊点点的东西.关于目录安全性的. #ls -la /tmp drwxrwxrwt 12 root wheel 1536 7 9 18:24 . drwxr-xr-x 17 roo…
最近用到了在linux系统中查找文件这个任务,学习了下面两篇文章,尤其是过滤结果信息的小技巧.记录下来,省得忘了再找. http://www.360doc.com/content/10/1110/10/2923250_68141946.shtml http://www.cnblogs.com/wanqieddy/archive/2011/06/09/2076785.html…
Linux内存机制-Cache与Buffer 在linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉内存不够用了,其实不然.这是Linux内存管理的一个优秀特性,在这方面,区别于windows的内存管理.主要特点是,无论物理内存有多大,linux都将其充分利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高Linux系统的数据访问性能.而windows是只在需要内存时,才为应用程序分配内存,并不能充分利用大容量的内存空间.换句话说,每增加一些物理内存,Lin…
linux进程系统 ■ 程序 vs. 进程 程序静态地存放在磁盘中.用户可以触发执行程序,被触发后的程序就存进内存中成为一个个体,即为进程. 有些进程(比如crond需要每分钟都扫描.守护进程等等)是常驻在内存中的 ■ 父与子 用父进程提供的接口执行新程序就生成了子进程.具体过程是父进程先fork()复制一个pid和自身不同,ppid和自身pid相同的进程,然后再把子进程的代码用exec()加载进该新进程的程序块部分,从而生成了一个子进程. ■ 工作管理(job control) ● 工作 一个…
一.Linux初始化服务 首先搞清楚四个概念: 进程:正在运行的程序,有自己独立的内存空间. 线程:是进程的下属单位,开销较进程小,没有自己独立的内存空间. 作业:由一系列进程组成,来完成某一项任务. 服务:本质就是守护进程,在后台运行,对各种请求进行响应. Linux经典的初始化守护进程: init:已被淘汰. Upstart int :已被淘汰. systemd:兼容了前面两种,现在主流Linux系统基本采用这种初始化进程. 基本操作: systemctl status .......  查…
      早在以前,我们就知道,CPU调度的基本单位是线程,而进程是拥有资源的基本单位,进程是用进程描述符表示的,那么线程是怎么实现和表示的呢?       线程机制是现代编程技术中常用的一种抽象概念.该机制提供了在同一程序内共享内存地址空间运行的一组线程.这些线程还可以共享打开的文件和其他的资源(都是指进程的).线程机制支持并发程序设计技术,在多处理器系统上,它也能保证真正得并行处理.      下面,首先看下面张图:(画的很不好看,很是惭愧)       这张图中,可以看出进程和线程是一样…
man: Manual 意思是手册,可以用这个命令查询其他命令的用法. pwd:Print working directory 意思是密码. su:Swith user 切换用户,切换到root用户 cd:Change directory 切换目录 ls:List files 列出目录下的文件 ps:Process Status 进程状态 mkdir:Make directory 建立目录 rmdir:Remove directory 移动目录 mkfs: Make file system 建立…
转自:http://blog.sina.com.cn/s/blog_6929134b0100tdn8.html 自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名. 由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠是非常必要的,自旋锁的效率远高于互斥锁. 信号量和读写信号量适合于保持时间较长的情况,它们会导致调用者睡眠,因此只能在进程上下文使用(_try…
首先使用fdisk –l命令查看sd卡的分区息 可以看到,sd卡有三个分区,第一个分区是FAT32系统,主要存放内核img文件和dtb文件,第二个分区是Linux系统分区,第三个分区格式未知,实际是Uboot镜像存放的分区. 挂载FAT32分区到系统中. 首先建立一个文件夹用来挂载该分区 mkdir /sdcard 然后使用mount命令挂载该分区到sdcard路径下 mount –t vfat /dev/mmcblk0p1 /sdcard 然后使用ls命令查看该路径下,可以看到已有的文件.…