1、Linux上文件管理类命令及其常用方法和相关实例
-
ls命令:- list directory contents
ls命令用于显示目录内容,类似DOS下的dir命令,它的使用权限是所有用户。
1、格式:ls [OPTION]… [FILE]…
2、常用option和示例
ls -a
:显示所有文件,包括隐藏文件
ls -a /path
:显示指定路径下的所有文件
例:[root@localhost /]# ls -a /bin . dbus-send grep mkdir rm tracepath6 .. dbus-uuidgen gtar mknod rmdir traceroute
ls -A
:显示除了 · 和 ·· 之外的所有文件
例:[root@localhost /]# ls -A /bin alsaunmute dnsdomainname kbd_mode ping sync arch domainname keyctl ping6 tar
ls -l
:列出文件的详细信息
例:[root@localhost /]# ls -l /bin total 7888 -rwxr-xr-x. 1 root root 123 Jan 26 2015 alsaunmute -rwxr-xr-x. 1 root root 27776 Oct 15 2014 arch lrwxrwxrwx. 1 root root 4 Oct 8 04:03 awk -> gawk
ls -h
:将文件大小转换为易识别单位(K,M,G),转换后为非准确数
例:[root@hu recover]# ls -hl total 8.0K drwxr-xr-x. 2 root root 4.0K Nov 24 06:00 temp drwxr-xr-x. 2 root root 4.0K Nov 24 06:00 test
ls -ld
:查看目录自身属性,并非目录下文件属性
例:[root@hu /]# ls -dl /bin lrwxrwxrwx. 1 root root 7 Oct 11 08:36 /bin -> usr/bin
ls -d
:将目录像文件一样显示,而不是显示其下的文件
例:[root@hu /]# ls -d /bin /bin
ls -r
:对目录反向排序
例:[root@hu /]# ls /bin gst-typefind-0.10 ps2pdfwr znew gst-typefind-1.0 ps2ps zsoelim [root@hu /]# ls -r /bin zsoelim ps2ps gst-typefind-1.0 znew ps2pdfwr gst-typefind-0.10
ls -R
:列出所有子目录下的文件
例:[root@hu /]# ls -R /bin /bin: [ gst-xmlinspect ps2ps2 a2p gst-xmlinspect-0.10 psed
-
cat 命令:- concatenate files and print on the standard output
cat命令用于将[文件]或标准输入组合输出到标准输出。
1、格式:cat [OPTION]… [FILE]…
2、常用option和示例
cat -b
(–number):对非空输出行编号
例:[root@hu test]# cat -b cattest.txt 1 ferst line:cat - concatenate files and print on the standard ouput 2 second line:cat option rile 3 -A equivalent to 4 -b number nonempty output lines ,overrides
cat -E
(- -show-ends):在每行结束处显示$
例:[root@hu test]# cat -E cattest.txt ferst line:cat - concatenate files and print on the standard ouput$ second line:cat option rile $ -A equivalent to $ -b number nonempty output lines ,overrides $ $
cat -n
(- -number-nonblank):对输出的所有行进行编号
例:[root@hu test]# cat -n cattest.txt 1 ferst line:cat - concatenate files and print on the standard ouput 2 second line:cat option rile 3 -A equivalent to 4 -b number nonempty output lines ,overrides 5
-
rm命令:- remove files or directories
rm命令用于删除指定文件
1、格式:rm [OPTION]… FILE…
2、常用option和示例
rm -r
(-R,- -recursive):递归删除目录以及内容。
例:[root@hu tmp]# rm -r ssh-rUyqoLrCjwNf rm: descend into directory ‘ssh-rUyqoLrCjwNf’? y rm: remove socket ‘ssh-rUyqoLrCjwNf/agent.2898’? y rm: remove directory ‘ssh-rUyqoLrCjwNf’? y
rm -v
(- -verbose):详细显示进行的步骤。
例:[root@hu tmp]# rm -rv tracker-extract-files.0 rm: remove directory ‘tracker-extract-files.0’? y removed directory: ‘tracker-extract-files.0’
rm -f
(- -force):略过不存在的文件,不提示。
例:[root@hu tmp]# rm -rfv systemd-private-79decba513f549008b76c93fa5a90bbf-colord.service-3FbKkY removed directory: ‘systemd-private-79decba513f549008b76c93fa5a90bbf-colord.service-3FbKkY/tmp’ removed directory: ‘systemd-private-79decba513f549008b76c93fa5a90bbf-colord.service-3FbKkY’
rm -i
(- -interactive):进行任何删除操作前必须先确认。
例:[root@hu tmp]# rm -i /recover/temp/tmp/test.txt rm: remove regular empty file ‘/recover/temp/tmp/test.txt’?
rm -d
(- -directory):删除<文件>,即使该文件可能是非空目录(只有超级用户,仅当系统支持“unlink”非空目录时才有效)
例:[root@hu temp]# rm -d test rm: remove directory ‘test’? y
-
less命令:
less命令的功能和more命令一样,也是用来按页显示文件,不同之处在于less命令显示文件时,用户既可以向前又可以向后翻阅文件(其实man命令就是调用的less命令进行查看手册)
1、格式:less [OPTION] FILE
2、常用option和示例
less -c
:从顶部(由上到下)刷新屏幕,并显示文件内容,而不是通过底部滚动完成刷新。
less -f
:强制打开文件,二进制文件显示时,不提示警告。
例:[root@hu test]# less -f /bin/ls ^? ELF^B^A^A^@^@^@^@^@^@^@^@^@^B^@> ^@^A^@^@^@HK@^@^@^@^@^@@^@^@^ @^@^@^@^@<F0> <C3>^A^@^@^@^@^@^@^@^@^@@ ^@8^@ ^@@^@^^^@^]^@^F^@^@^@^E^@^@^@@^ @^@^@^@^@^@^@@^@@^@^@^@^@^@@^ @@^@^@^@^@^@<F8>^A^@^@^@^@^@^@
less -i
:搜索时忽略大小写,除非搜索串中包含大写字母。
less -I
:搜索时忽略大小写,除非搜索串中包含小写字母。less -m
:显示读取文件的百分比。
less -M
:显示读取文件百分比、行号及总行数。
例:[root@hu test]# less -m cattest.txt -ppattern or --pattern=patterncattest.txt 14%
[root@hu test]# less -M cattest.txt -ppattern or --pattern=patterncattest.txt lines 1-41/246 14%
less -N
:在每行前输出行号。
例:[root@hu test]# less -N cattest.txt 1 ferst line:cat - concatenate files and print on the standard ouput 2 second line:cat option rile 3 -A equivalent to 4 -b number nonempty output lines ,overrides
less -p pattern
:搜索pattern,比如在/etc/profile下搜索MAIT,就用less -p MAIT /etc/profile。
例:[root@hu test]# less -p ferst ./cattest.txt ferst line:cat - concatenate files and print on the standard ouput second line:cat option rile
less -s
:把连续多个空白行作为一个空白行显示 -
cp 命令:- copy files and directories
cp命令用于复制文件或目录。
1、格式:
cp [OPTION]… [-T] SOURCE DEST
(1)、若目标文件-DEST-不存在;则事先创建此源文件,并复制源文件数据流至此目标文件中
(2)、若目标文件存在- 若目标文件是非目录文件:则复制源文件数据流,覆盖目标文件
- 若目标文件时目录:则先在目标文件下创建一个与源文件名相同的文件,并将源文件数据复制到目标文件中。
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
(1)、若目标文件不存在:则报错。
(2)、 复制时需要加上-r选项。
(3)、若目标文件存在- 若目标文件时非目录文件:则报错。
- 若目标文件是目录:分别复制每个文件至目标文件中,并保持原名。
将<源>文件复制到<目录>,或将多个<源>复制到<目录>。
2、常用option和示例
cp -i
:人机交互模式,显示覆盖已存在的文件或目录的警告信息。
例:[root@hu recover]# cp testcp ./cptest cp: overwrite ‘./cptest/testcp’? y
cp -f
:删除已经存在的目标文件(强制覆盖目标文件)
例:[root@hu recover]# cp testcp ./cptest cp: overwrite ‘./cptest/testcp’? y
cp -r
:递归复制,复制目录时包括此目录下的子目录和文件[root@hu cptest]# cp -r /etc ./ [root@hu cptest]# ls etc testcp
cp -d
:复制符号链接文件本身,而非其指向的源文件,保持源文件和目标文件之间的硬链接关系。[root@hu recover]# cp -d /etc/system-release ./temp lrwxrwxrwx. 1 root root 14 Nov 24 23:11 system-release -> centos-release
cp -a
:等同于-dpR参数同时使用,在复制过程中尽量可能保留文件或目录的属性。[root@hu recover]# cp -a ./test/test.txt ./temp [root@hu recover]# ll ./test total 4 -rw-r--r--. 1 root root 76 Nov 24 22:58 test.txt [root@hu recover]# ll ./temp/test.txt -rw-r--r--. 1 root root 76 Nov 24 23:14 ./temp/test.txt
cp -b
:给被覆盖的文件做备份。如将file1复制到file2时,若file2存在就将其覆盖掉同时生成一个名为file2~的文件。[root@hu recover]# cp -b ./test/test.txt ./temp cp: overwrite ‘./temp/test.txt’? y [root@hu recover]# ls ./temp test.txt test.txt~
cp -v
:在复制前,输出每个文件的名字[root@hu recover]# cp -rv /home ./cptest ‘/home’ -> ‘./cptest/home’ ‘/home/hu’ -> ‘./cptest/home/hu’ ‘/home/hu/Music’ -> ‘./cptest/home/hu/Music’ ‘/home/hu/.bash_profile’ -> ‘./cptest/home/hu/.bash_profile’ ‘/home/hu/.bash_logout’ -> ‘./cptest/home/hu/.bash_logout’
cp -p
–preserve:- mode:权限
- ownership:从属关系
- timestamps:时间截
- context:安全标签
- links:符号链接
- all:上诉所有属性
-
mv命令: - move (rename) files
mv命令用于移动一个文件(或目录)到另一个文件(或目录),若文件(或目录)不存在,则创建它。也可以用来修改文件(或目录)名字。1、格式:
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…注意:单位件移动和cp命令是一样的;但是多文件移动和cp命令不同,mv命令不需要加-r选项
2、常用option和示例
mv -i
:覆盖前先询问用户。
mv -f
:若目标文件或目录与现有文件或目录重复,则直接覆盖现有文件或目录。
例:[root@localhost test4]# cat log2.txt odfdfs [root@localhost test4]# cat log3.txt dfosdfsdfdss [root@localhost test4]# mv -f log3.txt log2.txt [root@localhost test4]# cat log2.txt dfosdfsdfdss
mv -v
:执行时显示详细的信息。
mv -b
:若需要覆盖文件,则覆盖前先进行备份。
例:[root@localhost test4]# mv -bv *.txt /home/pungki/office
-
grep命令:- print lines matching a pattern
grep命令用于查找文件里符合条件的字符串。
1、格式:
grep [OPTIONS] PATTERN [FILE…]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE…]
注意:pattern表示正则表达式
正则表达式(也称“regex”或“regexp”)是一个可以描述一类字符串和该正则表达式匹配(Match),正则表达式通常被用来查找文本的模式,以及对文本执行搜索/替换操作和其它功能。2、常用option和示例
grep -l
:忽略字符大小写
例:[root@hu recover]# grep -l "text" file1 file2 file3...
grep -o
:仅显示匹配到的字符串本身
例:[root@hu recover]# echo gun is not unix | grep -b -o "not" 7:not
grep -v
:显示不能被模式匹配到的行
例:[root@hu recover]# grep-v test* testfile1:helLinux! testfile1:Linis a free Unix-type operating system. testfile1:Lin testfile_1:HELLO LINUX!
grep -E
:支持使用扩展的正则表达式元字符
grep -F
:搜索固定字符串
grep -G
:支持基本的正则表达式元字符
grep -q
:静默模式,不输出任何信息
例:[root@hu recover]# grep -q "test" filename #不会输出任何信息,如果命令运行成功返回0,失败则返回非0值。一般用于条件测试。
grep -A
#:显示匹配的行和此行的后#行
例:[root@hu recover]# seq 10 | grep "5" -A 3 5 6 7 8
grep -B
:显示匹配的行和此行的前#行
例:[root@hu recover]# seq 10 | grep "5" -B 3 2 3 4 5
grep -C
:显示匹配的行和此行的前#行和后#行
例:[root@hu recover]# seq 10 | grep "5" -C 3 2 3 4 5 6 7 8
grep - -color
:对匹配到的本着色高亮显示
例:[root@hu recover]# grep "first" test --color=auto first
-
head 命令:- output the first part of files
head命令用于显示一个文件的内容的前多少行。
1、格式: head [OPTION]… [FILE]…
2、常用option和示例
head -c
:处理文件前面指定的字节数加b(512字节)、k(KB数)、m(MB)。
例:[root@localhost test]# head -c 20 log2014.log 2014-01 2014-02 2014
head -n
:显示文件头n行内容。
例:[root@localhost test]# head -n -6 log2014.log 2014-01 2014-02 2014-03 2014-04 2014-05 2014-06
head -p
:处理多个文件时不显示文件头信息。
head -v
:处理多个文件时显示文件头信息 -
tail命令:- output the last part of files
tail命令显示一个文件内容的最后多少行。
1、格式:tail [OPTION]… [FILE]…
2、常用option和示例
tail -n
:显示文件末尾n行内容。
例:[root@localhost test]# tail -n 5 log2014.log 2014-09 2014-10 2014-11 2014-12
tail -f
:若文件大小在增长的话,tail将随文件增长而一直显示。
例:[root@localhost ~]# tail -f test.log PING 192.168.120.204 (192.168.120.204) 56(84) bytes of data. 64 bytes from 192.168.120.204: icmp_seq=1 ttl=64 time=0.038 ms 64 bytes from 192.168.120.204: icmp_seq=2 ttl=64 time=0.036 ms 64 bytes from 192.168.120.204: icmp_seq=3 ttl=64 time=0.033 ms 64 bytes from 192.168.120.204: icmp_seq=4 ttl=64 time=0.027 ms
-
tac命令:- concatenate and print files in reverse
tac命令用于将文件已行为单位的反序输出,即第一行最后显示,最后一行先显示。
1、格式: tac [OPTION]… [FILE]…
2、常用option和示例
tac -b
:在行前而非行尾添加分隔标志
tac -r
:将分隔标志视作正则表达式来解析
tac -s
:使用指定字符串代替换行作为分隔标志
例:[root@localhost www]# cat test 1234 abcd [root@localhost www]# tac test abcd 1234
-
file命令:— determine file type
file命令用于通过探测文件内容来判断文件类型。
1、格式:
file [-bchiklLNnprsvz0] [–apple] [–mime-encoding] [–mime-type] [-e testname] [-F separator] [-f namefile] [-m magicfiles] file …2、常用option和示例
file
:显示文件类型
例:[root@localhost ~]# file install.log install.log: UTF-8 Unicode text
file -i
:显示MIME类别。
例:[root@localhost ~]# file -i install.log install.log: text/plain; charset=utf-8
file -L
:显示符号链接的文件类型
例:[root@localhost ~]# file -L /var/mail /var/mail: directory
file -b
:不显示文件名称
例:[root@localhost ~]# file -b install.log UTF-8 Unicode text
-
echo命令:- display a line of text
echo命令用于显示文本内容。
1、格式:
echo [SHORT-OPTION]… [STRING]…
echo LONG-OPTION2、常用option和示例
echo string
:输入一行文本显示在标准输出上
例:[root@localhost ~]# echo Tecmint is a community of Linux Nerds Tecmint is a community of Linux Nerds
echo
:输出变量的值
例:[root@localhost ~]# x=10 [root@localhost ~]# echo The value of variable x = $x The value of variable x = 10
-
date命令: - print or set the system date and time
date命令用于显示或设置系统时间与日期。
1、格式:
date [OPTION]… [+FORMAT]
date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]] -
mkdir命令:- make directories
1、格式:
mkdir [OPTION]… DIRECTORY…
2、常用option和示例
mkdir -p
:自动按需创建父目录
例:[root@localhost test]# mkdir -p test2/test22 [root@localhost test]# ll drwxr-xr-x 2 root root 4096 10-25 17:42 test1 drwxr-xr-x 3 root root 4096 10-25 17:44 test2
mkdir -v
:显示详细过程
mkdir -m
:直接给定权限,否则为默认权限 -
rmdir命令:- remove empty directories
rmdir命令用于删除一个或多个目录。
1、格式:
rmdir [OPTION]… DIRECTORY…
2、常用option和示例
rmdir -p
:删除某目录后,若父目录为空则一并删除
rmdir -v
:显示详细过程
例:[root@localhost ~]# rmdir -p logs rmdir: logs: 目录非空
2、使用命令行展开功能,创 建/tmp/a1,/tmp/a2,/tmp/a1/a,/tmp/a1/b,在/tmp目录下创建目录:x_y,x_z,q_y,q_z 。
-
命令行展开功能简介
(1)、~:自动展开为用户家目录,或指定用户的家目录。
(2)、{}:可承载一个以逗号分隔的路径列表,并能将其展开为多个路径。 -
创建/tmp/a1,/tmp/a2,/tmp/a1/a,/tmp/a1/b
[root@hu temp]# mkdir -pv ./tmp/{a1/{a,b},a2} mkdir: created directory ‘./tmp/a1’ mkdir: created directory ‘./tmp/a1/a’ mkdir: created directory ‘./tmp/a1/b’ mkdir: created directory ‘./tmp/a2’
-
创建目录:x_y,x_z,q_y,q_z
[root@hu temp]# mkdir -v {x,q}_{y,z} mkdir: created directory ‘x_y’ mkdir: created directory ‘x_z’ mkdir: created directory ‘q_y’ mkdir: created directory ‘q_z’
3、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间截信息。
-
元数据信息:
例:[root@hu temp]# stat tmp
文件名-File: ‘tmp’
文件大小-Size: 4096
文件占用多少数据块-Blocks: 8
文件占据数据块的块大小-IO Block: 4096 directory
硬件-Device: fd00h/64768d(说明该文件在硬盘的哪个柱面)
节点号-Inode: 261644
链接-Links: 4
权限-Access: (0755/drwxr-xr-x)
该文件属主-Uid: ( 0/ root)
该文件的属组-Gid: ( 0/ root)
安全上下文-Context: unconfined_u:object_r:default_t:s0
文件上一次的访问时间-Access: 2018-11-24 11:20:01.061419943 -0500
文件上一次修改的时间-Modify: 2018-11-24 11:17:24.060605259 -0500
文件上一次属性更改的时间-Change: 2018-11-24 11:17:24.060605259 -0500
创建时间-Birth: - -
如何查看元数据
使用stat命令查看元数据-如上例题所示
-
如何修改文件的时间截信息
(1)、touch(-change file timestamps)命令修改时间截信息,如下面例题所示
(2)、格式:touch [OPTION]… FILE…
注意:touch filename:当filename存在时改变时间截;当filename不存在时则以此filename创建一个空文件例:
初始时间[root@hu temp]# stat tmp Access: 2018-11-24 11:20:01.061419943 -0500 Modify: 2018-11-24 11:17:24.060605259 -0500 Change: 2018-11-24 11:17:24.060605259 -0500 Birth: -
改变后的时间
[root@hu temp]# touch tmp [root@hu temp]# stat tmp Access: 2018-11-24 11:52:14.634641099 -0500 Modify: 2018-11-24 11:52:14.634641099 -0500 Change: 2018-11-24 11:52:14.634641099 -0500 Birth: -
touch命令option讲解
touch -c:当filename不存在时也不创建新的空文件、路径
touch -a:仅改变文件上一次的访问时间-Access
touch -m:仅改变文件上一次修改的时间-Modify
touch -t:自己指定更改时间(时间格式为:[MMDDhhmm[[CC]YY][.ss]])
4、在/tmp目录下创建以tfile开头,后面跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
[root@hu temp]# mkdir tfile-$(date "+%Y-%m-%d-%R:%S")
[root@hu temp]# ls
etc q_y q_z tfile-2018-11-24-12:06:54 tmp x_y x_z
5、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
[root@hu temp]# ll ./tmp/mytest1ot 4096 Nov 24 12:12 popt.d
drwxr-xr-x. 2 root root 4096 Nov 24 12:12 postfix
drwxr-xr-x. 3 root root 4096 Nov 24 12:12 ppp
drwxr-xr-x. 2 root root 4096 Nov 24 12:12 prelink.conf.d
-rw-r--r--. 1 root root 233 Nov 24 12:12 printcap
-rw-r--r--. 1 root root 1750 Nov 24 12:12 profile
drwxr-xr-x. 2 root root 4096 Nov 24 12:12 profile.d
-rw-r--r--. 1 root root 6545 Nov 24 12:12 protocols
drwxr-xr-x. 2 root root 4096 Nov 24 12:12 pulse
drwxr-xr-x. 2 root root 4096 Nov 24 12:12 purple
drwxr-xr-x. 2 root root 4096 Nov 24 12:12 python
6、创建用户tom,指定UID为5001,指定家目录为/tmp/tom,指定shell为、bin/zsh,指定基本组为tom,附加组为jack
[root@hu /]# useradd -u 5001 -d /recover/temp/tom -s /bin/zsh -G jack tom
[root@hu /]# cat /etc/passwd
tom:x:5001:5001::/recover/temp/tom:/bin/zsh
[root@hu /]# cat /etc/group
jack:x:5002:tom
7、常用的用户管理命令有哪些,并演示命令以及用法。
-
useradd:- create a new user or update default new user information
useradd命令用于创建一个新用户或更新默认新用户信息
1、格式:
useradd [options] LOGIN
useradd -D
useradd -D [options]2、options
useradd -u
:指定用户UID
useradd -g
:指定用户基本组,此组事先得存在
useradd -G
:指定用户所属的附加组,多个组之间用逗号分隔
useradd -c
:指明注释信息
useradd -d
:以指定的路径为用户的家目录
useradd -s
:指定用户默认shell(可用的所有shell列表在/etc/shells文件中)
useradd -r
:创建系统用户
useradd -m
:若不存在则创建用户主目录,骨架目录中的文件会复制到主目录
useradd -M
:不创建用户主目录即使系统设定了也不创建
useradd -f
:密码过期后,账户彻底禁用之前的天数
useradd -D
:表示创建用户时的默认信息
useradd -D option
:用于修改或更改默认信息 -
usermod:- modify a user account
useradd命令用于修改用户属性
1、格式:
usermod [options] LOGIN2、options
usermod -u
:修改用户的UID为此处指定的新UID
usermod -g
:修改用户所属基本组
usermod -G
:修改用户所属的附加组,若原有附加组则用新组覆盖原附加组
usermod -a
:与-G一同使用,用于用户追加新的附加组
usermod -c
:修改注释信息
usermod -d
:修改用户家目录,单文件不会转移到修改路径下
usermod -m
:只能与-d使用,用于将原来家目录移到新路径下
usermod -l
:修改该用户名
usermod -s
:修改用户默认shell
usermod -L
:锁定用户密码;禁止登陆
usermod -U
:解锁用户的密码 -
userdel:- delete a user account and related files
useradd命令用于删除用户
1、格式:
userdel [options] LOGIN2、options
userdel -r
:删除用户的同事删除用户的家目录 -
passwd:- update user’s authentication tokens
useradd命令用于为用户设置密码
1、格式:
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warn‐
days] [-i inactivedays] [-S] [–stdin] [username]2、options
passwd -l,-u
:表示用来锁定和解锁用户
passwd -d
:清除用户密码
passwd -e
:密码过期期限
passwd -i
:非活动期限
passwd -n
:密码最短使用期限
passwd -x
:密码最常使用期限
passwd -w
:警告期限
passwd - -stdin