linux 常用命令大全

-- tree 命令 
tree :以树状结构显示指定目录下的文件以及子目录的内容 , 并显示文件总数 
tree -a  以树状的结构显示所有的文件和目录 
tree -A  使用 ASNI绘图字符显示树状图 
tree -C  在文件和目录清单加上色彩 , 便于区分不同的类型 
tree -D  列出文件或目录的更改时间 
tree -f  在文件或目录前 , 显示完整的相当路径的名称 
tree -P<范本样式> 只显示符合范本样式的文件或者目录的名称
tree -P t* /etc  列出 /etc目录中 以字母t开头的文件 
tree |more 可以分屏查看显示的内容了 , 点击空格向后翻屏 , 输入 :q 停止显示 
l
-- cd 命令 
cd [目标目录] 能够进入所指定的目录中 
cd .  表示当前的目录 
cd .. 表示上一级别的目录 
cd ~  表示当前用户的主目录 


-- pwd 命令 
pwd 可以显示当前目录的绝对路径 


-- ls 命令 
ls -a或--all 显示所有的文件和目录 , 包括 当前目录 "." 和 上级别的目录 ".." 和 以"."开头的隐藏文件
ls -l 或者 ll 显示文件 或目录的详细信息 
ls -F或--classify 在执行文件 , 目录 , Socket , 符号链接 , 管道名称 后面 ,分别 加上 * , / , = , @ ,| 符号 
ls -h或--human-readable 用 k , m , g 来显示文件 和 目录 的大小
ls -L或--dereference  直接列出链接所指定文件的详细信息
ls -r或 reverse 以相反的顺序列出文件 和 目录 的名称 
ls -R或 recursive 递归的列出文件 
ls -S 用 文件和 目录 的大小来排序 
ls -t 用文件和 目录的更改时间排序 
ls --full-time 列出完整的日期 和 时间
ls -R|more 可以分屏显示 ,按 空格键可以向后翻屏 , 输入 :q 退出 


 ls -l -t --full-time 以时间的倒序列出 ;
 ls -l -S --full-time 以文件的大小倒序列出 ;
 ls -l --full-time --recursive|more 递归并分屏的列出 ;


--mkdir 建立新的目录
mkdir[-p][--verbose][-m<目录属性>][目录名称]
-m<目录属性> 或者 --mode<目录属性> 创建目录时候 , 同时设置目录的权限 
-p或--parents 会把上一级别的目录一同的创建 
--verbose 执行时候显示详细的信息 


mkdir -p --verbose doc/test 
mkdir --parents --mode 777 --verbose kk/ll 这里的 --mode 指的 ll 的属性 , 而不是 kk 目录的属性 ;
mkdir -m 644 doc 表示对该目录 , 所有者有读和写权限 , 同组用户 和 其它 用户 有 读的权限 
或者 mkdir doc chmod 644 doc 用 chmod 来修改权限 
mkdir --parents --mode 777 --verbose kk/kk ;




--rmdir 命令
rmdir 删除空目录
rmdir --verbose 显示命令执行的过程 


--lndir
lndir 用来建立符号链接 , 这样就可以借助于符号链接操作指向的源文件 或 目录 lndir 可以看做是增强版的ln , 可以-口气把一个目录下的文件和目录建立起相对呀的链接
如果没有指定目的目录 , 则会在当前目录下建立源目录下的所有内容的符号链接 


lndir [-ignorelinks] 源目录 [目标目录]


lndir -ignorelinks 当使用这个参数的时候 , 如果目的目录中已经有了链接 , 将目的目录中的链接忽略掉 , 
直接将链接指向源文件 
lndir命令中如果指定了目的目录 , 则源目录必须用绝对路径来表示
如果链接已经创建好 , 再次执行链接命令 , 并不会更新该链接 


--文件的管理
cat 命令的本意是用来串接文件 或 显示文件的内容 


cat >|>> [文件名] 
cat >newfile 或者 cat - >newfile 当newfile 没有的情况下,会创建一个新的newfile文件 
如果已经存在这个文件 , enter 键 后 可以向这个文件中输入内容 , 不过会覆盖原来的内容 ;


cat >>newfile 或者 cat - >>newfile 的时候 会向newfile 中,追加内容 ;


--touch 命令
touch 命令用来修改指定文件的访问 和 修改时间的属性 


touch [-r<参考文件>] [文件名]  
-r<参考文件> 使用由参考文件的时间属性来设定新建的文件 , 而不是默认的当前时间 


touch -r  a newfile 
touch --reference=a  b 


--ln 
ln 建立链接文件 , 可以创建硬链接(就是建立一个inode , 该节点指向该文件放置内容的block块,然后新的i节点和文件原来的i节点指向相同的内容) 和 软链接(新建立一个独立的文件 , 该文件指向链接的文件)


ln [选项] [源文件] 
ln [选项] [源文件] [新建链接文件所在的目录]


-b 或者 --backup :对已经存在的目标链接文件做备份
-d 或者 -F 或者 --directory 试图允许超级用户建立到目录的硬链接 ,可能由于不同系统而导致失败 
-f 或者 --fore 链接时先将与目标链接文件同一目录下的同文件删除 ;
-s 或者 --symbolic 对源文件建立软链接 
-S 或者 --suffix=<字尾备份的字符串> 


ln -s /bin/ls slnls 或者 ls --symbolic  /bin/ls slnls  
ln  /bin/ls  slnls 


--mv
mv (move)命令可用于将文件 , 目录 的重命名 以及移动操作 ,系统会根据其参数的类型 , 自动的判断是移动 还是 重命名操作 ;


mv [选项] [源文件 或 目录 ] [目标文件 或 目录 ] 
-b 或 --back 如果要覆盖文件 , 在覆盖前先备份 
-i 或 --interactive 交互方式操作 , 当覆盖文件的时候会提醒用户 
-f 或 --force 禁止交互操作 , 当覆盖文件的时候 , 不提醒用户 
-u 或 --update 如果目标文件已经存在 , 并且 和 源文件一致 , 或者 比源文件新 , 则 不会移动 ;
-v 或 --verbose 在移动每个文件的时候 , 显示 移动的过程 ;
-S<备份后缀字符串> 或 --suffix=<备份后缀字符串>


mv -i abc /home/abc-new  将abc 文件移动到home目录下 , 并更名叫 abc-new 
mv -i test /backup 将test 文件 移动到 backup 目录下 
mv oldfile newfile 将oldfile 更名为 newfile 
mv -biS.back file /backup 或者 mv -bi --suffix=.back file/backup 将file 文件移到backup 中时 ,如果 backup中已经有了该文件 , 就会对backup中的文件进行备份
mv --verbose --backup --suffix=.bak  ./Application.zip  /data/oracle
mv --interactive --verbose --backup --suffix=.bak ./aa   /data/oracle  ;








--rm 
rm (remove) 将文件永久的从磁盘中删除 ,rm 一般用来删除文件 , 加上 -r 参数 , 可以删除目录 , 以及子目录 , 
对于链接文件 , 只是断开链接 , 不会删除源文件 
rm [选项] [文件 或 目录 ]
-i 或 --interactive 采用交互的方式删除目标文件 ;
-f 或 --force 当删除文件的时候 , 不给提示 ;
-r 或 -R 或 --recursive 递归的删除 ;
-v 或 --verbose ,显示删除的过程 ;


rm aaa*   删除以aaa 为开头的所有的文件 ;
rm -fr test 递归并强制的删除test ;




 rm --recursive --force --verbose a        强制的递归的删除 a 目录 , 从最里面的 目录一个一个的删除 ;
 rm --recursive --interactive --verbose a  强制的带有提示的递归的删除 a 目录 , 从最里面的 目录一个一个的删除  ; 
 rm --recursive --interactive --verbose a 
 
 rm --force --recursive --verbose 
 rm --interactive  --recursive --verbose 
 rm --force --verbose --recursive --recursive --recursive 
 


--cat 
cat (concatenate) 本身就是串接命令 ,能够将文件的内容进行覆盖 , 和 追加 
cat [选项] [源文件][>|>> 重定向的文件名]


-n 对所输出的行数进行编号 
-b 和-n类似 , 但是对空白行不进行编号 
-s 不输出多行的空白 , 如果遇到连续两行以上的空白行 , 就会替换成一行的空白行 ;
cat -bs /etc/passwd > users.backup , 将passwd中的内容覆盖 user.backup 中的内容 ;
cat -sb /etc/passwd >> users.backup , 将passwd中的内容追加到user.backup 中的尾部 ;
cat -sb iptv.log|more 




--more 
more 命令用来分屏的显示文件的内容  , 键入 空格键 向下显示一屏幕 , 键入 enter 键 显示下一行数据 ;
more [选项] [文件名] 
-d 在屏幕的底部显示 提示 ,
-c 该参数定义了每次从屏幕的最顶部显示文件的内容 ,  不以滚动的方式来显示文件的内容 , 先清除原来的行 , 再显示新的行内容 ;
+<开始的行数>  从给定起始行的位置 来显示文件的内容 ;
-<屏幕的显示的行数> 该选项用来设置屏幕显示的行数  ;
+/<关键子> 用来查找关键字的位置 ;
more 命令用来显示比较大的文件 , 可以显示多个文件的内容 , 可以显示链接文件的内容 , 不能显示目录文件 和 非文本文件 ;


--less 
less 也是用来查看文本文件的内容 , 并支持向回查看文件的内容
less [选项] [文件名]


-c 从顶部刷新屏幕 , 并显示文件的内容 
-f 强制打开文件 ,
-i /-I 搜索时 , 忽略 大小写 
-m 显示文件读取的百分比 
-M 显示文件的读取的百分比 , 行 号 , 和 总行数 ,
-N 在每行前加上行号 
-p 要搜索的关键字 


less -N iptv.log , 在每一行前家上行号 ;


当用less 打开文件后 , 输入 
b 向上滚动一屏幕 , d 向下滚动一屏幕 , g 跳到第一行 , G 跳到最后一行 , /pattern 要搜索的 关键字  , v 进入 vi 编辑器 , q 退出 less 


less -M /etc/passwd 查看文件的内容  , 并显示 多少行 , 总的行数 , 百分比 
less -p linux test 在test 文件中查找 linux 关键字 ;


--head 命令
head 命令用来查看文件的首部的内容 
-<N> 指定要显示前 多少行 , 


--tail 命令
tail 命令用来查看文件的尾部的内容
tail [选项] [文件名] 
--retry 当执行tail命令的时候 , 文件变的不可读的时候 , tail 命令试图打开 
-f 或者 --follow , 当动态的改变的时候 , 能够动态的查看内容 
-F 等同于 --retry 或 --follow 
-<行数> 指定显示文件的末行数-


--ll 
ll 命令用来查看文件的属性信息 
-h 或者 --human-readable  用 k , m , g 来显示文件 和 目录的大小
-c 以更改的时间进行排序后 , 来显示文件 和 目录 ;
- 表示普通的文件 
d 表示目录文件
b 块设备文件 
c 字符设备文件 
l 符号链接
p 管道特殊文件 


ll -h dir 


--chown 
chown 命令用来改变文件或目录的拥有者或所属群组 
chown [选项]  拥有者/拥有者组ID [:[组用户/组ID]] [文件名或目录名]
chown [选项] --reference=文件名或者目录名 [文件名或者目录名]
--dereference chown 命令默认情况下对符号链接文件本身改变属主/组用户 , --dereference 用来指明对符号链接
文件所指向的文件进行操作 , 而不是符号链接文件本身  ;
-h 或者 --no-dereference  若是符号链接文件 , 只对符号链接文件执行操作 , 而不影响其指向的文件 ;
 
-R --recursive  递归处理 , 将指定目录下的所有文件及子目录一并处理 ;
-v --verbose 显示处理的结果 ;
以下 3 个选项声明了 , 在对一个层次结构进行递归处理的时候 , 如果命令指出多个选项 , 命令安装最后一个选项进行处理 
-H 如果命令行的参数是指定到一个目录的符号链接 , 则递归访问该符号文件指向的目录 ;
-L 在递归处理一个目录时 , 遇到符号链接文件 , 会去处理的 ;
-P 不处理符号链接文件 ;


chown -v user1 abc  将abc 文件的属主改为 user1 
chown -vR user2:user2 abc 将 abc 文件以及 它下面的子文件 的属主 和 同组 改为 user2 : user2 
chown --recursive --verbose  --reference=./oracle ./a  将./a 目录下的所有的文件和目录的属主 和 组用户 修改成和 ./oracle 的一样 
chown --recursive --verbose  root:root   ./a  


--chgrp
chgrp 命令用来改变文件或目录所属的群组 
chgrp [选项] [组用户] [文件名 或 目录名] 
chgrp [选项] [--reference=文件名 或者 目录名 ] [文件名 或 目录名]
--deference chgrp 命令默认是对符号链接的本身进行处理 , --dereference 用来指明对符号链接所指定的文件进行操作 ,
-h 若是符号链接文件 , 只对符号链接文件执行操作 , 而不影响其指向的文件 ;
-R 或者 --recursive 递归处理 , 将指定目录下的所有文件及子目录一并处理 ;
-v 或者 --verbose 显示处理的结果 ;
以下 3 个选项声明了 , 在对一个层次结构进行递归处理的时候 , 如果命令指出多个选项 , 命令安装最后一个选项进行处理 
-H 如果命令行的参数是指定到一个目录的符号链接 , 则递归访问该符号文件指向的目录 ;
-L 在递归处理一个目录时 , 遇到符号链接文件 , 会去处理的 ;
-P 不处理符号链接文件 ;


chgrp -v ftp tool , 将tool 文件的 群属名该为 ftp 
chgrp  --reference=tool -vR docs 将docs 下的所有的文件 或 目录 的群属组 修改为 和 tool 文件的所属群属组一样 ;
chgrp --dereference -v ftp lnfile  修改的是 lnfile 这个链接所指定的文件 ;
chgrp --recursive --verbose --reference=./oracle ./a 
chgrp --dereference --recursive --verbose -H oinstall  ./a 


递归处理一个目录解引用(--dereference -R )的时候 , 需要指明具体咱样(-H 或者 -L 或者 -P )遇到的链接文件的处理 ;




--chmod 
chmod 命令用来改变 文件 或 目录 的访问权限 , linux 下提供了字符的形式 和 八进制方式改变文件的访问权限  ;
chmod [选项] mode [文件名 或者 目录名 ] 
chmod [选项] --reference=文件名或者目录名 [文件名或者目录名]
mode 为指定的权限 , 如果字符串设定 , 则形式为[ugoa....][+-=][rwxX]
u : 表示文件的所有者 
g : 表示文件所属者 , 属于同一个组的用户 
o : 表示其它的用户 
a : 表示所有的用户
+ 表示增加权限 , - 表示取消权限 , =表示唯一设定权限 
r 表示可读 , w 表示可写 , x 表示可以执行 , X 表示该文件是个子目录 或者 该文件已经被设定过为可执行 ;


-c 或者 --changes 只有在文件或目录权限更改的前提下 , 才显示更改的信息 ;
-v 或者 --verbose 显示更改权限的详细信息 ;
-R 或者 --recursive 如果更改的是目录 , 则会递归的更改该目录下的文件 ;


以下 3 个选项声明了 , 在对一个层次结构进行递归处理的时候 , 如果命令指出多个选项 , 命令安装最后一个选项进行处理 
-H 如果命令行的参数是指定到一个目录的符号链接 , 则递归访问该符号文件指向的目录 ;
-L 在递归处理一个目录时 , 遇到符号链接文件 , 会去处理的 ;
-P 不处理符号链接文件 ;


chmod -v a+rwx  abc 或者 chmod -v ugo+r , ugo+w , ugo+x abc 
chmod -R -c g+w , o-w , o-x software (不能这样的用 , 来进行分割着写)
chmod -R -v 774 aaa 
chmod --recursive --verbose 777 ./a  


--cp 
cp 命令 , 将源文件复制到其它的地方去 
cp [选项] [源文件 或 目录 ] [目标目录] 或 cp [选项] [源文件] [目标文件]
-a 或者 --archive : 保留链接  , 文件属性  , 并递归的复制 , 相当于 dpr 选项的组合 
-b 或者 --backup[=control]  在复制的时候 ,如果该文件已经在目标目录中 , 会将该文件进行备份 ;
-d 复制的时候保留链接 
-f 强制覆盖并给以提示 ;
-i 给用户提示 
-p 除了复制文件的内容 , 还要保持源文件的访问权限(mode) , 属主(owership) 时间戳(timestamps) 相当于
--preserve=mode , ownship , timestamps
-r 若给出的源文件是一个目录文件 , 将递归的复制该目录下的所有文件到目标目录中 ;
--preserve[=attr_list] 在复制文件的时候保持指定的属性不变 ,默认情况下 , 访问权限(mode) , 属主(owership) ,
时间戳 (timestamps) 指定的链接(link) 以及所有的属性(all) ;
-v 显示复制的全过程 


cp -iar /backup 将当前目录中的所有内容备份到/backup目录下 , 并保持源文件的链接 ;


cp -i abc /backup/study 如果过study存在 ,将abc 复制到 study 目录下 , 如果 study 不存在 , 将建立一个study 文件 , 
内容和 abc 一样的; 
cp -iav lndir /backup/lndir.backup 备份链接文件 , 并保持源文件的属性和链接 


cp -iav --preserve=mode , ownship abc /backup 备份一个文件到目标目录中 , 只保持它的属主 和 访问权限 ;
cp --archive --recursive --verbose /data ./ 
cp -b -S$ abc /backup 或 cp -b --suffix='$' abc /backup 
cp --archive --recursive --verbose --backup --suffix=.bak ../a/Application.zip  ./ 




--tar 


tar 命令 可以将文件和目录创建档案 ,不是压缩命令 , 而是整理归档命令 , 一般用于对文件的备份 
tar[主选项+辅选项] [文件或目录]


-A 或者 --catenate ( 连接 )  将tar文件添加到归档文件中 
-c 或者 --create 创建新的归档文件 ;
-r 或者 --append 把要存档的文件追加到备份文件的末尾  ;
-t 或者 --list 列出归档文件的内容 , 查看已经备份了那些文件 ;
-x 或者 --get 或者 --extract (取出) 从归档文件中提取文件 ;
-f 或者 --file 指定创建归档的名称 , 建议 *.tar 为结尾 , 如果是压缩的 *.tar.gz  ;
-k 或者 --keep-old-files 或者 --keep-new-files  保存已经存在的文件, 如果把某个文件还原 , 在还原的过程中 , 遇到相同的文件名 , 不会进行覆盖 ;
-m 在还原的时候 , 把所有文件的修改时间 , 设为现在的时间 
-v 或者--verbose 显示出tar归档的全过程 ;
-z 或者--gzip 用gzip 来压缩/解压缩文件 , 该选项可以对归档文件进行压缩 , 但是在还原的时候  , 也要该选项进行解压缩 ;


tar -cvf etcbackup.tar /etc 将 etc 中的所有的文件 , 归档到etcbackup.tar 文件中 , 并在当前目录中创建 etcbackup.tar


tar -tvf etcbackup.tar |more 查看etcbackup.tar 中的文件 , 并分屏显示 ;


tar -xvf etcbackup.tar  将文件从归档文件etcbackup.tar 中还原出来 ;


tar -cvzf etcbackup.tar.gz /etc 将etc 中的所有文件 , 搞到归档文件中 , 并对归档文件进行压缩 ;


tar -xvzf etcbackup.tar.gz 进行解压缩  ;




Tar cvf pack.tar fileName Tar cvf   打包后的包名   需要打包的文件
Tar xvf pack.tar 解压.tar包(解压后包名为:pack)

Tar zcvf pack.tar.gz fileName Zip  打包后的包名  需要打包的文件
Tar zxvf pack.tar.gz 解压.tar.gz包(解压后包名为:pack)
tar --file xx.tar --append ./Application.zip   将 Application.zip 添加到 xx.tar 中去 ;
tar --list --verbose --file ggg.tar|grep tmp   将 ggg.tar 文件中 tmp开头的列出来  ;
tar --verbose --file cao.tar --catenate xx.tar 将 xx.tar 中的所有文件全部放到 cao.tar 中去 ;
tar --get --verbose -m --file cao.tar  将从cao.tar 中将文件取出 并将文件的时间 设为当前的时间 ;
tar --extract  --verbose  --keep-old-files --file cao.tar 将文件从cao.tar 中还原回来时 , 将不会覆盖已经存在的文件 ; 
tar --create --verbose --gzip --file total.tar.gz a tmp  将 a 和 tmp 文件 进行归档并压缩 ;
tar --get --verbose --gzip --keep-old-files -m --file total.tar.gz  将 total.tar.gz 中的文件进行解压缩 ,进行还原 , 在还原时将不会覆盖原来的文件 , 将文件的时间 设为 当前的时间 ;


-- 压缩 和 解压缩命令
linux 中常用的压缩/解压缩工具以及扩展名对应表


gzip/gunzip          ".gz"
compress/uncompress  ".Z"
Zip/unzip            ".zip"
bzip2/bunzip2        ".bz2"   




--bzip2 
bzip2 压缩工具 , 是一个无损的压缩软件 , 具有高质量的数据压缩能力  ;
bzip2 [选项] [文件名.....]


-c 将压缩/解压缩的结果送到标准的输出  ;
-d 解压指定的目标文件 , 实际上 , bzip2 -d , bunzip2 , bzcat 使用的是同一个解压缩程序 ;
-z 强制执行压缩 , 不管是压缩命令 (bzip2) 还是 解压缩命令 (bunzip2) 命令 ;
-k 在压缩/解压缩的过程中 , 保留原来的文件; 
-f 强制覆盖 , 在压缩/解压缩过程中 , 如果遇到相同的文件 , 就会 直接的覆盖 ;
-t 检查指定压缩文件的完整性 , 但不进行压缩 ;
-v 显示压缩文件的压缩比 ;
-- 处理 以 "-" 为开头的文件 , 必然要 bzip2 -- -filename 
-num 用指定的数字 num 调整压缩的速度 , -1 或 --fast 表示最快压缩(解压) 速度(低压缩比) 
-9 或 --best 表示最慢压缩(解压) 方法 (高压缩比) 系统默认是 6  , 这是由于 bzip 是以块 为单位
对文件进行压缩 , 其中的数字 1-9 , 1代表 100 000 字节 


bzip2 -vz file 将 把 file 文件进行强制压缩 压缩后的文件为 file.bz2 
bzip2 -vz9 file 或者 bzip2 -vz --best file 将file 文件进行慢压缩 ,高压缩比 , 强制的压缩 


bzip2 -dv file.bz2  将file.bz2 进行解压缩 


bzip2 -dvc  file.bz2 将 file.bz2 进行解压缩 , 并显示文件的内容 ;


bzip2 压缩的文件必须是普通的文件 , 不能对目录文件进行压缩 ;
      不能对 file.bz2 进行二次压缩 ;




--bunzip2 
bunzip2 解压由 bzip2 产生的文件 , 相当于 bzip2 -d 命令 ;
bunzip2 [选项] [由bzip2生产的压缩文件...........]
-c 解压目标文件到标准输出设备 ;
-t 检查指定压缩文件的完整性 , 但不进行解压缩 ;
-k 在解压缩的过程中 , 保留原来的文件 ;
-f 强制的覆盖 ;
-- 处理 以"-" 为开头的文件 , 
-num 用指定的数字 num 来调整压缩速度 , -1 或 --fast 最快解压速度 (低的压缩比) 
-9 或 --best 慢的压缩速度 (高的压缩比) 


bunzip2 -t *.bz2 检查当前目录下 , 所有 .bz2 文件的完整性 ;
bunzip2 xxx.bz2  对xxx.bz2 进行解压缩 , 并删除 xxx.bz2 文件 ;
bunzip2 -k xxx.bz2 对 xxx.bz2 进行解压缩 , 不会删除 xxx.bz2 文件 ;


--bzcat 
bzcat 命令 对莫压缩的文件进行查看 , 但不会进行真正的解压缩操作 ;
bzcat [选项][由bzip2 生产的压缩文件 ................]
-t 检查指定压缩文件的完整性 , 但不会进行解压缩操作 ;
-- 处理以 "-" 为开头的文件 ;
bzcat abc.bz2


--gzip
gzip 命令用来将 文件 或 目录进行压缩 
gzip [选项][指定的文件 或 目录 ]
-c 或 --stdout 或 --to-stdout 将压缩 或 解压缩的内容输出到标准的输出设备上 , 并保留原有文件 ;
-d 或 --decompress 或 --uncompress 将压缩的文件进行解压缩 ;
-l 或 --list 如果目标文件是压缩文件 , 将显示压缩和未压缩的大小 , 压缩比 , 未压缩文件的名称 ;
-r 或 --recursive 如过目标是目录 , 则 递归查找该目录 , 并压缩该目录下的所有的文件 ;
-S<压缩字尾字符串> 或 --suffix<压缩字尾字符串>
-t 或 --test 测试压缩的完整性 ;
-v 或 --verbose 显示压缩的过程 ;
-f 或 --fore 强制进行压缩 解压缩 , 并进行覆盖原来的文件  ;
-num 用指定的数字 num 来调整压缩速度 , -1 或 --fast 最快解压速度 (低的压缩比) 
-9 或 --best 慢的压缩速度 (高的压缩比) 


gzip file 将file 文件进行压缩 为 file.gz 
gzip -rv tmp 会把 tmp 目录下的所有文件进行压缩 ;
gzip -dc file.gz 将file.gz 进行解压缩 , 并将文件中的内容进行显示 ; 
gzip -l file.gz 列出该文件的压缩信息 ;


--gunzip 
gunzip 命令用来解压 由 gzip , zip , pack 生成的压缩文件 ;
-a 或 --ascii 使用ascill 文字模式 ;
-c 或 --stdout 或 --to-stdout 把解压后的文件输出到标准的输出设备上 ;
-f 或 --fore 强行进行解压缩 ;
-l 或 --list 列出压缩文件的相关信息 ;
-n 或 --no-name 解压时 , 如果压缩文件内含有原来的文件名以及时间戳 , 则将其忽略不于处理 ;
-N 或 --name    解压时 , 如果压缩文件内含有原来的文件名以及时间戳 , 将其回存到解压开的文件上 ;
-r 或 --recursive 将指定目录下的所有文件以及子目录一并处理 ;


gunzip -v file.gz 


--gzexe 
gzexe 命令 专门对可执行文件进行压缩 , 
gzexe [选项][可执行文件名 ......]
-d 对已经压缩的可执行文件进行解压缩 ;


--zcat 
zcat 命令将源文件解压缩到标准输出设备上 ;


zcat 可以解压显示 gzip , zip , pack 生产的压缩文件 ;


zcat[选项][待解压缩的文件]
-f 或 --fore 
zcat test.gz 


--zip 
zip 不仅用来压缩 , 也可以用来进行归档 ;


zip [选项] [压缩名] [要压缩的文件或目录 ....] 


-b <工作目录> 暂存文件的位置 ;
-d <文件名> deleting  从 zip 文件中移出一个文件 ;
-f 以新文件取代现有文件 ;
-F 修复已经损坏的文件;
-g 将文件压缩 , 附加到zip文件中  ;
-j 只存储文件的名称 , 不含目录 ;
-m move 将特定的文件移入zip文件中 , 并删除特定的文件 ;
-r 递归处理 , 将指定目录下的所有文件和子目录一并处理 ;
-u 只更新改变过的文件 或 新文件 ;
-v 显示出压缩的详细信息 ;
-x 不需要压缩的文件 ;
-z 为zip 文件添加注解 ;
-num 确定压缩速度 , -0 表示不压缩 , -1 表示最快速度的压缩 , -9 表示最慢速度的压缩 预设值为 -6 


zip test.zip test 将test 文件进行压缩 ;
zip ab.zip a b    将a , b 文件进行压缩  ;
zip -r  cc.zip /home/cc 将cc 目录下的所有文件进行压缩 ;
zip bill.zip -g restartapp.sh  将restartapp.sh 压缩并添加 到 bill.zip 中  ;
zip bill.zip -v -m res.sh      将res.sh 移入 bill.zip 后 并删除 res.sh 文件 ;
zip bill.zip -d restartapp.sh  将restartapp.sh 从bill.zip 中删除 ;
zip -r -v xx.zip *.sh -x res.sh将所有的*.sh 文件进行压缩 , 但是 除去res.sh 文件 ; 


--unzip 
unzip 对由zip命令产生的压缩进行解压缩 ;
unzip [选项][由zip生成的压缩文件 ] 
unzip [选项][由zip生成的压缩文件] [指定要解压的文件]
unzip [-Z][由zip生成的压缩文件]


-M 将输出结果送到 more 程序处理 ;
-n 解压缩时不要覆盖原有的文件 ;
-o 解压缩时覆盖原有的文件 ;
-d<目录> 指定文件解压后所要存储的目录 ;
-x<文件> 指定不要处理.zip压缩文件中的那些文件 ;
-Z unzip -Z 等于执行zipinfo指令 , 查看.zip压缩的文件信息 ;


unzip test.zip 
unzip 在默认的情况下 , 将文件解压缩到 当前的工作目录中 ;
unzip -v ab.zip a 将对ab.zip 中的a 文件进行解压缩 ;
unzip -Z ab.zip 查看压缩文件的信息 ;
unzip -o xx.sh.zip -x res.sh 将 xx.sh.zip 文件中的 除了res.sh 以外 ,其它的全部解压缩出来 ;
unzip -n xx.sh.zip res.sh    将 xx.sh.zip 文件中的 res.sh 解压出来 ;




--zipinfo
zipinfo 能够显示压缩文件中的信息 ;
zipinfo [压缩文件][文件............]
-h 列出压缩文件的文件名 ;
-l 显示原始文件的大小
-m 显示每个文件的压缩率 ;
-v 详细显示压缩文件中每个文件的信息 ;


--find 
find 命令用来在指定的层次目录中查找符合一定条件的文件 
find [要搜索的目录]  [选项] [表达式] [动作选项] 
-depth 如果指定的搜索目录中包括子目录 , 则先到子目录中 , 然后在回到其自身目录中查找 
-name<字符串 或 模式 > 指定查找目录结构中的名称 或者 指定的字符串 , 或者 模式匹配的文件 
-ls 将查找到的文件或目录以ls的输出格式在标准输出设备上显示 ;
-perm<权限数值> 查找符号指定的权限数值的文件或目录 ;-
-amin<分钟> 查找在指定的时间曾被访问过的文件或目录 单位以分钟来计算 ;
-atime<n> 查找系统中n*24 小时 被访问过的文件或目录 
-cmin<分钟> 查找在指定的时间被修改过的文件 或 目录 ;
-empty 查找文件大小 为 0 字节的文件 , 或者 没有任何子目录或文件的空目录 ;
-group<群组名称> 查找 符合指定 群组名称的文件 或 目录 ;
-user<拥有者的名称> 查找符合指定拥有者名称的文件或目录 
-regex<模式> 指定字符串作为寻找文件 或 目录 的模式 ;


find /home -name file.* -ls 在 /home 目录下 查找 以file为开始命名的文件 , 并将查询到的结果以ls格式的形式列出来 ;


find /home -size 1000c (c:字节为单位 , 还可以用 k , m , g 为单位 ) 查找文件大小 1000 字节的文件
find /home -size +1000c  查找文件大小 大于1000 字节的文件
find /home -size -1000c   查找文件大小 小于1000 字节的文件
find /home -size  +1000c -and -2000c   查找文件大小 1000 和 2000 字节 之间 的文件
find /home -amin -10 查找 最后10 分钟访问的文件 ;
find /home -cmin -10 查找 最后10 分钟被修改的文件 ;
find /home -atime -2 查找 最后 48 小时 被访问过的文件 ;
find /home -empty 
find /home -group root 查找 属组为root 下的文件 ;
find ./  -user root 查找属于root 用户 小 的文件 ;
find ./  -perm 755  查找符合这个权限下 的文件 ;


find 查找命令 还可以配合 着 逻辑与 (-a 或 -and)  
逻辑或 (-o 或 -or)  逻辑非 (-!) 使用 


find ./ -size +1000c -and -mtime +2 -and -name abc.* -ls (查找必须符号这3个条件的文件)
find ./ -size +1000c -or -mtime +3 (查找符合任意条件的文件) ;
find ./ -!\(-size +1000c -or -mtime +3 \) 




--whereis 
whereis 命令用来查找可执行的程序 , 原始的程序 , 和 使用手册 
-b 只是查找二进制文件 
-B<目录> 只在指定的目录下查找二进制文件 ;
-m 只是查找说明文件 ;
-M<目录> 在指定的目录下查找说明文件 ;
-s 只查找原始代码文件 ;
-S<目录> 在指定的目录下 , 查找原始代码文件 ;
-f 在使用 -B , -M , -S 选项指定要查找的目录时 , 以 -f选择终止最后一个目录 ;
-u 查找不包含指定类型的文件 ;


whereis -b ls cp 或者 whereis -B /bin /sbin -f ls cp  查找ls 和cp 命令的目录 ;


whereis -u -M /usr/man/man1 -S /usr/src -f * |tail 
查找 在/usr/man/man1 下没有 说明文件 , 但是 在 /usr/src 下 有原始文件的所有文件 


whereis -m -u * 查找在当前文件下 ,没有说明文件的所有文件 ;


--which
which 命令 是更小范围内的查找文件 , 只是在环境变量中 , 查找指定的文件 ;
which[文件名]


比如检查是否安装了gcc 
which gcc g++ ;


--grep
对于大的文本 , linux 提供了 grep , egrep , fgrep 用指定的模式 或 字符串 来搜索文件 , 并在标准输出设备上显示文件中所有匹配指定模式或字符串的行 ;
grep (global search regular expression and print out the line )


grep 一般用于对其它命令的输出结果进行过滤 , 以及查找特定字符串 , 或者匹配一定模式的字符串在文件中的位置 
;


grep [选项][字符串 或 正则表达式][文件名............]


正则表达式 中 常用的元符号


^:一行的开始标志 , 例如 : ^bigeyes  匹配所有以bigeyes 开头的行 ;
$:一行的结束标志 , 例如 : bigeyes$  匹配所有以bigeyes 为结束的行 ;
?:匹配任意一个非换行的字符 , 例如 big?eyes 匹配big 后 接一个任意字符 , 然后是eyes 的行 ;
*:匹配任意零个 或 多个字符 ;
[xxx] 或 [x-x]:匹配字符集 或 某个范围内的一个字符 , 例如: seq[01] 匹配一行中的seq0 或者 seq1 
[xxx] 可以罗列出非连续的字符 , [x-x] :可以罗列出连续的字符 ;
[^] :匹配一个不在指定范围内的字符 ;
\<:单词的开始标志 , 例如 : \<big 匹配包含以 big 开头的单词的行 ;
\>:单词的结束标志 , 例如 :end\> 匹配包含以 end 结尾的单词的行 ;
x\{m\} : 重复 x 字符 m 次 ;
x\{m ,\} : 重复 x 字符 至少 m 次 ;
x\{ m , n \}: 重复 x 字符 至少 m 次 , 但又不少于 n 次 ;
\w :匹配大小字母 和 数字 [A-Za-z0-9]
\W : 匹配非 大小字母 和 数字 ;
\b\ : 单词锁定符 例如: \bbig\ :只匹配 big 


-c :输出匹配行的个数 ;
-h :查询多个文件时不显示文件名 ;
-v 显示不包含匹配文本的所有行 ;
-i 忽略大小写的差别 ;
-l 查询多个文件时 , 只输出包含匹配字符的文件名 ;
-o 只显示出匹配的部分 ;
-L 查询多个文件时只输出包含匹配字符的文件名; 
-n 显示匹配行以及 行 号 ;


grep 命令 过滤 ls -l 的显示内容 


ls -l |grep ^d (只显示当前目录下的目录文件) ;
ls -l |grep ^[^d] (只显示当前目录下的除目录之外的文件) ;
ls -l |grep -i root (显示不区分大小写 , 包含root 的行)


ps -ef 显示所有进程的简单信息 ;
ps -ef |grep java 


ps -ef |grep sshd |grep -v grep (对ps 的输出结果进行二次的过滤 , 显示不包括 grep 
的行) ;


grep -n root /etc/passwd  /etc/group 在 /etc/passwd 和 /etc/group 中 搜索root 的行 ;


grep -n " hello world " abc (显示 包括 "hello world " 的行 )
who |grep -v root 显示除 root 之外 的用户信息 ;
grep " 13[0-2]"  address 
grep -in ^s address 


grep 的注意 :
查找的文件必须存在 , 并且是文本类型的文件 , 如果指定的目录 , 不显示任何结果 ;
grep 不仅可以用来搜索指定的文件中的字符串 , 而且也可以利用管道命令 对输出的结果进行过滤 ,显示对用户有用的信息 , 可以使用管道命令对结果进行多次的过滤 ;




--kill 
kill 命令 终止正在执行的程序 或 作业 ;
kill [-s <信息名称或编号>] [程序] 
或 kill [-l <信息编号>]
-l<信息编号> 列出指定编号的信息名称 , 如果不叫<信息编号> 选项 , 则-l 参数会列出全部的信息名称 ;
-s<信息名称 或 编号 > 指定要送出的信息 , 指定的信息名称时可以用全名 , 也可以使用SIG后的字符串来表

[程序] 程序可以是程序的pid 或 是 pgid , 也可以是工作编号 , 如果是作业编号 , 编号前要加 % ;
kill -9 进程id ;


--adduser
adduser 命令实际上是 useradd 命令的一个符号链接 , 指向 /usr/sbin/useradd
使用adduser 命令建立的账户 还需要 使用passwd 命令设置账户的密码才能使用 ;


addduser [-m] [-M] [-n][-r][-d<登陆目录>] [-e<有效期限>] [-f<缓存天数>]
[-g<组>][-G<组>] [-s<Shell>] [-u<uid>][用户账号]


-d<登入目录> 指定用户登陆的起始目录 ;
-m 自动建立用户登录目录;
-M 不自动建立用户登录目录 ;
-r 建立系统账户 ;
-s<shell> 指定用户登陆后所使用的shell  ;
-u<uid> 指定用户id ;
-b<用户目录> 在指定的<用户目录>下 , 建立所有使用者的<登录目录> 默认 /home 
-e<有效期限> 
-f<缓冲天数> 指定密码过期多少天后 , 关闭该账号 ;
-g<组> 指定用户默认所属的组 ;
adduser tony
adduser -d /home/guset -e 2011-12-31 -g gust 
adduser -r -d /home/admin admin01 




linux 重启命令 
reboot 
shutdown -r now  立刻重启(root用户使用) ;
shutdown -r 10    过10分钟自动重启(root用户使用) ;
shutdown -r 11:16  在时间为11:16的时候重启(root用户使用)
如果使用shutdown命令设置重启的话 , 可以使用shutdown -c 取消 ;


linux 关机命令
halt : 中断 , 停止 , 立刻关机 
poweroff : 立刻关机 
shutdown -h now  立刻关机 
shutdown -h 10    10分钟后自动关机 


 shutdown执行它的工作是送信号〔signal〕给init程序﹐要求它改变runlevel。
Runlevel 0被用来停机〔halt〕﹐runlevel 6是用来重新激活〔reboot〕系统﹐
而runlevel 1则是被用来让系统进入管理工作可以进行的状态﹔这是预设的﹐假定没有-h也没有-r参数给shutdown。要想了解在停机
〔halt〕或者重新开机〔reboot〕过程中做了哪些动作﹐你可以在这个文件/etc/inittab里看到这些runlevels相关的资料。


halt----最简单的关机命令
[-p] 该选项为缺省选项。就是关机时调用poweroff。 
[-f] 没有调用shutdown而强制关机或重启。
init是所有进程的祖先﹐它的进程号始终为1﹐
所以发送TERM信号给init会终止所有的 用户进程﹑守护进程等。
shutdown 就是使用这种机制。init定义了8个运行级别(runlevel),   
init 0为关机﹐init 1为重启。


查看linux 系统的时间


date +"%F %H:%:M:%S" 或者 date +"%Y-%m-%d %H:%M:%S" ;
修改系统的时间 


date --set "20120217" 修改日期 
date --set "10:10:10" 修改时间 


Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟。系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIOS中进行设置。当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。 



































































































































































































































已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页