linux命令(一)目录处理,文件处理

文章目录

  • 命令基本格式
  • 目录处理命令
    • ls,显示目录和文件
    • mkdir,创建目录
    • pwd,打印当前目录
    • cd,切换目录
    • cp,复制
    • mv,剪切和更名
    • rm,可删除非空目录
  • 文件处理命令
    • rmdir,只能删除空目录
    • touch,创建空文件
    • cat,查看文件内容
      • more,分页浏览,重要
      • less命令,可向上翻,可搜索关键字
      • head
      • tail
  • echo
  • chmod
  • lvcreate
  • 快捷键

一共有三四千条命令
linux命令(一)目录处理,文件处理_第1张图片

linux命令(一)目录处理,文件处理_第2张图片

命令基本格式

linux命令(一)目录处理,文件处理_第3张图片
选项用来调整功能

参数用来指定操作对象,比如进程

有的命令不能省略选项和参数,甚至需要多个选项和多个参数,有的命令不需要选项和参数

多个选项可以合并写,如ls -la,顺序无所谓

选项分为简化和完整两种,我们用简化选项更方便,完整选项用--调用。

目录处理命令

ls,显示目录和文件

绝对是这辈子用的最多的linux命令

linux命令(一)目录处理,文件处理_第4张图片

  • 不加选项和参数
[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  模板  图片  下载  桌面
cppspace         公共                  视频  文档  音乐
  • -a选项,显示出所有文件,包络隐藏文件,all
[root@localhost ~]# ls -a
.                .bash_logout   .config   .esd_auth             .tcshrc   视频  音乐
..               .bash_profile  cppspace  .ICEauthority         .viminfo  图片  桌面
anaconda-ks.cfg  .bashrc        .cshrc    initial-setup-ks.cfg  公共      文档
.bash_history    .cache         .dbus     .local                模板      下载

.开头的文件是隐藏文件,linux中用-a选项就可以看到,Windows中也可以选择显示隐藏文件,所以隐藏文件并不是为了不让你看,它的设计初衷其实是:这是一个系统文件,如果没有特殊情况,不要改动它,所以隐藏起来,是为了文件的安全。

但是现在很多病毒文件也喜欢把自己隐藏起来。

  • 把根目录作为参数
[root@localhost ~]# ls /
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr
  • -l选项,长格式,long,显示详细信息
[root@localhost ~]# ls -l
总用量 8
-rw-------. 1 root root 2005 84 18:47 anaconda-ks.cfg
drwxr-xr-x. 2 root root   34 84 22:28 cppspace
-rw-r--r--. 1 root root 2036 84 18:58 initial-setup-ks.cfg
drwxr-xr-x. 2 root root    6 84 21:46 公共
drwxr-xr-x. 2 root root    6 84 21:46 模板
drwxr-xr-x. 2 root root    6 84 21:46 视频
drwxr-xr-x. 2 root root    6 84 21:46 图片
drwxr-xr-x. 2 root root    6 84 21:46 文档
drwxr-xr-x. 2 root root    6 84 21:46 下载
drwxr-xr-x. 2 root root    6 84 21:46 音乐
drwxr-xr-x. 2 root root   63 84 21:47 桌面
  1. 第二项的数字,1或者2,是很有争议的一个点,表示引用计数,只在硬链接(很重要)中才有作用,曾被调用的次数,反正大概知道是文件的引用计数就行。

  2. 第三项,非常重要,linux根据每个文件把所有用户分为三类,所有者(user,u),所属组(group,g),其他人(other, o),这个分类表示文件和用户的关系。
    一般情况下所有者只能有一个人。可以变更所有者,但不常见。
    所属组是一个用户集。可以授予一组用户相同的权限。

所以上面文件的所有者都是root。

  1. 第四项是文件的所属组的名称,是root组的,如果一个用户和root在一个组,则也可以拥有和root一样的权限。

  2. 第五项是文件大小,默认单位是字节。可以用-h选项按照KB或者MB单位显示大小,h表示human,人性化显示

[root@localhost ~]# ls -lh
总用量 8.0K
-rw-------. 1 root root 2.0K 84 18:47 anaconda-ks.cfg
drwxr-xr-x. 2 root root   34 84 22:28 cppspace
-rw-r--r--. 1 root root 2.0K 84 18:58 initial-setup-ks.cfg
drwxr-xr-x. 2 root root    6 84 21:46 公共
drwxr-xr-x. 2 root root    6 84 21:46 模板
drwxr-xr-x. 2 root root    6 84 21:46 视频
drwxr-xr-x. 2 root root    6 84 21:46 图片
drwxr-xr-x. 2 root root    6 84 21:46 文档
drwxr-xr-x. 2 root root    6 84 21:46 下载
drwxr-xr-x. 2 root root    6 84 21:46 音乐
drwxr-xr-x. 2 root root   63 84 21:47 桌面
  1. 第六项是文件的最后修改时间,如果没修改则相当于创建时间。

但是linux其实是没有创建时间这个概念的。这一点和windows不一样,linux只有文件的最后一次访问时间,状态修改时间,数据修改时间三个概念。如果文件创建以后从来没改过,那可以认为是创建时间。但是没有这个概念。

  1. 最后一项,文件名。
  2. 最后讲第一项,文件的权限,一共10个字符,第一个表示文件类型,如下图,最常见的文件类型有d,l,或者-。-表示是普通文件,d表示是目录,l表示是软链接。

除了这三种常见的外,还有一些系统特殊文件,比如字符设备文件,块设备文件,管道符文件,套接字文件等。这些不需要用户处理,暂时可以不管。

linux文件类型比Windows少很多,后者每一种扩展名就是一种文件类型了,这一点上linux更简约。

后9个字符是三个用户类型(所有者,所属组,其他人)的权限,共三种,r,w,x,读,写,执行。为-表示没有这个权限。

x权限,执行权限是文件的最高权限,只有文件是二进制可执行的可以运行的文件,才给x权限,不然不需要。比如日志文件不需要x权限。

对于权限,永远是够用就好,不要给多余的权限,不然很危险。

linux的权限不只这么简单,后面用一章来介绍。很多内容。

linux命令(一)目录处理,文件处理_第5张图片

  • -d选项
    显示当前目录,注意.表示当前目录,..表示当前目录的上一级目录
[root@localhost ~]# ls -d
.
[root@localhost ~]# ls -d /etc/
/etc/

在这里插入图片描述
长格式显示,最后一个点是目录名字哦

  • -i选项,iNode,显示文件的iNode
    iNode是文件的唯一ID,就像身份证至于人类一样,唯一标识每一个文件,每个文件和每个目录都有一个iNode号。
[root@localhost ~]# ls -i /
   34658 bin   50332832 home   16778501 mnt         53 run   16777288 tmp
      64 boot        80 lib    33686992 opt      34662 sbin  33686935 usr
    1025 dev         82 lib64         1 proc  50332833 srv   50331713 var
16777281 etc         83 media  33574977 root         1 sys
[root@localhost ~]# 

mkdir,创建目录

第二常用的命令

一定要好好规划目录结构不要轻易在根目录下创建目录或文件,一般可以在/tmp/(临时文件)目录下创建自己的子目录。

linux命令(一)目录处理,文件处理_第6张图片

  • mkdir后面加新的目录的名称即可
[root@localhost ~]# mkdir /tmp/CPP/

linux命令(一)目录处理,文件处理_第7张图片

  • -p选项,递归创建目录
root@localhost ~]# mkdir -p /tmp/myworkspace/mycpp/

linux命令(一)目录处理,文件处理_第8张图片
在这里插入图片描述

pwd,打印当前目录

linux命令(一)目录处理,文件处理_第9张图片

[root@localhost ~]# pwd
/root

cd,切换目录

linux命令(一)目录处理,文件处理_第10张图片
cd后面必须加空格

[root@localhost ~]# cd /tmp/
[root@localhost tmp]# cd..
bash: cd..: 未找到命令...
[root@localhost tmp]# cd ..
[root@localhost /]# 

cp,复制

linux命令(一)目录处理,文件处理_第11张图片

  • 基本复制,不用选项
[root@localhost /]# cp /etc/yum.conf /tmp/myworkspace/
[root@localhost /]# ls /tmp/myworkspace
yum.conf

linux命令(一)目录处理,文件处理_第12张图片

  • 如果要复制目录,则要-r选项,不加-r选项是不会成功的
    在这里插入图片描述
  • -p选项,保留文件的属性,比如修改时间等
    因为我之前已经复制过去了,所以要覆盖
    linux命令(一)目录处理,文件处理_第13张图片
  • 复制的同时改文件名,这是Windows做不到的
[root@localhost /]# cp -p /etc/yum.conf /tmp/myworkspace/myyum.conf
[root@localhost /]# ls /tmp/myworkspace
grub.d  myyum.conf  yum.conf

可以看到,改成了myyum.conf

mv,剪切和更名

剪切和更名,两个功能都用这一个命令
linux命令(一)目录处理,文件处理_第14张图片

  • 基本剪切
[root@localhost /]# mv /tmp/myworkspace/myyum.conf /tmp/
[root@localhost /]# ls /tmp/myworkspace
grub.d  yum.conf

原目录下没了,出现在新目录下了
linux命令(一)目录处理,文件处理_第15张图片

  • 更名
[root@localhost /]# mv /tmp/myworkspace/yum.conf /tmp/newyum.conf
[root@localhost /]# ls /tmp/myworkspace
grub.d

linux命令(一)目录处理,文件处理_第16张图片

  • 只改名,不移动位置
    把CPP目录名字改为mycpp
[root@localhost /]# cd /tmp
[root@localhost tmp]# mv CPP mycpp

名字就改啦
在这里插入图片描述
在这里插入图片描述

  • 一定要注意,在linux中一定不要随意删除东西,如果删除了系统文件,则系统会挂掉。有这么几条准则:
  1. 删文件之前都做备份
  2. 不要对硬盘过多的读写操作,读写操作越多,以后越难恢复数据
  3. 只有专门的数据恢复公司有可能可以恢复数据,但是价格吓人,所以你一定不要乱删东西。

rm,可删除非空目录

  • 不加选项,则删除文件
  • -r选项,删除目录
    linux命令(一)目录处理,文件处理_第17张图片
    在这里插入图片描述
  • -rf选项,不需要确认,即不用输入yes
    在这里插入图片描述

文件处理命令

rmdir,只能删除空目录

linux命令(一)目录处理,文件处理_第18张图片
只能删除空目录,如果不是空目录,就不行

[root@localhost /]# rmdir /tmp/myworkspace/
rmdir: 删除 "/tmp/myworkspace/" 失败: 目录非空
[root@localhost /]# rmdir /tmp/myworkspace/CPP/
rmdir: 删除 "/tmp/myworkspace/CPP/" 失败: 没有那个文件或目录
[root@localhost /]# rmdir /tmp/myworkspace/mycpp/
[root@localhost /]# 

touch,创建空文件

简单
linux命令(一)目录处理,文件处理_第19张图片

  • 创建一个文件
[root@localhost tmp]# touch lovestory.list

linux命令(一)目录处理,文件处理_第20张图片

  • 同时创建多个文件
[root@localhost tmp]# touch girls boys

可以看到是普通文件哦
在这里插入图片描述

cat,查看文件内容

用的很多,很简单
linux命令(一)目录处理,文件处理_第21张图片

  • 普通显示
[root@localhost tmp]# cat /etc/issue
\S
Kernel \r on an \m
  • -n选项,显示行号
root@localhost tmp]# cat -n /etc/issue
     1	\S
     2	Kernel \r on an \m
     3	

很适合看比较短小的文件

但是长文件就不好看了,有很多页,cat不适合,用另一个命令

  • tac命令,倒着显示文件,非常有意思,了解一下
    linux命令(一)目录处理,文件处理_第22张图片
[root@localhost tmp]#  tac /etc/issue

Kernel \r on an \m
\S
[root@localhost tmp]#  tac -n /etc/issue
tac:无效选项 -- n
Try 'tac --help' for more information.
[root@localhost tmp]# 

但是-n选项就无效了。

more,分页浏览,重要

重要 !!!
linux命令(一)目录处理,文件处理_第23张图片

可以分页浏览,按空格键或者f换页,按回车换行,按q退出more浏览模式,一般都是用more命令查看一个命令的帮助信息的,所以more怎么翻页怎么换行怎么退出浏览,都是很重要的

[root@localhost tmp]# more /etc/services

但是more不能往回翻

less命令,可向上翻,可搜索关键字

linux命令(一)目录处理,文件处理_第24张图片

按上箭头,一行一行往上翻

按page up,则一页一页往上翻

往下翻和more样,按空格则一次翻一页,按回车则一次翻一行

而且,在less命令中,还可以搜索!直接输入/services,即斜杠加你的搜索关键字,就会得到搜索高亮结果,并且按n就可以看下一个搜索结果,n表示next,匹配下一个关键词所在位置
linux命令(一)目录处理,文件处理_第25张图片

head

很方便的小命令
linux命令(一)目录处理,文件处理_第26张图片
对很长的文件,如果只看前几行,则用head命令

  • 只看前三行
[root@localhost tmp]# head -n 3 /etc/services
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
[root@localhost tmp]# 
  • 如果不写行号-n选项,则默认显示前10行
[root@localhost tmp]# head /etc/services
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
# Network services, Internet style
# IANA services version: last updated 2013-04-10
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1700, ``Assigned Numbers'' (October 1994).  Not all ports
[root@localhost tmp]# 

tail

很方便的小命令

  • 看后三行
[root@localhost tmp]# tail -n 3 /etc/services
iqobject        48619/tcp               # iqobject
iqobject        48619/udp               # iqobject
matahari        49000/tcp               # Matahari Broker
[root@localhost tmp]# 
  • 不指定行数,则默认最后10行
3gpp-cbsp       48049/tcp               # 3GPP Cell Broadcast Service Protocol
isnetserv       48128/tcp               # Image Systems Network Services
isnetserv       48128/udp               # Image Systems Network Services
blp5            48129/tcp               # Bloomberg locator
blp5            48129/udp               # Bloomberg locator
com-bardac-dw   48556/tcp               # com-bardac-dw
com-bardac-dw   48556/udp               # com-bardac-dw
iqobject        48619/tcp               # iqobject
iqobject        48619/udp               # iqobject
matahari        49000/tcp               # Matahari Broker
[root@localhost tmp]# 
  • -f选项,动态显示文件末尾的内容,用的也不太多,可以动态监控一些日志,比如apache这个web服务器的一些日志
    linux命令(一)目录处理,文件处理_第27张图片

echo

linux命令(一)目录处理,文件处理_第28张图片

chmod

linux命令(一)目录处理,文件处理_第29张图片

lvcreate

linux命令(一)目录处理,文件处理_第30张图片

快捷键

  • 清屏,ctrl + L,或者输入clear命令
  • 终止正在执行的命令,ctrl+C

你可能感兴趣的:(Linux)