Files
kaka111222333-kaka111222333…/_posts/2014-01-25-linux-filecmd.md
2019-11-17 01:12:14 +08:00

406 lines
9.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
layout: post
title: Linux目录与文件
tags: Linux 命令
categories: Linux
---
* TOC
{:toc}
>`.`
>
>代表此层目录
>
>`..`
>
>代表上一层目录
>
>`-`
>
>代表前一个工作目录
>
>`~`
>
>代表『目前使用者身份』所在的家目录
>
>`~account`
>
>代表 account 这个使用者的家目录(account是个帐号名称)
---
## `cd `
**变换目录**
---
## `pwd`
**显示目前所在的目录**
[root@www ~]# `pwd [-Pl]`
选项与参数:
`-P`:显示出真实的路径,而非使用连结 (link) 路径。
`-l ` : 显示逻辑路径(默认)
---
## `mkdir`
**创建新目录**
[root@www ~]# `mkdir [-mp]` 目录名称
选项与参数:
`-m` :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
`-p` :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
---
## `rmdir`
**删除『空』的目录**
[root@www ~]# `rmdir [-p]` 目录名称
选项与参数:
`-p` :连同上一级『空的』目录也一起删除
---
## `$PATH`
**环境变量**
不同身份使用者默认的PATH不同默认能够随意运行的命令也不同(如root与vbird)
PATH是可以修改的所以一般使用者还是可以透过修改PATH来运行某些位於/sbin或/usr/sbin下的命令来查询
使用绝对路径或相对路径直接指定某个命令的档名来运行会比搜寻PATH来的正确
命令应该要放置到正确的目录下,运行才会比较方便;本目录(.)最好不要放到PATH当中。
---
## `ls`
**查看文件与目录**
[root@linux ~]# `ls [-aAdfFhilRS]` 目录名称
[root@linux ~]# `ls [--color={none,auto,always}]` 目录名称
[root@linux ~]# `ls [--full-time]` 目录名称
选项与参数:
`-a` :全部的档案,连同隐藏档( 开头为 . 的档案) 一起列出来~
`-A` :全部的档案,连同隐藏档,但不包括 . 与 .. 这两个目录,一起列出来~
`-d` :仅列出目录本身,而不是列出目录内的档案数据
`-f` :直接列出结果,而不进行排序 (ls 预设会以档名排序!)
`-F` :根据档案、目录等信息,给予附加数据结构
>例如: `*`:代表可执行档; `/`:代表目录; `=`:代表 socket 档案; `|`:代表 FIFO 档案
`-h` :将档案容量以人类较易读的方式(例如 GB, KB 等等)列出来
`-i` :列出 inode 位置,而非列出档案属性
`-l` :长数据串行出,包含档案的属性等等数据;
`-n` :列出 UID 与 GID 而非使用者与群组的名称
`-r` :将排序结果反向输出
`-R` :连同子目录内容一起列出来;
`-S` :以档案容量大小排序!
`-t` :依时间排序
`--color=never` :不要依据档案特性给予颜色显示;
`--color=always` :显示颜色
`--color=auto` :让系统自行依据设定来判断是否给予颜色
`--full-time` :以完整时间模式 (包含年、月、日、时、分) 输出
`--time={atime,ctime}` :输出 access 时间或 改变权限属性时间 (ctime) 而非内容变更时间 (modification time)
---
## `cp`
**复制文件或目录**
[root@www ~]# `cp [-adfilprsu]` 来源档(source) 目标档(destination)
[root@www ~]# `cp [options]` source1 source2 source3 .... directory
选项与参数:
`-a ` :相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
`-d` :若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
`-f` :为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
`-i` :若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
`-l` :进行硬式连结(hard link)的连结档创建,而非复制文件本身;
`-p` :连同文件的属性一起复制过去,而非使用默认属性(备份常用)
`-r` :递回持续复制,用於目录的复制行为;(常用)
`-s` :复制成为符号连结档 (symbolic link),亦即『捷径』文件;
`-u` :若 destination 比 source 旧才升级 destination
最后需要注意的,如果来源档有两个以上,则最后一个目的档一定要是『目录』才行!
---
## `rm`
**移除文件或目录**
[root@www ~]# `rm [-fir]` 文件或目录
选项与参数:
`-f` :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
`-i` :互动模式,在删除前会询问使用者是否动作
`-r` :递回删除啊!最常用在目录的删除了!这是非常危险的选项!!!
---
## `mv`
**移动文件与目录,或更名**
[root@www ~]# `mv [-fiu]` source destination
[root@www ~]# `mv [options]` source1 source2 source3 .... directory
选项与参数:
`-f` force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
`-i` :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
`-u` :若目标文件已经存在,且 source 比较新,才会升级 (update)
---
## `basename``dirname`
**取得路径的文件名称与目录名称**
[root@www ~]# `basename` /etc/sysconfig/network
network <== 很简单!就取得最后的档名~
[root@www ~]# `dirname` /etc/sysconfig/network
/etc/sysconfig <== 取得的变成目录名了!
---
## `cat`
**查看文件**
[root@www ~]# `cat [-AbEnTv]`
选项与参数:
`-A` :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
`-b` :列出行号,仅针对非空白行做行号显示,空白行不标行号!
`-E` :将结尾的断行字节 $ 显示出来;
`-n` :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
`-T` :将 [tab] 按键以 ^I 显示出来;
`-v` :列出一些看不出来的特殊字符
## `tac`
**反向显示**
---
## `nl`
**添加行号显示**
[root@www ~]# `nl [-bnw]` 文件
选项与参数:
`-b` :指定行号指定的方式,主要有两种:
> `-b a` :表示不论是否为空行,也同样列出行号(类似 cat -n)
>
> `-b t` :如果有空行,空的那一行不要列出行号(默认值)
`-n` :列出行号表示的方法,主要有三种:
> `-n ln` :行号在萤幕的最左方显示;
>
> `-n rn` :行号在自己栏位的最右方显示,且不加 0
>
> `-n rz` :行号在自己栏位的最右方显示,且加 0
`-w` :行号栏位的占用的位数。
---
## `more`
**一页一页翻动**
[root@www ~]# `more` /etc/man.config
在more查看文件时可在最底行输入:
空白键 (`space`):代表向下翻一页;
`Enter` :代表向下翻『一行』;
`/`字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
`:f` :立刻显示出档名以及目前显示的行数;
`q` :代表立刻离开 more ,不再显示该文件内容。
`b``[ctrl]-b` :代表往回翻页,不过这动作只对文件有用,对管线无用。
---
## `less`
**一页一页翻动**
[root@www ~]# `less` /etc/man.config
在more查看文件时可在最底行输入:
空白键(`space`) :向下翻动一页;
[`pagedown`]:向下翻动一页;
[`pageup`] :向上翻动一页;
`/`字串 :向下搜寻『字串』的功能;
`?`字串 :向上搜寻『字串』的功能;
`n` :重复前一个搜寻 (与 / 或 ? 有关!)
`N` :反向的重复前一个搜寻 (与 / 或 ? 有关!)
`q` :离开 less 这个程序;
---
## `head`
**取出前面几行**
[root@www ~]# `head [-n number]` 文件
选项与参数:
`-n` :后面接数字,代表显示几行的意思
---
## `tail`
**取出后面几行**
[root@www ~]# `tail [-n number]` 文件
选项与参数:
`-n` :后面接数字,代表显示几行的意思
`-f` :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
---
## `od`
**非纯文字档**
[root@www ~]# `od [-t TYPE]` 文件
选项或参数:
`-t` :后面可以接各种『类型 (TYPE)』的输出,例如:
>`a` :利用默认的字节来输出;
>
>`c` :使用 ASCII 字节来输出
>
>`d`[size] :利用十进位(decimal)来输出数据,每个整数占用 size bytes
>
>`f`[size] :利用浮点数值(floating)来输出数据,每个数占用 size bytes
>
>`o`[size] :利用八进位(octal)来输出数据,每个整数占用 size bytes
>
>`x`[size] :利用十六进位(hexadecimal)来输出数据,每个整数占用 size bytes
---
## `touch`
**修改文件时间或建置新档**
[root@www ~]# `touch [-acdmt]` 文件
选项与参数:
`-a` :仅修订 access time
`-c` :仅修改文件的时间,若该文件不存在则不创建新文件;
`-d` :后面可以接欲修订的日期而不用目前的日期,也可以使用 --date="日期或时间"
`-m` :仅修改 mtime
`-t` :后面可以接欲修订的时间而不用目前的时间,格式为[YYMMDDhhmm]
---
## `file`
**查看文件类型**
[root@www ~]# `file` 文件