【Linux】常用命令(一)
【Linux】常用命令 一
- 1. ls
 - 2. cp命令
 - 3. grep强大的文本搜索工具
 - 4. sed命令 批量编辑文本文件
 - 附录
 
1. ls
ls命令来自于英文单次list的缩写,中文译为“列出”,其功能是显示目录中的文件及其属性信息。
1.1 ls -a 显示所有文件及其目录
可以看到包含了  . 与 ./以及当前目录下的所有文件
 
1.2 ls -A 不显示当前目录和父目录
可以看到就没有. 与 ./
 
1.3 ls -d 显示目录本身,而不是显示其内部内容

1.4 ls -i 显示文件的inode属性信息

 inode属性信息:
 在 Linux/Unix 文件系统中,每个文件(或目录)在磁盘上都有一个唯一的 inode(索引节点)编号,它存储了该文件的元信息,例如:
- 文件类型(普通文件、目录、链接等)
 - 权限(rwx)
 - 所有者、组
 - 文件大小
 - 创建、修改、访问时间
 - inode ≠ 文件名,文件名是目录中的映射。
 - 数据块的物理位置(内容不在 inode 中,但 inode 指向内容)
 
ls -i 可以让你看到文件/目录的唯一标识(inode 号),帮助你判断“两个文件是不是一个”、或者“怎么删除一个删不了的文件”。
1.4.1 实际用途场景
- 判断两个文件是不是同一个 (硬链接判断)
 
ln file1.txt file2.txt # 创建硬链接ls -i file1.txt file2.txt输出:1234567 file1.txt1234567 file2.txt
- 删除“奇怪名字”的文件
比如你有一个乱码文件,rm 都删不了(因为文件名输入不出来): 
$ ls -i1237890 ?????# 删除find . -inum 1237890 -exec rm -i {} \\;
例子
 
1.5 ls -l 显示文件的详细属性信息

$ ls -l-rw-r--r-- 1 fanzhen users 1024 Jul 24 10:00 notes.txtdrwxr-xr-x 2 fanzhen users 4096 Jul 23 08:30 documents/
-rw-r--r--1fanzhenusers1024Jul 24 10:00notes.txtdrwxr-xr-xd 开头),权限为 rwx 给 owner,r-x 给 group 和其他人1.6 ls -R 递归显示所有子文件

1.7 ls -S 按照文件大小(Size)排序列出当前目录下的文件,默认从大到小排列
1.8 ls -t 最后修改时间排序,最后修改的排到最前面
1.9 ls -lh --time-style=long-iso

2. cp命令
cp命令来源自英文单次copy的缩写,中文译为“复制”,其功能是复制文件或者目录。
基本语法:
cp [选项] 源文件 目标文件cp [选项] 源文件... 目标目录/
常用参数
-a-dR --preserve=all,即递归复制目录,保持链接、文件属性、时间戳、权限等元信息。适合备份。-b~ 作为扩展名)。-d-f-ioverwrite \'file\'?)。-l-p-r-R 是更通用写法)。-s-v- cp 
cp file.txt /tmp/将file.txt文件复制到/tmp/目录下 - 复制并显示过程 cp -v
 
[fanzhen@hby-10-208-63-198 ~]$ cp -v 示例数据.txt a\'示例数据.txt\' -> \'a/示例数据.txt\'
- 提示确认再覆盖 cp -i
 
[fanzhen@hby-10-208-63-198 ~]$ cp -v -i 示例数据.txt acp: overwrite \'a/示例数据.txt\'? y\'示例数据.txt\' -> \'a/示例数据.txt\'
- 复制整个目录 cp -r
注意是现有的a目录 然后复制成为b目录 
[fanzhen@hby-10-208-63-198 ~]$ cp -r -i -v a b\'a\' -> \'b\'\'a/示例数据.txt\' -> \'b/示例数据.txt\'
- 完整备份目录(包括权限、时间等) ls -a
 
[fanzhen@hby-10-208-63-198 ~]$ cp -r -i -v a b\'a\' -> \'b\'\'a/示例数据.txt\' -> \'b/示例数据.txt\'[fanzhen@hby-10-208-63-198 ~]$ ls -lhtotal 783Mdrwxr-xr-x 2 fanzhen fanzhen 30 Jul 24 21:47 adrwxr-xr-x 2 fanzhen fanzhen 30 Jul 24 21:50 bdrwxrwx--- 3 fanzhen znxt-usergroup 20 Mar 7 15:57 data00
- 备份模式,如果目标文件存在,则先备份一份 
cp -b 
$ echo \"old\" > a.txt$ echo \"new\" > b.txt$ cp -b b.txt a.txt原来的 a.txt 会被覆盖同时自动生成一个 a.txt~,里面是旧的内容(\"old\")$ cat a.txtnew$ cat a.txt~old
- cp -f 是 cp 命令中的 “强制覆盖” 选项,表示 不提示、直接覆盖目标文件,即使目标文件是只读的,也会强制替换。
 
$ echo \"old data\" > target.txt$ chmod 444 target.txt # 设置只读$ echo \"new data\" > source.txt$ cp -f source.txt target.txt$ cat target.txtnew data
- cp -a 等价于组合使用 
-dR --preserve=all,具体作用包括: 
-R)-d),复制符号链接本身--preserve=all)3. grep强大的文本搜索工具
常用到的参数
-i忽略大小写-n显示所有匹配的行及其行号-C 10显示配置行上下各10行-E支持正则-r递归查询-w精确匹配词
使用举例
[fanzhen@hby-10-208-63-198 logs]$ grep -i -n -C 2 \'获取模型列表\' log.out

4. sed命令 批量编辑文本文件
附录
- 50个最常用的Unix/Linux命令 http://doc.vrd.net.cn/linux/linux-cmd.html
 


