您的位置:首页 > 其它

外部过滤器,程序和命令--基本命令

2017-08-17 17:00 176 查看

ls

  ”列出”文件的基本命令.

  -R 选项, 递归选项, ls将会以目录树的形式列出所有文件.

   -S , 将会按照文件尺寸列出所有文件,

  -i 选项会显示文件的inode

cat, tac

  cat,是单词concatenate的缩写,把文件的内容输出到stdout.当与重定向操作符(>或>>), 一般都是用来将多个文件连接起来.

# Uses of 'cat'
cat filename                        # 打印出文件内容.
cat file.1 file.2 file.3 > file.123 # 把三个文件连接到一个文件中.


  cat命令的 -n 选项是为了在目标文件中的所有行前边插入行号.

  -b 也是用来加行号的, 但是不对空行进行编号.

  -v 选项可以使用^标记法来echo出不可打印字符.

  -s 选项可以把多个空行压缩成一个空行.

  在一个管道中, 有一种把 stdin 重定向到一个文件中更有效的方法, 这种方法比使用cat文件的方法更高效.

cat filename | tr a-z A-Z

tr a-z A-Z < filename       # 效果相同,但是处理更少,并且连管道都省略掉了.


  tac命令,就是cat命令的反转,这个命令将会从文件结尾部分列出文件的内容.

rev

  把每一行中的内容反转, 并且输出到 stdout 上. 这个命令与tac命令的效果是不同的, 因为它并不反转行序, 而是把每行的内容反转.

bash$ cat file1.txt
This is line 1.
This is line 2.

bash$ tac file1.txt
This is line 2.
This is line 1.

bash$ rev file1.txt
.1 enil si sihT
.2 enil si sihT


cp

  文件拷贝命令. cp file1 file2 把文件 file1 拷贝到 file2 , 如果 file2 存在的话, 那么 file2 将被覆盖

  -a 选项,是归档标志(目的是为了copy一个完整的目录树).

  -u 是更新选项.

  -r-R选项是递归标志.

cp -u source dir/* dest dir
#  把源目录"同步"到目标目录上,
#+ 也就是拷贝所有更新的文件和之前不存在的文件.


mv

  文件移动命令. 它等价于cp和rm命令的组合. 它可以把多个文件移动到目录中,甚至将目录重命名.

  *当使用非交互脚本时,可以使用mv的-f(强制)选项来避免用户的输入.

bash$ mv source_directory target_directory

bash$ ls -lF target_directory
total 1
drwxrwxr-x 2 liudezhi liudezhi 1024 Aug 17 16:40 source_directory/


rm

  删除(清除)一个或多个文件. -f 选项将强制删除文件, 即使这个文件是只读的. 并且可以用来避免用户输入(在非交互脚本中使用).

  * rm将无法删除以破折号开头的文件.

bash$ rm -badname
rm: invalid option -- b
Try `rm --help` for more information.


  * 解决这个问题的一个方法就是在要删除的文件前加上./

bash$ rm ./-badname


  另一种解决的方法是在文件名前加上”–”.

bash$ rm -- -badname


  当使用递归参数-r时,这个命令将会删除整个目录树. 如果不慎的使用rm -rf 的话,那么整个目录树就真的完了.

rmdir

  删除目录. 但是只有这个目录中没有文件的时候 – 当然会包含”不可见的”点文件 – 这个命令才会成功.

mkdir

  生成目录, 创建一个空目录.

  比如, mkdir -p project/programs/December 将会创建指定的目录,即使project目录和programs目录都不存在. -p 选项将会自动产生必要的父目录, 这样也就同时创建了多个目录.

chmod

  修改一个现存文件的属性.

chmod +x filename
# 使得文件"filename"对所有用户都可执行.

chmod u+s filename
# 设置"filename"文件的"suid"位.
# 这样一般用户就可以在执行"filename"的时候,拥有和文件宿主相同的权限.
# (这并不适用于shell脚本).


chmod 644 filename
# 对文件"filename"的宿主设置r/w权限.
# 对一般用户设置权限.
# (8进制模式).


chmod 1777 directory-name
# 对这个目录设置r/w和可执行权限,并开发给所有人.
# 同时设置"粘贴位".
# 这意味着,只有目录宿主,文件宿主,当然还有root可以删除这个目录中的任何特定的文件.


chattr

  修改文件属性. 这个命令与上边的chmod命令项类似, 但是有不同的选项和不同的调用语法, 并且这个命令只能工作在ext2文件系统中.

  chattr +i filename 将使得这个文件被标记为永远不变.这个文件将不能被修改, 连接, 或删除, 即使是root也不行. 这个文件属性只能被root设置和删除. 类似的, a 选项将会把文件标记为只能追加数据

root# chattr +i file1.txt

root# rm file1.txt
rm: remove write-protected regular file `file1.txt`?y
rm: cannot remove `file1.txt`:Operation not permitted


  如果文件设置了 s (安全)属性, 那么当这个文件被删除时, 这个文件所在磁盘的块将全部被0填充.

  如果文件设置了 u (不可删除)属性, 那么当这个文件被删除后, 这个文件的内容还可以被恢复(不可删除).

  如果文件设置了 c (压缩)属性, 那么当这个文件在进行写操作时, 它将自动被压缩, 并且在读的时候, 自动解压.

  * 使用chattr命令设置过属性的文件将不会显示在文件列表中(ls -l).

ln

  创建文件链接, 前提是这个文件是存在的. “链接”就是一个文件的引用, 也就是这个文件的另一个名字. ln命令允许对同一个文件引用多个链接, 并且是避免混淆的一个很好的方法.

  ln对于文件来说只不过是创建了一个引用, 一个指针而已, 因为创建出来的连接文件只有几个字节.(和windows下的快捷方式想像).

  绝大多数使用ln命令时, 使用的是 -s 选项, 可以称为符号链接, 或“软”链接. 使用 -s 标志的一个优点是它可以穿越文件系统来链接目录.

  例:ln -s oldfile newfile,将对之前存在的oldfile产生一个新的连接,newfile.

  *如果之前newfile已经存在的话,将会产生一个错误消息.

man,info

  这两个命令用来查看系统命令或安装工具的手册和信息. 当两者都可用时, info页一般会比man 页包含更多的细节描述.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐