Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机
Linux的目录结构
bin (binaries)存放二进制可执行文件
boot 存放用于系统引导时使用的各种文件
dev (devices)用于存放设备文件
etc (etcetera)存放系统配置文件
home 存放用户文件的根目录
lib (library)存放跟文件系统中的程序运行所需要的共享库及内核模块
mnt (mount)系统管理员安装临时文件系统的安装点
root 超级用户目录
sbin (super user binaries)存放二进制可执行文件,只有root才能访问
tmp (temporary)用于存放各种临时文件
usr (unix shared resources)用于存放共享的系统资源
var (variable)用于存放运行时需要改变数据的文件
1、文件基本操作命令
1. ls命令
ls命令的功能是显示指定目录下的文件目录清单
(1)ls示例:不带参数
功能:
显示指定目录中的文件清单,如果没有指定任何目录,则默认为当前目录
注意:
ls /root 即展示目录[/root]下的文件清单
ls abc 即展示当前目录下的[abc]目录的文件清单
ls /root/abc
ls abc/d/c …
(2)ls示例二:显示所有文件
功能:
参数-a 显示所有文件(包含隐含文件)
说明:
若文件名以“.”开头,则认为是隐含的,进而
普通的ls命令不显示以“.”开头的文件;所以
要完全显示某目录下的文件清单,必须加上-a
参数才行。
(3)ls示例三:长格式输出
功能:
参数-l 的功能是:以长格式列表输出指定目录中的文件清单
注意:
每个文件的长格式包括以下内容:
文件类型 | 文件权限 | 连接数 | 属主 | 属组 | 大小(b) | 日期 | 时间 | 文件名 |
---|---|---|---|---|---|---|---|---|
d | rwxrwxr-x | 2 | user1 | user1 | 4096 | Aug 17 | 09:10 | abc |
如上9位权限分别为:
属主的权限 | 属组的权限 | 其他用户的权限 |
---|---|---|
rw- | rwx | r-x |
r读权限、w写权限、x执行权限
(4)ls示例四——递归显示
[user1@server1 ~]$ ls -R
参数-R 的功能是:递归显示指定目录下的文件清单,即会显示指定
目录分支内各子目录中的文件清单。
2. pwd命令
[user1@server1 ~]$ pwd/home/user1
功能:显示当前目录。
3. mkdir命令
(1)mkdir示例一
[user1@server1 ~]# mkdir abc功能:在当前目录下创建目录abc
注意:mkdir abc/def 在已存在的abc目录下创建新目录def
:mkdir /root/abc/zhj …
(2)mkdir示例二——创建多级目录
[user1@server1 ~]$ mkdir -p a/b/c如上 创建了多级新目录。如下 可以查看新创建的多级目录[user1@server1 ~]$ ls –R aa:ba/b:ca/b/c:
功能:参数-p 即可创建多级目录
4. cd命令
(1)cd示例一——切换工作目录
[user1@server1 ~]$ cd /var[user1@server1 var]$ pwd/var
功能:将当前的工作目录切换为/var
(2)cd示例二——切换到当前用户的主目录
[user1@server1 var]$ cd[user1@server1 ~]$ pwd/home/user1
功能:不带参数的cd命令直接将当前的工作目录切换为该用户的主目录。
主目录又称为家目录,在RHEL中是在创建用户时,自动在/home下
为用户创建一个与其用户名同名的目录,并将该目录的所有权划归给
该用户所有。
注意:字符“~”代表(当前)用户的主目录。
:root用户的家目录不在/home下,而是有自己的独有的目录/root
5. touch命令
(1)touch示例一:创建空文件
[user1@server1 ~]$ touch myfile[user1@server1 ~]$ ls -l myfile-rw-rw-r-- 1 user1 user1 0 Aug 17 11:54 myfile
功能:如果myfile不存在,则创建一个大小为0字节名为
myfile的空文件。
如果myfile已存在,则将改变myfile的最后修改时间。
6. cp命令
(1)cp示例一:复制文件
[user1@server1 ~]$ cp /etc/php.* abc功能:将/etc/目录下以php.开头的文件 文件复制到目录abc中。说明:[*]是通配符,可以匹配多个字符;“?”只能匹配一 个字符。
(2)cp示例二:复制目录
[user1@server1 ~]$ cp -R /etc abc功能:增加了参数-R,就能将目录/etc下面的所有子目录和文件都 复制到目录abc中。
7. mv命令
(1)mv示例一:将文件移动到目录中
[user1@server1 ~]$ mv myfile mydir1功能:将文件myfile剪切到目录mydir1中。
(2)mv示例二:文件改名
[user1@server1 ~]$ mv myfile myfile2功能:将文件(或目录)myfile重命名为myfile2。
8. rmdir/rm命令
[user1@server1 ~]$ rmdir mydir1
功能:删除指定的空目录。
[user1@server1 ~]$ rm -rf abc
功能:参数-r是递归的意思,即可以删除非空目录;参数-f是
强制的意思。
[user1@server1 ~]$ rm php.ini
功能:删除指定的文件 php.ini。
9. cat命令
(1)cat示例一:显示文件内容
[user1@server1 ~]$ cat myfilehello,world
(2)cat示例二:创建文件 ,并输入简短的文本
[user1@server1 ~]$ cat > myfile2Welcome to Linux World!按ctrl+d结束输入.
10. more和 less命令
[user1@server1 ~]$ more /etc/httpd/conf/httpd.conf
less /etc/httpd/conf/httpd.conf
功能:分屏显示指定文件httpd.conf的内容,非常适合显示超过一屏的文
本文件。每按一下空格键,向后翻一屏;每按一次回车键,向后翻一
行。
说明:与more功能很相似,只不过less功能更强大,支持PageUp键向前翻
屏,及PageDown向后翻屏。
注意:查看篇幅较大的文本文件,more和less会很有利。
按”q”键退出阅读
11. head命令
(1)head示例一:显示文件头10行内容
$ head /etc/httpd/conf/httpd.conf功能:默认显示指定文件的头10行的内容。
(2)head示例二:显示文件头n行内容
$ head -n 19 /etc/httpd/conf/httpd.conf功能:参数-n设置显示指定行数,本例会显示文件的头 19行的内容。
12. tail命令
(1)tail示例一:显示文件最后10行内容
$ tail /etc/httpd/conf/httpd.conf功能:默认显示指定文件的末尾10行的内容。
(2)tail示例二:显示文件最后n行内容
$ tail -n 12 /etc/httpd/conf/httpd.conf功能:参数-n设置显示指定行数;本例会显示文件的末尾12行的内容。
13. grep命令:文本搜索工具
(1)在db.sql文件中查找含有”table”的行,并显示
[root@zzz ~]# grep table db.sql
(2)在install.log和install.log.syslog文件中查找含有“new”的行
[root@zzz ~]# grep new install.log install.syslog
(3)grep命令允许使用正则表达式
在当前目录中的,所有文件名以db开头的文件中查找
9个连续的小写英文字母
[root@zzz ~]# grep '[a-z]\{9\}' db*
其中’{’是特殊字符,所以需要转义为’\{’
参数 c:只输出匹配行的计数。
i:不区分大 小写。
h:查询多文件时不显示文件名。
l:查询多文件时只输出包含匹配字符的文件名。
n:显示匹配行及行号。
v:显示不包含匹配文本的所有行。
(4)grep 高亮
[root@zzz ~]# grep -ni --color=always '[a-z]' db.sql