学习文章
1. cd
cd / 进入系统根目录 cd ~ 返回进入此目录之前所在的目录 cd -
2. ls
ls [选项] [目录名] -a, -A,同-a,但不列出“.” -h, –human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G) –si 类似 -h,但文件大小取 1000 的次方而不是 1024 -F,-p,指定在每个项目名称后加上指示符号 -r, –reverse 依相反次序排列 -R, –recursive 同时列出所有子目录层 -s, –size 以块大小为单位列出所有文件的大小 -t 以文件修改时间排序 -u 配合 -lt:显示访问时间而且依访问时间排序 配合 -l:显示访问时间但根据名称排序 否则:根据访问时间排序
example:
例一:列出/home/peidachang文件夹下的所有文件和目录的详细资料 命令:ls -l -R /home/peidachang ls -lR /home/peidachang 例二:列出当前目录中所有以“t”开头的目录的详细内容,可以使用如下命令: 命令:ls -l t* 例三:只列出文件下的子目录 命令:ls -F /opt/soft |grep /$ 例四:列出目前工作目录下所有名称是s 开头的档案,愈新的排愈后面,可以使用如下命令: 命令:ls -ltr s* 例五:列出目前工作目录下所有档案及目录;目录于名称后加"/", 可执行档于名称后加"*" 命令:ls -AF 例六:计算当前目录下的文件数和目录数 命令: ls -l * |grep "^-"|wc -l ---文件个数 ls -l * |grep "^d"|wc -l ---目录个数 例七: 在ls中列出文件的绝对路径 命令:ls | sed "s:^:`pwd`/:" 例九:列出当前目录下的所有文件(包括隐藏文件)的绝对路径, 对目录不做递归 命令:find $PWD -maxdepth 1 | xargs ls -ld 例十:递归列出当前目录下的所有文件(包括隐藏文件)的绝对路径 命令: find $PWD | xargs ls -ld 例十一:指定文件时间输出格式 命令: ls -tl --time-style=full-iso
显示彩色目录列表 打开/etc/bashrc, 加入如下一行: alias ls="ls --color"
3. pwd
pwd -P 显示出实际路径,而非使用连接(link)路径。
4. mkdir
-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
dahu@dahu-OptiPlex-3046:~/myfile/dahu$ mkdir -vp project/{lib,bin/etc}
mkdir: created directory 'project'
mkdir: created directory 'project/lib'
mkdir: created directory 'project/bin'
mkdir: created directory 'project/bin/etc'
dahu@dahu-OptiPlex-3046:~/myfile/dahu$ tree
.
├── 777
├── daqing
├── project
│ ├── bin
│ │ └── etc
│ └── lib
├── test
└── test1
5. rm
-f, --force 忽略不存在的文件,从不给出提示。 -i, --interactive 进行交互式删除 -r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。 -v, --verbose 详细显示进行的步骤 --help 显示此帮助信息并退出 --version 输出版本信息并退出
6. rmdir
rmdir 目录名 命令不能直接删除非空目录
感觉没啥用
7. mv
-b :若需覆盖文件,则覆盖前先行备份。 -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖; -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖! -u :若目标文件已经存在,且 source 比较新,才会更新(update) -t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
实例三:将文件log1.txt,log2.txt,log3.txt移动到目录test3中。 命令: mv log1.txt log2.txt log3.txt test3 mv -t /opt/soft/test/test4/ log1.txt log2.txt log3.txt
实例六:目录的移动 命令: mv dir1 dir2
实例7:移动当前文件夹下的所有文件到上一级目录 命令: mv * ../
实例八:把当前目录的一个子目录里的文件移动到另一个子目录里 命令: mv test3/*.txt test5
8. cp
在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数。
但是如果是在shell脚本中执行cp时,没有-i参数时不会询问是否覆盖。
-a, --archive 等于-dR --preserve=all --backup[=CONTROL 为每个已存在的目标文件创建备份 -b 类似--backup 但不接受参数 --copy-contents 在递归处理是复制特殊文件内容 -d 等于--no-dereference --preserve=links -f, --force 如果目标文件无法打开则将其移除并重试(当 -n 选项 存在时则不需再选此项) -i, --interactive 覆盖前询问(使前面的 -n 选项失效) -H 跟随源文件中的命令行符号链接 -l, --link 链接文件而不复制 -L, --dereference 总是跟随符号链接 -n, --no-clobber 不要覆盖已存在的文件(使前面的 -i 选项失效) -P, --no-dereference 不跟随源文件中的符号链接 -p 等于--preserve=模式,所有权,时间戳 --preserve[=属性列表 保持指定的属性(默认:模式,所有权,时间戳),如果 可能保持附加属性:环境、链接、xattr 等 -R, -r, --recursive 复制目录及目录内的所有项目
在没有带-a参数时,两个文件的时间是不一样的。在带了-a参数时,两个文件的时间是一致的。
dahu@dahu-OptiPlex-3046:~/myfile/dahu/777$ cp log2.txt ../log dahu@dahu-OptiPlex-3046:~/myfile/dahu$ ls -lR .: total 24 drwxrwxr-x 2 dahu dahu 4096 4月 1 17:37 777 drwxrwxr-x 2 dahu dahu 4096 4月 1 16:16 daqing -rw-rw-r-- 1 dahu dahu 8 4月 1 17:38 log drwxrwxr-x 4 dahu dahu 4096 4月 1 16:52 project drwxrwxr-x 2 dahu dahu 4096 4月 1 16:16 test drwxrwxr-x 2 dahu dahu 4096 4月 1 16:17 test1 ./777: total 8 -rw-rw-r-- 1 dahu dahu 8 4月 1 17:31 log1.txt -rw-rw-r-- 1 dahu dahu 25 4月 1 17:37 log2.txt dahu@dahu-OptiPlex-3046:~/myfile/dahu/777$ cp -a log1.txt ../log dahu@dahu-OptiPlex-3046:~/myfile/dahu$ ls -lR .: total 24 drwxrwxr-x 2 dahu dahu 4096 4月 1 17:37 777 drwxrwxr-x 2 dahu dahu 4096 4月 1 16:16 daqing -rw-rw-r-- 1 dahu dahu 8 4月 1 17:31 log drwxrwxr-x 4 dahu dahu 4096 4月 1 16:52 project drwxrwxr-x 2 dahu dahu 4096 4月 1 16:16 test drwxrwxr-x 2 dahu dahu 4096 4月 1 16:17 test1 ./777: total 8 -rw-rw-r-- 1 dahu dahu 8 4月 1 17:31 log1.txt -rw-rw-r-- 1 dahu dahu 25 4月 1 17:37 log2.txt