linux 命令

ls -l filename
解释:-rwxr-xr--  2  ftp  root  70  jul 28  21:12  file
      权限     文件硬链接数或目录子目录数 所属用户 所属用户组 文件大小  最后修改时间  文件名 
· 若为[ d ],则是目录,例如上面的tmp/行;
· 若为[ - ],则是文件,例如上面的.bashrc行;
· 若是[ l ],则表示为链接文件(link file);
· 若是[ b ],则表示为设备文件中可供储存的接口设备;
· 若是[ c ],则表示为设备文件中的串行端口设备,例如键盘、鼠标
ln [ -f | -n] [ -s ] SourceFile [ TargetFile ]|
-f 促使 ln 命令替换掉任何已经存在的目的路径。如果目的路径已经存在,而没有指定 -f 标志,ln 命令不会创建新的链接,而是向标准错误写一条诊断消息并继续链接剩下的 SourceFiles。 
-n 指定,如果链接是一个现有的文件,那么不要覆盖文件的内容。 -f 标志重设了这个标志。这是缺省的行为。 
-s 促使 ln 命令创建符号链接。符号链接中包含了它所链接的文件的名字。当对链接执行打开操作的时候,会使用到引用文件。对符号链接的 stat 调用会返回链接的目标文件;必须完成lstat 调用来获取链接的信息。可以使用 readlink 调用来读取符号链接的内容。符号链接可能跨越文件系统,指向目录。 
注意:当为 -s 标志指定 SourceFile 参数的时候,必须使用绝对路径。如果没有指明绝对路径,那么当 SourceFile 和 TargetFile 参数位于不同的目录中的时候,可能会发生意外的结果。在创建符号链接之前,不需要存在源文件。 

本文来源于时光漂流瓶 http://www.9usb.net , 原文地址: http://www.9usb.net/200812/linux-ln.html 
标准输入(standard input)的文件描述符是 0
标准输出(standard output)是 1
标准错误(standard error)是 2
>和>>都是重定向输出
<和<<都是重定向输入
grep (global search regular expression(RE) and print out the line)
用法:grep [opt] pattern [filename]
eg:grep -i‘aa’main.c
df -h /proj/mtkxxxxx       check your disk storage 
linux shell if 的使用方法:
if[条件测试语句]
then
action
elif[条件测试语句]
action
else
action
fi
-b 当file存在并且是块文件时返回真 
-c 当file存在并且是字符文件时返回真 
-d 当pathname存在并且是一个目录时返回真 
-e 当pathname指定的文件或目录存在时返回真 
-f 当file存在并且是正规文件时返回真 
-g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真 
-h 当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效 
-k 当由pathname指定的文件或目录存在并且设置了“粘滞”位时返回真 
-p 当file存在并且是命令管道时返回为真 
-r 当由pathname指定的文件或目录存在并且可读时返回为真 
-s 当file存在文件大小大于0时返回真 
-u 当由pathname指定的文件或目录存在并且设置了SUID位时返回真 
-w 当由pathname指定的文件或目录存在并且可执行时返回真。一个目录为了它的内容被访问必然是可执行的。 
-o 当由pathname指定的文件或目录存在并且被子当前进程的有效用户ID所指定的用户拥有时返回真。 
UNIX Shell 里面比较字符写法:
-eq 等于 
-ne 不等于 
-gt 大于 
-lt 小于 
-le 小于等于 
-ge 大于等于 
-z 空串 
= 两个字符相等 
!= 两个字符不等 
-n 非空串 
stty [-F device][SETTING] 或 stty [--file=device] [SETTING]
  -a, --all
  以可读的格式打印当前的所有设置
  -g, --save
  以终端可读的格式打印当前的所有设置
  -F, --file
  打开指定的设备,并用此设备作为输入来代替标准输入
  --help
  显示帮助并退出
  --version
  显示版本信息并退出
Linux下调优工具sysctl的
etc/sysctl.conf
1. 查看当前/proc下的值:相当cat /proc/sys/..
2. sysctl -w
   -w     Use this option when you want to change a sysctl setting.
   注意,这个参数是用来改变当前值即虚拟文件系统/proc下的值.
3. sysctl -p
-p     Load  in  sysctl settings from the file specified or /etc/sysctl.conf if none given.  Specifying - as filename means reading data from standard input.
注: 指定要加载的配置文件并显示参数.如果不指定加载文件的路径,默认为:/etc/sysctl.conf
比如,如果你添加了某个参数到/etc/sysctl.conf,
echo "net.ipv4.tcp_keepalive_time=20">>/etc/sysctl.conf 
那么运行sysctl -p将重新加载配置文件,这样新增加到配置文件的参数便能及时生效了.并且还会显示所有该配置文件中的参数.
 
4. sysctl -a
 -a     Display all values currently available.
显示所有可用的参数.当你不知道某个参数的全称时比较有用.

diff
diff [options] 源文件 目标文件
diff用于列出两个文件的不同之处,指示如何由源文件变为目标文件,可以用重定向生成补丁文件,注意:diff只能用于比较文本文件。常用选项:
-c,输出一个基于上下文的diff,即提供每处修改的前后机会内容,这样patch命令可以在打补丁前验证上下文是否匹配,而补丁文件也更容易阅读。
-b,忽略空格引起的变化
-B,忽略插入/删除空行引起的变化
-i,忽略大小写
-N,在比较目录时,如果一个文件只在其中一个目录中找到,那它被视为在第二个目录中是一个空文件
-r,在比较目录时,递归比较所有子目录
-u,使用统一的输出格式
patch
patch [options]  源文件 补丁文件
patch用于根据补丁文件修改源文件,它会直接改动源文件,打补丁前请注意备份。常用选项:
-R,反向补丁,将已经打了补丁的文件恢复到原来的样子
-p[num],忽略前几层目录,目录的层数由num指定
例1:比较两个文件
file1:
this is line1   
this is line2    
this is line3   
this is line4  
file2:
this is line1   
this is line2 hello   
this is line3   
this is line4   
this is line5  
执行:
diff file1 file2 > file.patch  
生成补丁文件file.patch:
2c2   
< this is line2    
---   
> this is line2 hello   
4a5   
> this is line5  
对file1打补丁: 
patch file1 file.patch  
file1的内容就变成了file2,如果想把file1变为原来的样子,执行:
patch -R file1 file.patch   
例2:比较两个目录
在工作路径下有两个目录:doc1和doc2。
执行diff命令,生成补丁文件patch:
diff -Nur doc1 doc2 > doc.patch  
用patch工具为doc1打补丁:
bash# cd doc1   
bash# patch -p1 < ../doc.patch 
本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2011-07/39533.htm

mount [-t vfstype] [-o options] device dir
1.-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有: 
光盘或光盘镜像:iso9660 
DOS fat16文件系统:msdos 
Windows 9x fat32文件系统:vfat 
Windows NT ntfs文件系统:ntfs 
Mount Windows文件网络共享:smbfs 
UNIX(LINUX) 文件网络共享:nfs 

2.-o options 主要用来描述设备或档案的挂接方式。常用的参数有: 
loop:用来把一个文件当成硬盘分区挂接上系统 
ro:采用只读方式挂接设备 
rw:采用读写方式挂接设备 
iocharset:指定访问文件系统所用字符集 

3.device 要挂接(mount)的设备。 

4.dir设备在系统上的挂接点(mount point)。
eg:mount -t vfat -o iocharset=cp936 /dev/sdc5 /mnt/usbhd2 

5 对应函数
#include <sys/mount.h>
int mount(const char *source, const char *target,const char *filesystemtype, unsigned long mountflags, const void *data);
int umount(const char *target);
int umount2(const char *target, int flags);
参数:   
source:将要挂上的文件系统,通常是一个设备名。 
target:文件系统所要挂在的目标目录。 
filesystemtype:文件系统的类型,可以是"ext2","msdos","proc","nfs","iso9660" 。。。
mountflags:指定文件系统的读写访问标志,可能值有以下
MS_BIND:执行bind挂载,使文件或者子目录树在文件系统内的另一个点上可视。
MS_DIRSYNC:同步目录的更新。
MS_MANDLOCK:允许在文件上执行强制锁。
MS_MOVE:移动子目录树。
MS_NOATIME:不要更新文件上的访问时间。
MS_NODEV:不允许访问设备文件。
MS_NODIRATIME:不允许更新目录上的访问时间。
MS_NOEXEC:不允许在挂上的文件系统上执行程序。
MS_NOSUID:执行程序时,不遵照set-user-ID 和 set-group-ID位。
MS_RDONLY:指定文件系统为只读。
MS_REMOUNT:重新加载文件系统。这允许你改变现存文件系统的mountflag和数据,而无需使用先卸载,再挂上文件系统的方式。
MS_SYNCHRONOUS:同步文件的更新。
MNT_FORCE:强制卸载,即使文件系统处于忙状态。
MNT_EXPIRE:将挂载点标志为过时。
data:文件系统特有的参数。
    
返回说明:   
成功执行时,返回0。失败返回-1,errno被设为以下的某个值   
EACCES:权能不足,可能原因是,路径的一部分不可搜索,或者挂载只读的文件系统时,没有指定 MS_RDONLY 标志。
EAGAIN:成功地将不处于忙状态的文件系统标志为过时。
EBUSY:一. 源文件系统已被挂上。或者不可以以只读的方式重新挂载,因为它还拥有以写方式打开的文件。二. 目标处于忙状态。
EFAULT: 内存空间访问出错。
EINVAL:操作无效,可能是源文件系统超级块无效。
ELOOP :路径解析的过程中存在太多的符号连接。
EMFILE:无需块设备要求的情况下,无用设备表已满。
ENAMETOOLONG:路径名超出可允许的长度。 
ENODEV:内核不支持某中文件系统。
ENOENT:路径名部分内容表示的目录不存在。
ENOMEM: 核心内存不足。 
ENOTBLK:source不是块设备。 
ENOTDIR:路径名的部分内容不是目录。 
EPERM : 调用者权能不足。
ENXIO:块主设备号超出所允许的范围。

设置环境变量
export PATH=$PATH:路径1:路径2:....
export  $PATH="$PATH:路径1:路径2:...” 
sed [options] \'{command}\' [filename] 
options: 1)-f,读取一script。2)"-n"不显示。3)“-P”覆盖
\'{command}\':    表中用法:1):\'s/{old value}/{new value}/\' 
            全局用法:2):\'s/{old value}/{new value}/g\'
            匹配在s前加匹配符。
nm与readelf 
nm:读.a文件中的symbol
readelf:都.so中的symbol。
find path [opt] filename
eg:find ./ -name dtv*.ko
awk [ -F re] [parameter...] ['prog'] [-f progfile][in_file...]
参数说明:

-F re:允许awk更改其字段分隔符。
parameter: 该参数帮助为不同的变量赋值。
'prog': awk的程序语句段。这个语句段必须用单拓号:'和'括起,以防被shell解释。这个程序语句段的标准形式为:
'pattern {action}'
其中pattern参数可以是egrep正则表达式中的任何一个,它可以使用语法/re/再加上一些样式匹配技巧构成。与sed类似,你也可以使用","分开两样式以选择某个范围。关于匹配的细节,你可以参考附录,如果仍不懂的话,找本UNIX书学学grep和sed(本人是在学习ed时掌握匹配技术的)。action参数总是被大括号包围,它由一系统awk语句组成,各语句之间用";"分隔。awk解释它们,并在pattern给定的样式匹配的记录上执行其操作。与shell类似,你也可以使用“#”作为注释符,它使“#”到行尾的内容成为注释,在解释执行时,它们将被忽略。你可以省略pattern和action之一,但不能两者同时省略,当省略pattern时没有样式匹配,表示对所有行(记录)均执行操作,省略action时执行缺省的操作--在标准输出上显示。
-f progfile:允许awk调用并执行progfile指定有程序文件。progfile是一个文本文件,他必须符合awk的语法。
in_file:awk的输入文件,awk允许对多个输入文件进行处理。值得注意的是awk不修改输入文件。如果未指定输入文件,awk将接受标准输入,并将结果显示在标准输出上。awk支持输入输出重定向

awk的记录、字段与内置变量:
前面说过,awk处理的工作与数据库的处理方式有相同之处,其相同处之一就是awk支持对记录和字段的处理,其中对字段的处理是grep和sed不能实现的,这也是awk优于二者的原因之一。在awk中,缺省的情况下总是将文本文件中的一行视为一个记录,而将一行中的某一部分作为记录中的一个字段。为了操作这些不同的字段,awk借用shell的方法,用$1,$2,$3...这样的方式来顺序地表示行(记录)中的不同字段。特殊地,awk用$0表示整个行(记录)。不同的字段之间是用称作分隔符的字符分隔开的。系统默认的分隔符是空格。awk允许在命令行中用-F re的形式来改变这个分隔符。事实上,awk用一个内置的变量FS来记忆这个分隔符。awk中有好几个这样的内置变量,例如,记录分隔符变量RS、当前工作的记录数NR等等,本文后面的附表列出了全部的内置变量。这些内置的变量可以在awk程序中引用或修改,例如,你可以利用NR变量在模式匹配中指定工作范围,也可以通过修改记录分隔符RS让一个特殊字符而不是换行符作为记录的分隔符。

例:显示文本文件myfile中第七行到第十五行中以字符%分隔的第一字段,第三字段和第七字段:
eg awk -F % 'NR==7,NR==15{printf $1 $3 $7}'

mkdir [-m] [-p] 目录名选项介绍:
    -m: 对新建目录设置存取权限,也可以用chmod命令设置;
    -p: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
who ,要看目前有谁在线
netstat -a,网络的联机状态
ps -aux
cat 由第一行开始显示文件内容
tac 从最后一行开始显示,可以看出,tac是cat的倒写
more 一页一页地显示文件内容
less 与more类似,但其优点是,可以往前翻页
head 只看头几行
tail 只看末尾几行
nl 显示时同时输出行号
od 以二进制方式读取文件内容


* 读取*.so的symbol
nm
readelf -s
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值