赞
踩
目录
在学习linux基本指令之前,我们需要了解什么是操作系统,以及为什么要有操作系统。我们首先要明白计算机软硬件体系存在自己的层次结构。其中最底层为硬件层,硬件被操作系统通过驱动程序来操作使用。最顶层为用户层,用户层通过 指令 来与操作系统交互。
综上:
1、操作系统是一款进行 软硬件资源管理 的 软件。
2、操作系统对软硬件进行合理管理 ,以达到为上层用户提供 良好的、稳定的、安全的运行环境的目的。
那么我们为什么要学习指令呢?指令是用来做什么的?
接下来我们所要学习的Linux指令,大家都可以类比到 Windows 操作系统里来理解,我们所写下的每一条指令,都可以对应着 Windows 中的 “双击”、“新建”、“删除”等等功能。
功能:显示用户当前所处的路径,即当前路径。
- [root@iZuf69tfiox41j76yf0416Z lll]# pwd
- /root/lll
- [root@iZuf69tfiox41j76yf0416Z lll]#
对应到 Windows 操作系统中,就是用户当前所处的文件夹。
Linux 与 Windows 路径的不同之处在于 Linux 的路径分隔符为 / ,而 Windows 的路径分隔符为 \ 。
功能:显示指定路径下的文件列表,包括目录、普通文本文件等等。
语法:ls [命令选项] [目录或文件]
如果不加目录或者文件,那么就默认显示当前路径下的文件列表。添加目录就会显示指定目录下的文件列表。添加文件就会显示指定文件的文件名及信息。
- [root@iZuf69tfiox41j76yf0416Z lll]# ls
- newdir test.c
- [root@iZuf69tfiox41j76yf0416Z lll]# ls newdir
- dir text1.c
- [root@iZuf69tfiox41j76yf0416Z lll]# ls test.c
- test.c
- [root@iZuf69tfiox41j76yf0416Z lll]#
ls 为指令,在指令之后可以添加 命令选项 。常见的命令有:
ls :只显示文件、目录名
ls -a:列出目录下的所有文件,包括以 . 开头的隐藏文件
ls -d:将目录像文件一样显示,而不是显示其下的文件。 如:ls –d [指定目录]
ls -i:输出文件的 i 节点的索引信息。 如 ls –ai [指定文件]
ls -k:以 k 字节的形式表示文件的大小。ls –alk [指定文件]
ls -l:列出文件的详细信息。
ls -n:用数字的 UID,GID 代替名称。
ls -F:在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
ls -r:对目录反向排序。
ls -t:以时间排序。
ls -s:在文件名前输出该文件的大小。
ls -R:列出所有子目录下的文件。(递归)
ls -1:一行只输出一个文件。
我们最常用的命令选项有两个,分别为 -l 与 -a。
ls -l:以 list(列表)的形式显示文件更多的属性。
- [root@iZuf69tfiox41j76yf0416Z lll]# ls
- newdir test.c
- [root@iZuf69tfiox41j76yf0416Z lll]# ls -l
- total 4
- drwxr-xr-x 3 root root 4096 Dec 18 14:18 newdir
- -rw-r--r-- 1 root root 0 Dec 18 13:00 test.c
- [root@iZuf69tfiox41j76yf0416Z lll]#
ls -l 命令可以写为 ll 。
ls -a:显示当前路径下的所有文件,包括隐藏文件。
在 Linux 下,文件/目录如果以 . 开头,就是一个隐藏文件。
隐藏文件在正常情况下不会显示,只有在添加了 -a 选项时才会显示出来
- [root@iZuf69tfiox41j76yf0416Z lll]# ls -l
- total 4
- drwxr-xr-x 3 root root 4096 Dec 18 14:18 newdir
- -rw-r--r-- 1 root root 0 Dec 18 13:00 test.c
- [root@iZuf69tfiox41j76yf0416Z lll]# ls -l -a
- total 16
- drwxr-xr-x 4 root root 4096 Dec 18 16:41 .
- dr-xr-x---. 6 root root 4096 Dec 18 13:09 ..
- drwxr-xr-x 2 root root 4096 Dec 18 16:41 .hide
- drwxr-xr-x 3 root root 4096 Dec 18 14:18 newdir
- -rw-r--r-- 1 root root 0 Dec 18 13:00 test.c
- [root@iZuf69tfiox41j76yf0416Z lll]#
-
多个选项可以合起来写,比如 ls -l -a 可以写成 ls -la。
功能:进入指定目录。
语法:cd [目录]
如果指令后不加目录,就默认进入当前目录(即用户所处路径不会发生任何变化)
- [root@iZuf69tfiox41j76yf0416Z ~]# pwd
- /root
- [root@iZuf69tfiox41j76yf0416Z ~]# cd lll
- [root@iZuf69tfiox41j76yf0416Z lll]# pwd
- /root/lll
- [root@iZuf69tfiox41j76yf0416Z lll]#
cd 后除了可以跟目录以外,还可以跟各种字符,已完成各种不同的功能:
cd . :进入当前目录
cd ..:进入上级目录
在Linux下,我们通常是使用 路径 来找到一个目录/文件的,而且一个目录/文件的路径一定是唯一的。
路径有两种表示方式:绝对路径 和 相对路径。
绝对路径:从根目录开始,定位文件的路径。
相对路径:相对于当前路径,定位文件的路径。
举例说明一下:
假设当前用户所处的路径是红圈圈起的bin目录,那么想要切换到lib目录中,就有两种方法:
1、绝对路径:
cd /usr/lib
直接从根目录开始向下找到lib目录。
2、相对路径:
cd ../lib
先返回上级目录,再找到上级目录下的lib目录。
总结:
绝对路径:可以准确的找到指定目录/文件,但是比较麻烦,一般是在某些配置文件中,进行对某种文件进行配置的时候采用。
相对路径:用起来相对简单,是我们后续指令操作的时候,常用的路径定位方案。
cd指令的其他用法:
cd ~: 进入当前用户的家目录。
以 root 用户举例:
- [root@iZuf69tfiox41j76yf0416Z newdir]# pwd
- /root/lll/newdir
- [root@iZuf69tfiox41j76yf0416Z newdir]# cd ~
- [root@iZuf69tfiox41j76yf0416Z ~]# pwd
- /root
- [root@iZuf69tfiox41j76yf0416Z ~]#
cd -:回到最近上一次所处的路径。
- [root@iZuf69tfiox41j76yf0416Z ~]# pwd
- /root
- [root@iZuf69tfiox41j76yf0416Z ~]# cd -
- /root/lll/newdir
- [root@iZuf69tfiox41j76yf0416Z newdir]# cd -
- /root
- [root@iZuf69tfiox41j76yf0416Z ~]#
功能:以树状结构显示Linux执行的目录结构。
语法:tree [目录]
如果不加目录,那么默认以树状结构显示当前目录下的目录结构。
- [root@iZuf69tfiox41j76yf0416Z lll]# ls
- newdir test.c
- [root@iZuf69tfiox41j76yf0416Z lll]# tree newdir
- newdir
- ├── dir
- └── text1.c
-
- 1 directory, 1 file
- [root@iZuf69tfiox41j76yf0416Z lll]# tree
- .
- ├── newdir
- │ ├── dir
- │ └── text1.c
- └── test.c
-
- 2 directories, 2 files
- [root@iZuf69tfiox41j76yf0416Z lll]#
使用 tree 命令时要额外注意:如果系统里还没有 tree 命令,那么在系统运行的时候会显示 “command not found”。这个时候就需要在 root 账户下,使用 yum 命令来安装 tree 命令,具体操作如下:
[root@iZuf69tfiox41j76yf0416Z lll]# yum install -y tree
系统会自动下载相关命令,之后用户就可以直接使用了。
功能:在指定路径下,创建一个普通文本文件。
语法:touch [目录][文件名]
如果不加目录,那么默认在当前路径下创建普通文本文件。
常用选项:
touch -a 或--time=atime或--time=access或--time=use只更改存取时间。
touch -c 或--no-create 不建立任何文档。
touch -d 使用指定的日期时间,而非现在的时间。
touch -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
touch -m 或--time=mtime或--time=modify 只更改变动时间。
touch -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
touch -t 使用指定的日期时间,而非现在的时间。
- [root@iZuf69tfiox41j76yf0416Z newdir]# ls
- dir text1.c
- [root@iZuf69tfiox41j76yf0416Z newdir]# touch tou1
- [root@iZuf69tfiox41j76yf0416Z newdir]# ls
- dir text1.c tou1
- [root@iZuf69tfiox41j76yf0416Z newdir]# touch ../tou2
- [root@iZuf69tfiox41j76yf0416Z newdir]# ls ..
- newdir test.c tou2
- [root@iZuf69tfiox41j76yf0416Z newdir]#
nano 是一个简单的工具,在学习 vim 之前,我们可以使用 nano 工具打开一个记事本来进行文件编写。
安装 nano 命令:在 root 账户下操作:
[root@iZuf69tfiox41j76yf0416Z ~]# yum install -y nano
语法:nano [文件名]:对该文件进行编辑
如果该文件不存在,那么会自动新建该文件并保存。
注意:在 nano 工具下,无法使用小键盘(数字键盘)编辑。
输入 ctrl + x 退出,输入 y 保存,输入 enter 结束返回。
我们使用 gcc 来编译文本文件中的代码。
- [root@iZuf69tfiox41j76yf0416Z dir]# gcc test.c
- [root@iZuf69tfiox41j76yf0416Z dir]# ls -l
- total 16
- -rwxr-xr-x 1 root root 8440 Dec 24 15:55 a.out
- -rw-r--r-- 1 root root 69 Dec 24 15:50 test.c
- [root@iZuf69tfiox41j76yf0416Z dir]# ./a.out
- hello world
- [root@iZuf69tfiox41j76yf0416Z dir]#
a.out就是通过 gcc 编译出的可执行文件,./a.out是执行当前目录下的a.out 文件。
功能:创建一个目录。
语法:mkdir [命令选项][目录名]
- [root@iZuf69tfiox41j76yf0416Z dir]# ls
- a.out test.c
- [root@iZuf69tfiox41j76yf0416Z dir]# mkdir mycode
- [root@iZuf69tfiox41j76yf0416Z dir]# ls
- a.out mycode test.c
- [root@iZuf69tfiox41j76yf0416Z dir]#
如果想创建一串目录,那么需要加上命令选项 -p :
mkdir -p:递归创建多个目录
- [root@iZuf69tfiox41j76yf0416Z dir]# ls
- a.out mycode test.c
- [root@iZuf69tfiox41j76yf0416Z dir]# mkdir -p d1/d2/d3/d4/d5
- [root@iZuf69tfiox41j76yf0416Z dir]# ls
- a.out d1 mycode test.c
- [root@iZuf69tfiox41j76yf0416Z dir]# tree d1
- d1
- └── d2
- └── d3
- └── d4
- └── d5
-
- 4 directories, 0 files
- [root@iZuf69tfiox41j76yf0416Z dir]#
功能:删除空目录
语法:rmdir [命令选项][目录名]
注:rmdir命令只能删除空目录。
rmdir -p:当删除子目录后,父目录也变为空时,同时删除父目录。
- [root@iZuf69tfiox41j76yf0416Z dir]# ls
- a.out d1 mycode test.c
- [root@iZuf69tfiox41j76yf0416Z dir]# rmdir -p d1/d2/d3/d4/d5
- [root@iZuf69tfiox41j76yf0416Z dir]# ls
- a.out mycode test.c
功能:删除文件与目录
语法:rm [命令选项][文件/目录]
常用选项:
rm -f 即使文件属性为只读(即写保护),亦直接删除
rm -i 删除前逐一询问确认
rm -r 删除目录及其下所有文件
rm [文件/目录]:只能删除空目录或文件。
- [root@iZuf69tfiox41j76yf0416Z lll]# ls
- newdir test.c tou2
- [root@iZuf69tfiox41j76yf0416Z lll]# rm newdir
- rm: cannot remove ‘newdir’: Is a directory
- [root@iZuf69tfiox41j76yf0416Z lll]# rm test.c
- rm: remove regular empty file ‘test.c’?
输入 y 确认删除,输入 n 取消删除。
rm -f [文件/目录]:强制删除空目录或文件。
- [root@iZuf69tfiox41j76yf0416Z lll]# ls
- newdir test.c tou2
- [root@iZuf69tfiox41j76yf0416Z lll]# rm -f test.c
- [root@iZuf69tfiox41j76yf0416Z lll]# ls
- newdir tou2
- [root@iZuf69tfiox41j76yf0416Z lll]#
无需再进行确认。
rm -r [目录]:递归删除,删除该目录下的所有目录及文件。
- [root@iZuf69tfiox41j76yf0416Z lll]# ls
- newdir newdir2 tou2
- [root@iZuf69tfiox41j76yf0416Z lll]# ls newdir2
- test.c
- [root@iZuf69tfiox41j76yf0416Z lll]# rm -r newdir2
- rm: descend into directory ‘newdir2’?
输入 y 确认删除,输入 n 取消删除。
rm -rf [目录]:递归强制删除,强制删除该目录下的所有目录及文件。
- [root@iZuf69tfiox41j76yf0416Z newdir]# ls
- dir text1.c tou1
- [root@iZuf69tfiox41j76yf0416Z newdir]# ls dir
- a.out mycode test.c
- [root@iZuf69tfiox41j76yf0416Z newdir]# rm -rf dir
- [root@iZuf69tfiox41j76yf0416Z newdir]# ls
- text1.c tou1
- [root@iZuf69tfiox41j76yf0416Z newdir]#
无需再进行确认。
以上就是本篇文章的全部内容,主要介绍了一部分 Linux 指令的使用,希望同学们能够喜欢,如果有不对的地方还请各位大佬指正。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。