Linux练习题

  • A+
所属分类:linux命令

1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

常用命令:

pwd:printing working directory(显示工作目录)

示例:

[root@cuikedong ~]# pwd

/root

[root@cuikedong ~]#

 

cd:change directory(切换目录)

cd [/PATH/TO/SOMEDIR]

cd后不加任何命令,表示切换回家目录;

注意:bash中,~表示家目录;

cd ~:切换回自己的家目录

cd ~USERNAME(用户名):切换至指定用户的家目录;

cd -:在上一次所在目录与当前

相关的环境变量

$PWD:当前工作目录

$OLDPWD:上一次的工作目录

示例:

[root@cuikedong ~]# cd /etc/sysconfig

[root@cuikedong sysconfig]# pwd

/etc/sysconfig

[root@cuikedong sysconfig]#

 

ls:list,列出指定目录下的内容

ls [OPTION]… [FILE]…

-a:显示所有文件,包括隐藏文件;

-A:显示除.和..之外的所有文件;

-l:–long,长格式列表,即显示文件的详细属性信息;

例: -rw-r–r–. 1 root root 8957 11月 20 21:06 boot.log

-:文件类型:-,d,b,c,l,s,p

rw-r–r–

rw-:文件属主的权限:

r–:文件属组的权限:

r–:其他用户(非属主、属组)的权限:

1:数字表示文件被硬链接的次数:

root:文件的属主:

root:文件的属组:

8957:数字表示文件的大小,单位是字节:

11月 20 21:06:文件最近一次被修改的时间:

boot.log:文件名:

-h,–human-readable(人类易读):对文件大小单位换算:换算后的结果可能会非精确值:

-d:查看目录自身而非其内部的文件列表:

-r:reverse,逆序显示:

-R:recursive,递归显示(子目录下的所有内容):

示例:

[root@cuikedong sysconfig]# ls -l

总用量 104

-rw-r–r–. 1 root root  400 11月 13 20:01 anaconda

-rw-r–r–. 1 root root  483 11月 13 20:00 authconfig

drwxr-xr-x. 2 root root   43 11月 13 19:52 cbq

-rw-r–r–. 1 root root   46 8月   4 05:27 chronyd

drwxr-xr-x. 2 root root    6 8月   4 07:57 console

-rw-r–r–. 1 root root  150 8月  23 05:43 cpupower

……………………………………………

 

cat:concatenate:文件文本查看工具:

cat /etc/fstab

cat /etc/passwd

cat [OPTION]… [FILE]…

-n:给显示的文本行统一编号:

-E:显示行结束符$:

示例:

[root@cuikedong sysconfig]# cat -n anaconda

1 # This file has been generated by the Anaconda Installer 21.48.22.121-1

2

3[WelcomeLanguageSpoke]

4visited = 1

5

6[OSCAPSpoke]

7visited = 1

8

9[NetworkSpoke]

10visited = 1

………………

 

tac:concatenate:文件文本查看工具:

tac /etc/fstab

tac /etc/passwd

tac [OPTION]… [FILE]…

-n:给显示的文本行统一编号:

-E:显示行结束符$:

示例:

[root@cuikedong ~]# tac /etc/fstab

/dev/mapper/centos_cuikedong-swap swap                    swap    defaults        0 0

/dev/mapper/centos_cuikedong-home /home                   xfs     defaults        0 0

UUID=e8437b00-9547-480d-a63a-0e5cbcda3683 /boot                   xfs     defaults        0 0

/dev/mapper/centos_cuikedong-root /                       xfs     defaults        0 0

#

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

# Accessible filesystems, by reference, are maintained under ‘/dev/disk’

#

# Created by anaconda on Mon Nov 13 19:51:58 2017

# /etc/fstab

#

[root@cuikedong ~]# cat /etc/fstab

#

# /etc/fstab

# Created by anaconda on Mon Nov 13 19:51:58 2017

#

# Accessible filesystems, by reference, are maintained under ‘/dev/disk’

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

/dev/mapper/centos_cuikedong-root /                       xfs     defaults        0 0

UUID=e8437b00-9547-480d-a63a-0e5cbcda3683 /boot                   xfs     defaults        0 0

/dev/mapper/centos_cuikedong-home /home                   xfs     defaults        0 0

/dev/mapper/centos_cuikedong-swap swap                    swap    defaults        0 0

注:cat与tac显示内容顺序相反

 

file:查看文件内容类型:

file[FILE]……….

示例:

[root@cuikedong ~]# file /etc/passwd

/etc/passwd: ASCII text

 

mkdir:make directory (创建目录)

mkdir [OPTION]… DIRECTORY…

-p:自动按需创建父目录:

-v verbose:显示创建的详细过程:

-m MODE:直接给定权限:

注意:路径基名方为命令的作用对象: 基名之前的路径必须的存在:

示例:

[root@cuikedong /]# mkdir /etc/cuicui

[root@cuikedong /]# ls -l /etc

……………………………………………..

-rw-r–r–.  1 root root      841 6月   7 2013 csh.login

drwxr-xr-x.  2 root root       17 12月 10 12:08 cui

drwxr-xr-x.  2 root root        6 12月 10 13:14 cuicui

drwxr-xr-x.  4 root root       78 11月 13 19:53 dbus-1

[root@cuikedong /]#

 

rmdir:remove empty directories(删除空目录)

rmdir [OPTION]… DIRECTORY…

-p:删除某目录后,如果其父目录为空,则一并删除之:

-v:显示过程:

示例:

[root@cuikedong /]# rmdir /etc/cuicui

[root@cuikedong /]# ls -l /etc

……………………………………………

-rw-r–r–.  1 root root      841 6月   7 2013 csh.login

drwxr-xr-x.  2 root root       17 12月 10 12:08 cui

drwxr-xr-x.  4 root root       78 11月 13 19:53 dbus-1

……………………………………………

[root@cuikedong /]#

 

tree命令:

tree [options] [directory]

-L level:指定要显示的层级:

示例:

[root@cuikedong /]# tree -L 1 /

/

├── bin -> usr/bin

├── boot

├── dev

├── etc

├── home

├── lib -> usr/lib

├── lib64 -> usr/lib64

├── media

├── mnt

├── opt

├── proc

├── root

├── run

├── sbin -> usr/sbin

├── srv

├── sys

├── tmp

├── usr

└── var

 

19 directories, 0 files

[root@cuikedong /]#

 

 

文件查看类命令:cat,tac,head,tail,more,less

分屏查看命令:more和less

more命令:

more FILE

特点:翻屏至文件尾部后自动退出:

less命令:(man 本身就是调用less命令)

less FILE

head命令:

查看文件的前n行:

head [options] FILE

-n #(#=1,2,3,……..)

-#

示例:

[root@cuikedong ~]# head -n3 /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

 

tail命令:

查看文件后的n行:

tail [options] FILE

-n #(#=1,2,3,……..)

-#

-f:查看文件尾部内容结束后不退出,跟随显示新增的行:(查看新增日志时候会用)

示例:

[root@cuikedong ~]# cat /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

………………………………..

gdm:x:42:42::/var/lib/gdm:/sbin/nologin

gentoo:x:1001:1001::/home/gentoo:/bin/bash

slakware:x:1002:1002::/home/slakware:/bin/tcsh

slackware:x:1003:1003::/home/slackware:/bin/tcsh

docker:x:1004:1004::/home/docker:/bin/bash

[root@cuikedong ~]# tail -n3 /etc/passwd

slakware:x:1002:1002::/home/slakware:/bin/tcsh

slackware:x:1003:1003::/home/slackware:/bin/tcsh

docker:x:1004:1004::/home/docker:/bin/bash

 

stat命令:状态(查看文件的元数据)

stat – display file or file system status

用法:

stat FILE,,,,,,

Linux中每一个文件:两类数据

元数据:metadata(例如书的目录)

数据:data(例如书的正文)

时间戳:

access time (最近访问):2017-11-14 20:07:30.941647159 +0800 (读取数据流)

modify time(最近更改):2017-11-27 20:14:05.372243896 +0800 (改动的数据)

change time(最近改动):2017-11-27 20:14:05.372243896 +0800 (改动的元数据)

示例:

[root@cuikedong ~]# stat /etc/cui/aaa

文件:”/etc/cui/aaa”

大小:105        块:8          IO 块:4096   普通文件

设备:fd00h/64768d Inode:101126440   硬链接:1

权限:(0644/-rw-r–r–)  Uid:(    0/    root)   Gid:(    0/    root)

环境:unconfined_u:object_r:etc_t:s0

最近访问:2017-12-10 12:11:10.395401753 +0800

最近更改:2017-12-10 12:10:16.098348565 +0800

最近改动:2017-12-10 12:10:16.098348565 +0800

创建时间:-

[root@cuikedong ~]#

 

touch命令:创建新的空文件,改变已有文件的时间戳属性:

手动更改时间戳( change time不能手动指定)

touch – change file timestamps

touch [OPTION]… FILE…

-c:指定的文件路径不存在时不予创建:

-a:仅修改access time

-m:仅修改modify time

-t STAMP

[[CC]YY]MMDDhhmm[.ss]

例如:~]# touch -m -t 0212010303.03 /tmp/functions

结果:最近更改:2002-12-01 03:03:03.000000000 +0800

示例:

[root@cuikedong ~]# touch /etc/cui/aaa

[root@cuikedong ~]# ls /etc/cui

aaa

[root@cuikedong /]# file /etc/cui/aaa

/etc/cui/aaa: empty

[root@cuikedong /]#

 

文件管理工具:cp,mv,rm

cp命令:copy

源文件:目标文件:

单源复制: cp [OPTION]… [-T] SOURCE DEST

多源复制 :cp [OPTION]… SOURCE… DIRECTORY

cp [OPTION]… -t DIRECTORY SOURCE…

 

单源复制: cp [OPTION]… [-T] SOURCE DEST

如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中: 如果DEST存在:

如果DEST是非目录文件:则覆盖目标文件:

如果DEST是目录文件:则现在DEST目录下创建一个与源文件同名的文件,并复制其属性和数据流至目标文件:

 

多源复制 :cp [OPTION]… SOURCE… DIRECTORY

cp [OPTION]… -t DIRECTORY SOURCE…

如果DEST不存在:错误:

如果DEST存在:

如果DEST是非目录文件:错误:

如果DEST是目录文件:分别复制每个文件至目标目录中,并保持原名:

常用选项:

-i:交互式复制,即覆盖之前提醒用户确认:

-f:强制覆盖目标文件:

-r,-R:递归复制目录:

-d:复制符号链接本身,而非其指向的源文件:

-a:-dR –preserve=all,archive,用于实现归档:

–preserve=

mode:权限

ownership:属主和属组

timestamps:时间戳

context:安全标签

xattr:扩展属性

links:符号链接

all:上述所有属性

示例:

[root@cuikedong /]# ls /var

adm    crash  empty  gopher    lib    lock  mail  opt       run    tmp

cache  db     games  kerberos  local  log   nis   preserve  spool  yp

注:/var没有文件“aaa”

[root@cuikedong /]# cp /etc/cui/aaa /var

[root@cuikedong /]# ls /var

aaa  cache  db     games   kerberos  local  log   nis  preserve  spool  yp

adm  crash  empty  gopher  lib       lock   mail  opt  run       tmp

[root@cuikedong /]#

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: