目录和文件基本操作
- A.查看切换目录:
pwd显示当前完整目录
cd 切换路径:
绝对路径,以 / 为起点
相对路径,以当前路径为起点
使用一个点号“.”开头可明确表示以当前的工作目录作为起点。
使用两个点号“..”开头表示以当前目录的上一级目录(父目录)作为起点。
使用“~用户名”的形式开头表示以指定用户的宿主目录作为起点,省略用户名时默认为当前用户。
- B.ls 显示目录和文件信息
-l 显示完整的文件或目录信息(权限、时间、大小)
-a 显示所有文件,包括 . .. 和 隐藏文件
-A 显示所有文件,包括隐藏文件,不包括 .
-d 显示目录本身的属性,而不显示目录中的内容。
-R 以递归的方式显示目录里的所有子目录中的所有内容
--color 在字符模式中以颜色区分不同的文件
ls -ld 显示当前目录的详细属性
ls -lh 以更易读的长格式显示
可以结合通配符“*”可以匹配任意多个字符“?”可以匹配任意一个字符
- C.du 命令:统计目录及文件的空间占用情况
-a 所有文件,不仅是目录
-h 以更人性化的方式显示统计结果 k为单位
-s 只统计每个参数占用空间的大小
结合-sh 使用,将要统计的目录作为参数
结合-ah 使用,将当前目录作为参数,并列出该目录总共占用的空间大小
创建目录和文件
- mkdir 创建目录
-p 一次性创建嵌套多层目录
-
touch 创建空文件夹 可同时创建多个目标文件 如果存在更新时间
-
ln 创建链接(link)文件(类似于Windows系统中的快捷方式)
创建链接文件 -ln
为文件或目录建立连接文件;类似于Windows的快捷方式
软连接(又称为符号链接)删除原始文件之后 失效,使用范围 适用于文件或目录,保存位置 与原始文件可位于不同的文件系统中
硬链接,删除原始文件之后仍旧可用,使用范围只可用于文件,保存位置必须与原始文件在同一个文件系统(如一个Linux分区)内
软链接与源文件可以位于不同的文件系统中(创建软链接,必须结合“-s”选项明确指定)
Ln -s 源文件 链接文件或目标位置
硬链接只可用于文件,必须与原始文件在同一个文件系统
Ln 源文件 目标地址
复制、删除、移动目录和文件
- cp 复制(copy)文件目录
cp 源文件目录 目标文件目录
-f 强制覆盖不提醒
-i 覆盖目标文件或目录 提醒
-p 复制时保持源文件的权限属主及时间标记属性不变
-r 复制目录时必须使用此选项,表示递归复制所有文件及子目录
- rm 删除文件或目录(通常结合-rf使用直接删除而不提醒)
-f 强制删除不提醒
-i 删除目标文件或目录提醒
-r 删除目录时必须使用此选项 (整个目录,慎用)和-rf 一起用 千万别对根用它
- mv 移动 文件和目录 在同一个目录中运行此命令相当于重命名操作
查找目录和文件
- which
which 查找用户所执行的命令存放的目录(默认查到第一个于命令相符的文件后将不再查找,如果希望在所有搜索路径中查找可以添加“-a”选项)
echo $PATH 查看用户的环境变量(which命令查找Linux命令程序并显示所在的具体位置,搜索范围主要由用户的环境变量$PATH决定)
示例:
[root@localhost ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
注意:Shell内置的命令并没有对应的程序文件,因此使用which查找内部命令时将找不到对应的程序。
- find
格式如下:find 【查找范围】 【查找条件表达式】
按名称查找 -name 允许使用 * ? 通配符
按文件大小查找 -size +大于它 -小于它 k单位
按属性查找 -user
按文件类型 -type 文件f、目录d、块设备文件b、字符设备文件 c
两个条件以上 用 -a (并且) 或 -o (或者) 连接 a=and o=or
例: find /boot -size +1024k -a -name “*cnf”
目录和文件管理
-
查看文件内容:
-
cat命令——显示并连接(Concatenate)文件的内容
cat命令本来用于连接(Concatenate)多个文件的内容,但在实际使用中更多的用于查看文件内容。
查看第一块网卡配置文件的内容如下:
例:cat /etc/sysconfig/network-scripts/ifcfg-ens33
也可以同时查看多个文件的内容:同时查看文件redhat-release、version
cat /etc/redhat-release /proc/version -
more和less命令–分页查看文件内容
cat命令简单的直接显示整个文件的内容,当文件内容较多时,可能只看到文件最后一部分信息。
使用more命令查看超过一块屏的内容时将分页显示内容,并在左下角显示当前内容在整个文件中的百分比。按Enter键向下逐行滚动查看,按Space键可以向下翻一屏,按b向上翻一屏,按q键退出。
例:分屏查看/etc/httpd/conf/httpd.conf 网站配置文件
more /etc/httpd/conf/httpd.conf
more命令还可以结合管道符“|”使用。
例:以下操作可以分页查看/etc/目录下扩展名为“.conf”的配置文件。
ls -lh /etc/*.conf | more
[root@localhost ~]# ls -lh /etc/*.conf | more
-rw-r--r--. 1 root root 55 8月 8 2019 /etc/asound.conf
-rw-r--r--. 1 root root 15K 8月 8 2019 /etc/autofs.conf
-rw-------. 1 root root 232 8月 8 2019 /etc/autofs_ldap_auth.
conf
-rw-r--r--. 1 root root 22K 4月 11 2018 /etc/brltty.conf
-rw-r--r--. 1 root root 676 8月 9 2019 /etc/cgconfig.conf
-rw-r--r--. 1 root root 265 7月 24 02:14 /etc/cgrules.conf
-rw-r--r--. 1 root root 131 8月 9 2019 /etc/cgsnapshot_blackl
ist.conf
-rw-r--r--. 1 root root 1.1K 8月 8 2019 /etc/chrony.conf
-rw-r--r--. 1 root root 1.2K 4月 11 2018 /etc/dleyna-server-ser
vice.conf
-rw-r--r--. 1 root root 27K 8月 9 2019 /etc/dnsmasq.conf
-rw-r--r--. 1 root root 1.3K 8月 9 2019 /etc/dracut.conf
-rw-r--r--. 1 root root 112 8月 6 2019 /etc/e2fsck.conf
-rw-r--r--. 1 root root 20 10月 31 2018 /etc/fprintd.conf
-rw-r--r--. 1 root root 38 10月 30 2018 /etc/fuse.conf
--More--
less命令和more命令不同的就是more命令在结合管道符使用的时候不能向上翻页,less可以。
- head和tail命令——查看文件开头或末尾的内容。
head和tail是一对作用相反的命令,前者用于显示文件开头的一部分内容,后者用于显示末尾的一部分内容(通常用于查看日志内容,因为较新的日志记录总添加在最后),可以结合“-n”选项(n为具体的行数),若不指定默认显示十行。
例:head命令查看用户账号的前6行
head -6 /etc/passwd
例:tail命令查看系统公共日志文件/var/log/messages的最后十行(还可以配合-f 使用可以跟踪文件尾部内容的动态更新,便于实时监控文件内容的变化)
tail -f /var/log/messages
统计和检索文件内容
- wc命令——统计文件内容中的单词数量(Word Count)行数等信息
常用的选项有如下几个:
-c:统计文件内容中的字节数
-l:统计文件内容中的行数
-w:统计文件内容中的单词个数(以空格或制表位作为分隔)
当文件的行数、单词数或字节数有特殊意义的时候,使用wc命令可以巧妙的获得一些特殊信息。
如查一下/etc/passwd文件的行数,因为这个文件的每一行记录对应一个用户,那么查一下他的行数就得到了操作系统中的用户账号数量。
wc -l /etc/passwd
例;find /etc -name “*.conf” | wc -l
查/etc 下共有多少扩展名为 .conf的文件,应为find显示结果也是每一行一条记录,所以再结合wc -l 就可得出符合条件的文件数量。
[root@localhost ~]# find /etc/*.conf | wc -l
53
- grep命令——检索、过滤文件内容
grep命令用于在文件中查找并显示包含指定字符串的行,可以直接指定关键字符串作为查找条件,也可以使用条件表达式。
例如
(“^word”表示以word开头,“wordKaTeX parse error: Expected group after '^' at position 13: ”表示以word结尾,“^̲”表示空行)
基本格式:grep 【选项】 查找条件 目标文件
选项:
-i:查找内容时忽略大小写
-v:反转查找(Invert),即输出与查找条件不相符的行。
例:在账号文件/etc/passwd查找包含“ftp”字符串的行
grep “ftp” /etc/passwd
例:一些大量配置文件内容包含了空行和以#开头的注释文字,当你只需要查看有效配置信息时可过滤掉空行和以#开头的行。
grep -v “^#” /etc/yum.conf | grep -v “^$”