每天一个linux命令(八月)

来源:互联网 发布:淘宝店铺图片轮播尺寸 编辑:程序博客网 时间:2024/05/16 08:03

2014-08-31

 ln 为文件建立链接 (make links) 链接分为两种 : 硬链接(hard link)与软链接(symbolic link) 软链接:    1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式    2.软链接可以 跨文件系统 ,硬链接不可以    3.软链接可以对一个不存在的文件名进行链接    4.软链接可以对目录进行链接 硬链接:    1.硬链接,以文件副本的形式存在。但不占用实际空间。    2.不允许给目录创建硬链接    3.硬链接只有在同一个文件系统中才能创建 平常软链接使用比较多 常用参数:     -b 删除,覆盖以前建立的链接     -d 允许超级用户制作目录的硬链接     -f 强制执行     -i 交互模式,文件存在则提示用户是否覆盖     -n 把符号链接视为一般目录     -s 软链接(符号链接)     -v 显示详细的处理过程 实例: 1. ls -s file newfile 给文件创建软链接 2. ls file newfile 给文件创建软链接 3. 删除链接使用rm 但注意删除链接目录时是目录名称,不要带/  如rm -rf dirname 而不是rm -rf dirname/

2014-08-30

 chown将指定文件的拥有者改为指定的用户或组(change file owner and group) 命令格式  chown [选项] [所有者]:[组]  文件名 实例: 1. chown apache:apache file  改变拥有者和群组 2. chown root: file 改变文件所有者 3. chown :root filw 改变组

2014-08-29

 每天一个linux命令 chmod 改变linux系统文件或目录的访问权限 (change file mode bits) 选择参数:     <权限范围>+<权限设置> 使权限范围内的目录或者文件具有指定的权限     <权限范围>-<权限设置> 删除权限范围的目录或者文件的指定权限     <权限范围>=<权限设置> 设置权限范围内的目录或者文件的权限为指定的值     权限范围:     u :目录或者文件的当前的用户     g :目录或者文件的当前的群组     o :除了目录或者文件的当前用户或群组之外的用户或者群组     a :所有的用户及群组     权限代号:     r :读权限,用数字4表示     w :写权限,用数字2表示     x :执行权限,用数字1表示     - :删除权限,用数字0表示 实例:    1. chmod a+r file 将文件添加可读权限,保留其他权限,a也可省略    2. chmod 444 file 只有可读权限    3. chmod a-r file 将文件去掉可读权限    4. chmod 777 file 添加所有权限    5. chmod +r+w+x file 同上

2014-08-28

 每天一个linux命令 了解文件属性 1.ls -lih  > 2491530 -rw-rw-r--. 1 apache apache 134 8月  26 10:39 tt.tar.gz  第一列:inode  inode 意思是索引节点。每个存储设备或存储设备的分区(存储设备是硬盘、软盘、U盘等等)被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是Block,Block是用来存储数据用的。而inode呢,就是用来存储这些数 据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等  第二列:文件种类和权限;  共10个字符,第一个字符如果是“-” 表示这是个文件, 如果是 “d” 表示的是文件夹,“l” 表示链接文件等等  后面9个字符分为3个字符一组共三组,分别表示user(文件所属用户) 的权限、group组用户的权限、other其它用户的权限。  rwx(Owner)r-x(Group)r-x(Other)  r表示读,w表示写,x的话示执行。各种权限代表的数字r (4) , w (2) , x (1)  第三列: 硬链接个数;  linux链接分二种,一种是软链接,一种是硬链接  软、硬链接最大的不同在于:当源文件删除后,软链接也就没用了,找不到源文件了,但硬链接还有,可以打开,相当于源文件的拷贝,  但可以同步更新。为什么可以同步更新呢?因为他们的inode是一样的  第四列: 属主;  第五列:所归属的组;  第六列:文件或目录的大小;  第七列和第八列:最后访问或修改时间;  第九列:文件名或目录名

2014-08-27

 每天一个linux命令 date 显示或设置时间(display or set date and time) 参数: -d datestr, --date datestr 显示由datestr描述的日期  -s datestr, --set datestr 设置datestr 描述的日期  -u, --universal 显示或设置通用时间 时间域  % H 小时(00..23)  % I 小时(01..12)  % k 小时(0..23)  % l 小时(1..12)  % M 分(00..59)  % p 显示出AM或PM  % r 时间(hh:mm:ss AM或PM),12小时  % s 从1970年1月1日00:00:00到目前经历的秒数  % S 秒(00..59)  % T 时间(24小时制)(hh:mm:ss)  % X 显示时间的格式(%H:%M:%S)  % Z 时区 日期域  % a 星期几的简称( Sun..Sat)  % A 星期几的全称( Sunday..Saturday)  % b 月的简称(Jan..Dec)  % B 月的全称(January..December)  % c 日期和时间( Mon Nov 8 14:12:46 CST 1999)  % d 一个月的第几天(01..31)  % D 日期(mm/dd/yy)  % h 和%b选项相同  % j 一年的第几天(001..366)  % m 月(01..12)  % w 一个星期的第几天(0代表星期天)  % W 一年的第几个星期(00..53,星期一为第一天)  % x 显示日期的格式(mm/dd/yy)   % y 年的最后两个数字( 1999则是99)  % Y 年(例如:1970,1996等) 实例: 1. date 显示时间 2. date +%D\ %X (设定格式必须有加号,短接符"-"、空格" "和冒号":" 为分隔符,其中空格前面加了转义符号"\") 3. date  +%Y-%m-%d\ %H:%M:%S 4. date -v +1d +%Y%m%d  显示加一天时间 5.  date -v -1m +%Y%m%d 显示加一个月时间 6.  date -v -1y +%Y%m%d  显示加一年时间

2014-08-26

 gzip 解压缩文件 参数:    -a或--ascii  使用ASCII文字模式。    -c或--stdout或--to-stdout  把压缩后的文件输出到标准输出设备,不去更动原始文件。    -d或--decompress或----uncompress  解开压缩文件。    -f或--force  强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。    -h或--help  在线帮助。    -l或--list  列出压缩文件的相关信息。    -L或--license  显示版本与版权信息。    -n或--no-name  压缩文件时,不保存原来的文件名称及时间戳记。    -N或--name  压缩文件时,保存原来的文件名称及时间戳记。    -q或--quiet  不显示警告信息。    -r或--recursive  递归处理,将指定目录下的所有文件及子目录一并处理。    -S<压缩字尾字符串>或----suffix<压缩字尾字符串>  更改压缩字尾字符串。    -t或--test  测试压缩文件是否正确无误。    -v或--verbose  显示指令执行过程 实例 1. gzip file 将file压缩成file.gz 2. gzip -dv file.gz 解压file.gz 3. gzip -l file.gz  查看file.gz的信息,但不解压 4. gzip -r file.tar 压缩tar文件

2014-08-25

 tar 打包压缩和解压文件(manipulate tape archives) 命令参数:    必要参数有如下:    -A 新增压缩文件到已存在的压缩    -B 设置区块大小    -c 建立新的压缩文件    -d 记录文件的差别    -r 添加文件到已经压缩的文件    -u 添加改变了和现有的文件到已经存在的压缩文件    -x 从压缩的文件中提取文件    -t 显示压缩文件的内容    -z 支持gzip解压文件    -j 支持bzip2解压文件    -Z 支持compress解压文件    -v 显示操作过程    -l 文件系统边界设置    -k 保留原有文件不覆盖    -m 保留文件不被覆盖    -W 确认压缩文件的正确性    可选参数如下:    -b 设置区块数目    -C 切换到指定目录    -f 指定压缩文件    --help 显示帮助信息    --version 显示版本信息 实例:    1. tar xvf xx.tar  解xx.tar包,并显示解包过程    2. tar cvf xx.tar file  将file打包到xx.tar中    3. tar zxvf xx.tar.gz 解压xx.tar.gz    4. tar zcvf xx.tar.gz file  将file文件压缩到xx.tar.gz中    5. tar zcvf tt.tar.gz -C donnie/ tt.txt    注意要搞清楚什么是打包,压缩,以什么方式压缩

2014-08-24

 du 查看目录文件所占的空间 (display disk usage statistics) 命令参数:     -a或-all  显示目录中个别文件的大小。    -b或-bytes  显示目录或文件大小时,以byte为单位。    -c或--total  除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。    -k或--kilobytes  以KB(1024bytes)为单位输出。    -m或--megabytes  以MB为单位输出。    -s或--summarize  仅显示总计,只列出最后加总的值。    -h或--human-readable  以K,M,G为单位,提高信息的可读性。    -x或--one-file-xystem  以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。    -L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。    -S或--separate-dirs   显示个别目录的大小时,并不含其子目录的大小。    -X<文件>或--exclude-from=<文件>  在<文件>指定目录或文件。    --exclude=<目录或文件>         略过指定的目录或文件。    -D或--dereference-args   显示指定符号链接的源文件大小。    -H或--si  与-h参数相同,但是K,M,G是以1000为换算单位。    -l或--count-links   重复计算硬件链接的文件。 实例: 1. du 显示目录或者文件所占空间 2. du file 显示指定文件所占空间 3. du -h test 方便阅读的格式显示 4. du -ch my|tail -n 1 看到当前目录下的my目录大小,但不想查看其他目录以及子目录

2014-08-23

 df 显示指定磁盘文件的可用空间 (df - report file system disk space usage) 命令参数:    必要参数:    -a 全部文件系统列表    -h 方便阅读方式显示    -H 等于“-h”,但是计算式,1K=1000,而不是1K=1024    -i 显示inode信息    -k 区块为1024字节    -l 只显示本地文件系统    -m 区块为1048576字节    --no-sync 忽略 sync 命令    -P 输出格式为POSIX    --sync 在取得磁盘信息前,先执行sync命令    -T 文件系统类型    选择参数:    --block-size=<区块大小> 指定区块大小    -t<文件系统类型> 只显示选定文件系统的磁盘信息    -x<文件系统类型> 不显示选定文件系统的磁盘信息    --help 显示帮助信息    --version 显示版本信息 实例:   1.df   2. df -i (了解inode:http://www.ruanyifeng.com/blog/2011/12/inode.html)   3. df -h

2014-08-22

 每天一个linux命令 xargs 将标准输入的资料分隔成为参数 (xargs - build and execute command lines from standard input) xargs是以空白为分割,xargs主要用分隔成参数并交给下一个命令执行 常用参数: 1. -a file 从文件中读入作为sdtin 2. -E flag flag必须是一个以空格分隔的标志,当xargs分析到含有flag这个标志的时候就停止。 3. -n num 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的。 4. -p 操作具有可交互性,每次执行comand都交互式提示用户选择,当每次执行一个argument的时候询问一次用户 5. -t 表示先打印命令,然后再执行。 6. -i 或者是-I,这得看linux支持了,将xargs的每项名称,一般是一行一行赋值给{},可以用{}代替 7. -L  从标准输入一次读取num行送给Command命令 8. -d delim 分隔符,默认的xargs分隔符是回车,argument的分隔符是空格,这里修改的是xargs的分隔符 9. -x exit的意思,如果有任何 Command 行大于 -s Size 标志指定的字节数,停止运行 xargs 命令 10. -r  no-run-if-empty 如果没有要处理的参数传递给xargsxargs 默认是带 空参数运行一次,     如果你希望无参数时,停止 xargs,直接退出,使用 -r 选项即可,其可以防止xargs 后面命令带空参数运行报错。 实例: 1. cat tt.txt|xargs echo 2. cat tt.txt|xargs -0 echo 3. xargs -a tt.txt echo 4. cat tt.txt|xargs -E 'cc' echo 5. cat tt.txt|xargs -n 1 echo 6. ls *.txt |xargs -t -i cp {} {}.bak 7. find . -name '*txt' |xargs cat 将管道传来的内容作为文件,交给cat执行

2014-08-21

 find命令之exec 1. find . -type f -exec ls -al {} \; 找出文件并用ls -al列出文件 ; (分号)表示command命令参数的结束,对于不同的系统,直接使用分号可能会有不同的意义, 所以使用转义符/在分号前明确说明。 {}表示文件名,也就是find前面处理过程中过滤出来的文件,用于command命令进行处理。  2. find . -name "*.tmp" -exec rm -rf {} /;  找出当前目录下的tmp文件,并删除  3 find . -name "*.java" -exec cp {} donnie \;  找出后缀为java的文件并copy到donnie的目录里  4. find . -name "*.java" -exec mv {} .. \;  找出后缀为java的文件并移动到上一目录

2014-08-20

find 查找文件(search for files in a directory hierarchy) 常用参数:     -name   按照文件名查找文件。     -perm   按照文件权限来查找文件。     -prune  使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。     -user   按照文件属主来查找文件。     -group  按照文件所属的组来查找文件。     -mtime -n +n  按照文件的更改时间来查找文件,            - n表示文件更改时间距现在n天以内,            + n表示文件更改时间距现在n天以前。            find命令还有-atime和-ctime 选项,但它们都和-m time选项。     -nogroup  查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。     -nouser   查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。     -newer file1 ! file2  查找更改时间比文件file1新但比文件file2旧的文件。     -type  查找某一类型的文件,诸如:             b - 块设备文件。             d - 目录。             c - 字符设备文件。             p - 管道文件。             l - 符号链接文件。             f - 普通文件。     -size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。     -fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。     -mount:在查找文件时不跨越文件系统mount点。     -follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。     -cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。     另外,下面三个的区别:     -amin n   查找系统中最后N分钟访问的文件     -atime n  查找系统中最后n*24小时访问的文件     -cmin n   查找系统中最后N分钟被改变文件状态的文件     -ctime n  查找系统中最后n*24小时被改变文件状态的文件     -mmin n   查找系统中最后N分钟被改变文件数据的文件     -mtime n  查找系统中最后n*24小时被改变文件数据的文件 实例:   1.find /opt -name runtime* 查找在opt目录下的开头是runtime的文件或目录   2.find . -perm 777  查找当前目录下有777权限的文件   3.find /opt -path "*trade" -prune -o -name trade  查找不在trade目录下的trade   4. find . -type f -name *trade* 查找当前目录下包含trade的文件   5.find -atime -2 查找48小时内修改过的文件

2014-08-19

 重定向符号  大于号:将一条命令执行结果(标准输出,或者错误输出,本来都要打印到屏幕上面的)重定向其它输出设备(文件,打开文件操作符,或打印机等等)  实例:   1.ls > b.txt 将ls后的结果写入到b.txt文件中(如存在就覆盖b.txt中的内容)   2.ls >> b.txt 将ls后的结果不覆盖写入b.txt文件的尾部(如无b.txt则新建)   3.mysqldump -u root -p test > 20101216_test.sql 倒出数据  小于号:命令默认从键盘获得的输入,改成从文件,或者其它打开文件以及设备输入   实例:   1.mysql -u root -p -h test < 20101216_test.sql 导入数据

2014-08-18

 管道:Linux所提供的管道符“|”将两个命令隔开,将左边命令执行结果通过管道传递给右边的命令再执行 实例: ls -al|grep java 此命令意思是先执行ls -al列出当前所有文件或目录,再通过管道“|” 转递给grep 查询是否包含java的目录或文件 常用的有: 1 .ps aux|grep java 2. tail -100f log.txt|grep log

2014-08-17

 locate:快速查找文件 (find filenames quickly) locate的速度比find快,它并不是真的查找,而是查数据库, 一般文件数据库在/var/lib/slocate/slocate.db中, 所以locate的查找并不是实时的,而是以数据库的更新为准 常用参数: 1.-e   将排除在寻找的范围之外。   -1  如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到的档案。        这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的权限资料。   -f   将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案放在资料库中。   -q  安静模式,不会显示任何错误讯息。   -n 至多显示 n个输出。   -r 使用正规运算式 做寻找的条件。   -o 指定资料库存的名称。   -d 指定资料库的路径   -h 显示辅助讯息   -V 显示程式的版本讯息 实例: 1.locate pwd 查找和pwd相关的所有文件 2.locate /etc/sh   搜索etc目录下所有以sh开头的文件 3.locate -r /etc/sh$  搜索etc目录下所有以sh结尾的文件

2014-08-16

 less:对文件或其它输出进行分页显示的工具(opposite of more)   -b <缓冲区大小> 设置缓冲区的大小  -e  当文件显示结束后,自动离开  -f  强迫打开特殊文件,例如外围设备代号、目录和二进制文件  -g  只标志最后搜索的关键词  -i  忽略搜索时的大小写  -m  显示类似more命令的百分比  -N  显示每行的行号  -o <文件名> 将less 输出的内容在指定文件中保存起来  -Q  不使用警告音  -s  显示连续空行为一行  -S  行过长时间将超出部分舍弃  -x <数字> 将“tab”键显示为规定的数字空格  /字符串:向下搜索“字符串”的功能  ?字符串:向上搜索“字符串”的功能  n:重复前一个搜索(与 / 或 ? 有关)  N:反向重复前一个搜索(与 / 或 ? 有关)  b  向后翻一页  d  向后翻半页  h  显示帮助界面  Q  退出less 命令  u  向前滚动半页  y  向前滚动一行  空格键 滚动一行  回车键 滚动一页  [pagedown]: 向下翻动一页  [pageup]:   向上翻动一页

2014-08-15

 more :more会以一页一页的显示方便使用者逐页阅读(file perusal filter for crt viewing) 命令参数:   +n      从笫n行开始显示   -n       定义屏幕大小为n行   +/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示   -c       从顶部清屏,然后显示   -d       提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能   -l        忽略Ctrl+l(换页)字符   -p       通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似   -s       把连续的多个空行显示为一行   -u       把文件内容中的下画线去掉   4.常用操作命令:   Enter    向下n行,需要定义。默认为1行   Ctrl+F   向下滚动一屏   空格键  向下滚动一屏   Ctrl+B  返回上一屏   =       输出当前行的行号   :f     输出文件名和当前行的行号   V      调用vi编辑器   !命令   调用Shell,并执行命令   q       退出more

2014-08-14

 which  查看可执行文件的位置 (locate a program file in the user's path) which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。 实例: which java

2014-08-13

 nl 将输出的文件内容自动的加上行号(number lines of files)    -b a :表示不论是否为空行,也同样列出行号(类似 cat -n);    -b t :如果有空行,空的那一行不要列出行号(默认值);    -n ln :行号在萤幕的最左方显示;    -n rn :行号在自己栏位的最右方显示,且不加 0 ;    -n rz :行号在自己栏位的最右方显示,且加 0 ;    -w  :行号栏位的占用的位数。 实例: 1. nl -b a file1 输出内容并列出行号 2. nl -b a -n rz file1  列出行号并行号加0 3. nl -b a -n rz -w 3 file1 将列出的行号保持3位数

2014-08-12

 tail:命令从指定点开始将文件写到标准输出 (display the last part of a file) 常用参数: -f 循环读取 -n<行数> 显示行数 -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒 实例 1.tail -n 10 file1 显示10行末尾的内容 2.tail -100f file1 动态显示末尾的100行内容 3.tail -100f file1|grep java 动态显示末尾的100行包含java的内容

2014-08-11

 cat : 连接文件或标准输入并打印  (concatenate files and print on the standard output) 常用参数:  -A, --show-all           等价于 -vET  -b, --number-nonblank    对非空输出行编号  -e                       等价于 -vE  -E, --show-ends          在每行结束处显示 $  -n, --number     对输出的所有行编号,由1开始对所有输出的行数编号  -s, --squeeze-blank  有连续两行以上的空白行,就代换为一行的空白行  -t                       与 -vT 等价  -T, --show-tabs          将跳格字符显示为 ^I  -v, --show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外 实例 1. cat file 显示整个文件内容 2. cat file1 file2 >file 合并文件到file 3. tac file 将文件内容倒过来显示

2014-08-10

cp: 复制(copy files) 1. cp file1 file2 将文件file1复制成文件file2 2. cp -i file1 file2 将文件file1复制成文件file2时需问是否复制 3. cp -f file1 file2 将文件file1强制复制成file2 4. cp dir1 dir2 将目录dir1复制成dir2 5. cp file1 file2 file3 dir 将多个文件复制到dir目录中

2014-08-09

  mv:移动文件(move files)  1. mv file1 file2 将文件file1改名为file2  2. mv file dir  将文件file移动到目录dir中  3. mv -i file1 file2 将文件file1改名为file2,如果file2已经存在,则询问是否覆盖  4. mv -f file1 file2 将文件file1改名为file2,即使file2存在,也是直接覆盖掉  5. mv dir1 dir2 如果目录dir2不存在,将目录dir1改名为dir2;否则,将dir1移动到dir2中  6. mv file1 file2 file3 dir1 将多个文件移动到dir1目录中

2014-08-08

 rm :删除 (remove directory entries)  -f, --force           强制删除。忽略不存在的文件,不提示确认  -i                    在删除前需要确认  -r, -R, --recursive   递归删除目录及其内容  -v, --verbose         详细显示进行的步骤 (注意慎用rm,怕错删的可以自定义回收站功能) 自定义回收步骤: 1.  myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv "$@" $D && echo "moved to $D ok"; } 2.  alias rm='myrm'

2014-08-07

 mkdir : 创建目录(make directories)  1)  mkdir -m 777 test  -m, --mode=模式,设定权限<模式> (类似 chmod)  2)mkdir -vp src/{lib/,java/}  -p, --parents  可以创建多级目录  -v, --verbose  每次创建新目录都显示信息

2014-08-06

 每天一个linux命令 pwd: 输出当前目录 (Print the name of the current working directory) pwd -P  显示出实际路径 pwd -L 目录连接链接时,输出连接路径(pwd 默认是pwd -L) $PWD 当前目录的变量,可以用echo $PWD 输出,结果与pwd一样 $OLDPWD 上一个目录的变量

2014-08-05

 cd [目录名] :切换当前目录至dirName (Change the current directory to DIR) 常用命令组合 1. cd / 进入系统根目录 2. cd .. 返回上一级目录 3. cd ~ 或cd   当前用户主目录(注意:“当前用户主目录”和“系统根目录”是两个不同的概念) 4. cd -  返回进入此目录之前所在的目录 5. cd !$  执行linux cd  !$把上个命令最后的参数作为输入

2014-08-04

 ls : 列出目标目录中所有的子目录和文件( list directory contents) 常用组合参数 1)ls -al -a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件 -l 将文件的权限、所有者、文件大小等信息详细列出来 2)ls  u* u* 星是正则表达匹配。意思是已u开头的文件或目录 3) ls -F 列出目前工作目录下所有档案及目录;目录于名称后加"/", 可执行档于名称后加"*"
5 1