常见的shell命令总结
本文总结部分常见的shell命令,希望像我这样的linux小白在熟悉这些命令后,能够基本应付小白阶段遇到的问题
1.cd
cd 后面跟上目录名,可以进入这个目录,目录写法有绝对路径与相对路径
绝对路径:以根目录开始,明确的指出要到达的目录的全名,例如
[zhaozhao@bogon mycode]$ cd /home/zhaozhao/mycode/C_plus_program/
[zhaozhao@bogon C_plus_program]$
绝对路径显得相对繁琐
相对路径:相对路径允许用户基于当前目录来寻找其他目录
(.)表示当前目录
(..)表示当前目录的父目录
[zhaozhao@bogon C_plus_program]$ cd .. [zhaozhao@bogon mycode]$ cd ./C_plus_program/ [zhaozhao@bogon C_plus_program]$
如果要进入根目录,cd ~可以直接带你到跟目录
[zhaozhao@bogon C_plus_program]$ cd ~ [zhaozhao@bogon ~]$
2.ls
ls 最基本的格式会显示当前目录下的文件和目录
[zhaozhao@bogon ~]$ ls blog_plan.c mycode Qt5.6.2 Qt_programme QT安装包 公共 模板 视频 图片 文档 下载 音乐 桌面
一般的linux版本都会以颜色来区分文件类型,例如我的linux上普通文件为绿色,目录文件为蓝色。如果你的版本不支持彩色
可以用 —F参数来区分文件与目录
[zhaozhao@bogon ~]$ ls -F blog_plan.c Qt5.6.2/ QT安装包/ 模板/ 图片/ 下载/ 桌面/ mycode/ Qt_programme/ 公共/ 视频/ 文档/ 音乐/
可以看到,所以的目录文件后面都带着/.
ls命令显示当前目录下的文件,但linux长使用一些隐藏文件来保存配置信息。直接使用ls无法显示隐藏文件
这时可以添加 -a选项
[zhaozhao@bogon ~]$ ls -a . .bash_profile .config .esd_auth mycode QT安装包 .vimrc 图片 桌面 .. .bashrc .designer .ICEauthority .pki .test.sh.swp 公共 文档 .bash_history blog_plan.c .emacs .local Qt5.6.2 .vim 模板 下载 .bash_logout .cache .emacs.d .mozilla Qt_programme .viminfo 视频 音乐
使用-R参数可以查看当前目录包含的目录中的文件
[zhaozhao@bogon mycode]$ ls -R .: C_plus_program C_program _linux struct system_fun ./C_plus_program: ./C_program: ./_linux: ./struct: ./system_fun: close close.c myfile myfile2 open open.c read read.c write write.c
ls 只是单纯的列出了文件与目录,如果我们要获取关于目录所包含的文件更多的信息,可以添加 -l 选项
或者直接使用 ll
[zhaozhao@bogon mycode]$ ls -l 总用量 4 drwxrwxr-x. 2 zhaozhao zhaozhao 6 3月 28 12:54 C_plus_program drwxrwxr-x. 2 zhaozhao zhaozhao 6 3月 29 18:25 C_program drwxrwxr-x. 2 zhaozhao zhaozhao 6 3月 28 12:54 _linux drwxrwxr-x. 2 zhaozhao zhaozhao 6 3月 28 12:54 struct drwxrwxr-x. 2 zhaozhao zhaozhao 4096 3月 29 18:27 system_fun
使用这种方式,输出了文件的很多信息
ls 默认显示当前目录包含的文件,也可以在ls 后面跟上目录名(绝对路径,相对路径都可以),那么终端会
显示该目录包含的文件。
[zhaozhao@bogon ~]$ ls blog_plan.c mycode Qt5.6.2 Qt_programme QT安装包 公共 模板 视频 图片 文档 下载 音乐 桌面 [zhaozhao@bogon ~]$ ls mycode/ C_plus_program C_program _linux struct system_fun [zhaozhao@bogon ~]$ ls ./mycode/ C_plus_program C_program _linux struct system_fun [zhaozhao@bogon ~]$ ls /home/zhaozhao/mycode/ C_plus_program C_program _linux struct system_fun
ls能够识别标准通配符,例如?可以匹配任意单个字符,*可以匹配零个或者多个字符
[zhaozhao@bogon mycode]$ ls system_fun/ close close.c myfile myfile2 open open.c read read.c write write.c [zhaozhao@bogon mycode]$ ls system_?un close close.c myfile myfile2 open open.c read read.c write write.c
[zhaozhao@bogon mycode]$ ls system_fun/ close close.c myfile myfile2 open open.c read read.c write write.c [zhaozhao@bogon mycode]$ ls syst* close close.c myfile myfile2 open open.c read read.c write write.c
3.touch
touch 命令常用于创建文件,在touch 后面跟文件名,就可以在当前目录下创建文件(当然,你也可以指定要创建的目录)
[zhaozhao@bogon mycode]$ ls C_plus_program C_program _linux struct system_fun [zhaozhao@bogon mycode]$ touch new_file [zhaozhao@bogon mycode]$ ls C_plus_program C_program _linux new_file struct system_fun [zhaozhao@bogon mycode]$ ll new_file -rw-rw-r--. 1 zhaozhao zhaozhao 0 3月 29 19:54 new_file
当touch后面的文件不存在时,会创建这个文件,如果文件以及存在,touch命令会改变文件的访问时间和修改时间
[zhaozhao@bogon mycode]$ ll new_file -rw-rw-r--. 1 zhaozhao zhaozhao 0 3月 29 19:54 new_file [zhaozhao@bogon mycode]$ touch new_file [zhaozhao@bogon mycode]$ ll new_file -rw-rw-r--. 1 zhaozhao zhaozhao 0 3月 29 19:57 new_file
文件被touch后,时间的值是实时更新的,你也可以指定一个时间给它,使用-t选项
[zhaozhao@bogon mycode]$ touch -t 201703292100 new_file [zhaozhao@bogon mycode]$ ll new_file -rw-rw-r--. 1 zhaozhao zhaozhao 0 3月 29 2017 new_file
文件时间被我们修改了
4.cp
cp命令可以将文件目录从一个位置复制到另一个位置,基本用法是cp + 源对象 + 目标对象
[zhaozhao@bogon mycode]$ cp new_file struct/ [zhaozhao@bogon mycode]$ ls struct/ new_file
5.mv
mv命令可以将文件或者目录移动到另外一个位置
6.rm
rm命令可以删除某个文件或者目录
[zhaozhao@bogon mycode]$ ls C_plus_program C_program _linux new_file struct system_fun [zhaozhao@bogon mycode]$ rm new_file [zhaozhao@bogon mycode]$ ls C_plus_program C_program _linux struct system_fun
添加 -f 选项可以强制删除,-r 选项可以递归删除。