1、文件管理基础命令

1.1 Linux文件系统目录结构

在Linux系统中有“一切皆文件”的思想,也就是说,在Linux系统中将所有的硬件设备都当做文件来处理,包括硬盘、CD-ROM、USB等设备。

Linux系统采取“树形结构”来管理文件

Linux基础学习笔记(1_linux系统

  • /:整个文件系统层次结构的根目录

  • /bin:存放常用指令

  • /boot:包含内核启动文件

  • /dev:存放设备特殊文件目录,如声卡文件、磁盘文件等

  • /ect:存放系统管理和配置文件目录

  • /home:用户的主目录,包括保存的文件,个人配置,等等

  • /lib:/bin/ 和 /sbin/中的二进制文件的必需的库文件

  • /mnt: 挂载目录

  • /root:root用户主目录

  • /usr:最庞大的目录,存放应用程序和文件目录

  • /proc:process的缩写,存放描述系统进程的详细信息,可直接访问这个目录来获取系统信息

 

1.2 常用命令

1.2.1 pwd 命令

作用:获取当前所在目录的绝对路径

Linux基础学习笔记(1_数据_02

 

 

 

1.2.2 cd 命令

作用:切换到指定目录下

用法:cd [参数]

常用参数:

  • 相对路径 | 绝对路径

  • ~:回到自己家目录

  • ..:返回上级目录

Linux基础学习笔记(1_文件名_03

 

 

 

Linux基础学习笔记(1_linux系统_04

 

 

 1.2.3 mkdir 命令

作用:创建目录

用法:mkdir [选项] 要创建的目录名

常用选项:

  • -p:创建多级目录

我们在/tmp下创建一个aaa目录

Linux基础学习笔记(1_文件名_05

 

 

 

切换到aa目录下,创建 bbb/ccc 两个目录需要加 -p

Linux基础学习笔记(1_linux_06

 

 

 

Linux基础学习笔记(1_linux_07

 

 

 

 

1.2.4 rmdir命令

作用:删除一个空目录,如果目录不为空,删除不了

用法:rmdir [选项] 删除的空目录名

常用选项:

  • -p:连同上层“空的”目录也一起删除

我们要删除ccc目录,首先切换到bbb目录中

Linux基础学习笔记(1_文件名_08

 

 

这样ccc目录就被删除了

删除aaa目录(此时aaa中含有bbb)加上 -p

Linux基础学习笔记(1_运行级别_09

 

 

1.2.5 ls 命令

作用:列出目录的内容

用法:ls [选项] [目录或者文件]

常用选项:

  • -a:列出全部的文件,包括隐藏的目录和隐藏的文件(以.开头的文件)

  • -A:列出全部的文件,包括隐藏的目录和文件(不包括 . 与 .. 这两个目录)

  • -d:仅列出目录本身,而不是列出目录内的文件数据

  • -h:将文件容量以人类较易读的方式(例如GB、KB等) 列出来

  • -l:以列表的方式显示信息

  • -al:具有上面两个的功能

ls列出目录的内容(不含隐藏文件)

Linux基础学习笔记(1_linux系统_10

 

 

 

ls -a:隐藏目录和文件也被显示出来(以.开头的文件)

Linux基础学习笔记(1_运行级别_11

 

 

 

ls -A:不包含.和..这两目录(与上面不同的地方)

Linux基础学习笔记(1_文件名_12

 

 

 

ls -d:列出/ect 目录本身

Linux基础学习笔记(1_数据_13

 

 

 

ls -h:可以看出更多的文件参数,通常和-l 一起

Linux基础学习笔记(1_运行级别_14

 

 

 

 

1.2.6 cp 命令

作用:拷贝文件到指定目录

用法:cp [选项] 源文件 目标目录

常用选项:

  • -r:拷贝整个文件夹

  • -f:若目的地已经有同名的文件存在,则在复制前先予删除再复制

  • -a:尽可能将档案状态、权限等资料都照原状予以复制

Linux基础学习笔记(1_运行级别_15

 

 

 

 

1.2.7 rm命令

作用:移除文件或目录

用法:rm [选项] 要删除的文件或者目录

常用选项:

  • -r :递归删除整个文件夹

  • -f :强制删除不提示

删除aaa目录(含有bbb目录),加上f 就不会有一下提示了

Linux基础学习笔记(1_linux_16

 

 

 

 

2、获取命令帮助

 

2.1 man 命令

作用:显示指定命令的用法 ,

用法:man [命令或配置文件]

例如:获取ls命令的使用方法

Linux基础学习笔记(1_数据_17

 

 

 

Linux基础学习笔记(1_linux系统_18

 

 

 

操作:你可以按 空格键 往下翻,可以按 q 键离开

 

3、了解你的系统

关于Linux系统运行级别:

在Linux中共有7个运行级别,它们分别是:

运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆

运行级别2:多用户状态(没有NFS)

运行级别3:完全的多用户状态(有NFS),登陆后进入字符模式(就是黑乎乎的界面)

运行级别4:系统未使用,保留

运行级别5:图形界面模式

运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

系统启动默认级别设置文件是 : /etc/inittab 。修改里面的 id:3:initdefault:这一行 ,就能改变启动默认启动级别,比如id:3 ,就是默认启动到字符界面。

 

3.1 查看Linux中硬件信息

3.1.1 cat /proc/cpuinfo

作用:查看CPU信息

Linux基础学习笔记(1_文件名_19

 

 

 

 

3.1.2 cat /proc/cpuinfo | grep "processor" | wc -l

作用:查看逻辑CPU个数

Linux基础学习笔记(1_数据_20

 

 

 

 

3.1.3 cat /proc/cpuinfo | grep "physical id" | sort -u | wc -l

作用:查看物理CPU个数

Linux基础学习笔记(1_数据_21

 

 

 

 

3.1.3 cat /proc/cpuinfo | grep "core id" | uniq | wc -l

作用:查看core id的数量,如果有两个逻辑CPU具有相同的 core id ,意味这,CPU启用的超线程

Linux基础学习笔记(1_linux_22

 

 

 

 

3.2 查看linux的内存信息

3.2.1 cat /proc/meminfo

作用:查看linux的内存信息

Linux基础学习笔记(1_运行级别_23

 

 

 

显示的东西很多,还可以用另一个命令 free 来查看内存的信息

Linux基础学习笔记(1_linux_24

 

 

 

其中

total:代表总大小 ; used :已经使用的大小;free:剩余的大小;Shared:多个进程共享的内存总额;buffers/cached:磁盘缓存的大小。

第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是879348KB,已用内存是140916KB,其中包括,内核(OS)使用+Application(X, oracle,etc等)使用的+buffers+cached。

第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。

所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。

 

3.3 磁盘使用情况查看

命令:fdisk -l

Linux基础学习笔记(1_运行级别_25

 

 

 

还可以使用df -Th命令

Linux基础学习笔记(1_linux_26

 

 

 

 

3.4 身份信息查看

3.4.1 whoami 命令

作用:显示当前登录用户名

用法:whoami [--help][--version]

参数选项:

  • --help  在线帮助

  • --version  显示版本信息

Linux基础学习笔记(1_linux系统_27

 

 

 

Linux基础学习笔记(1_linux系统_28

 

 

 

Linux基础学习笔记(1_数据_29

 

 

 

 

3.4.2 who 命令

作用:显示所有登录用户(所有登录用户信息)

Linux基础学习笔记(1_文件名_30

 

 

 

 

3.5 系统在干嘛?

3.5.1 top 命令

作用:实时显示 process 的动态,相当于windows中的任务管理器

Linux基础学习笔记(1_文件名_31

 

 

 

字段说明:

USER:该 process 属于哪个使用者账号的

PID :该 process 的号码

%CPU:该 process 使用掉的 CPU 资源百分比

%MEM:该 process 所占用的物理内存百分比

VSZ :该 process 使用掉的虚拟内存量 (Kbytes)

RSS :该 process 占用的固定的内存量 (Kbytes)

TTY :该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。

STAT:该程序目前的状态,主要的状态有:

D 不可中断

R 运行中

S 休眠的进程,可以被某些信号唤醒

T 停止的进程

Z 僵死的进程,就像windows里面程序无响应差不多

系统都开启了哪些服务?

 

3.5.2 chkconfig --list

作用:查询系统服务在系统各个运行级别上的信息

Linux基础学习笔记(1_数据_32

最左边的一列,是表示服务名,右边是指各个服务在各个系统启动级别上是否开启的状态。

 

3.5.3 service 命令

作用:查看某个服务的状态,比如查看 sshd这个服务的状态

用法:service [选项][参数]

选项:

  • -h:显示帮助信息

  • --status-all:显示所服务的状态

参数:

  • 服务名:自动要控制的服务名,即/etc/init.d目录下的脚本文件名

  • 控制命令:系统服务脚本支持的控制命令

它就像我们windows里面的服务管理,可以开启和关闭服务。

要注意的是这个命令不是在所有的linux发行版本中都有。主要是在redhat、fedora、和centos中。

查看 sshd这个服务的状态:

Linux基础学习笔记(1_linux_33

 

 

 

显示所有服务状态

Linux基础学习笔记(1_数据_34

 

 

 

显示服务crond的状态

service crond status

停止服务crond

service crond stop

启动服务crond

service crond start

重启服务crond

service crond restart

重新载入crond服务的配置

service crond reload

 

 

3.6 系统网络链接状况

3.6.1 ifconfig 命令

作用:显示或设置网络设备

Linux基础学习笔记(1_linux_35

 

 

 

Inet addr :就是IP地址 ;

Bcast:广播地址;

Mask:是子网掩码;

inet6 addr:这是ipv6的ip地址。

RX:指接收 ;

TX:指发送。

 

3.6.2 netstat

作用:显示目前在Linux系统上的文件系统的磁盘使用情况统计

Linux基础学习笔记(1_linux_36

 

 

 

如果要看更加详细的,可以使用 netstat -atunp

Linux基础学习笔记(1_数据_37

 

 

 

会显示所有udp和tcp链接并显示进程号

 

4、Linux文件权限

4.1 Linux文件属性

Linux基础学习笔记(1_linux系统_38

 

 

Linux基础学习笔记(1_文件名_39

 

 

权限:

  • 第一个字符表示这个文件是目录、文件或连接文件等;

    d:表示目录

    -:表示文件

    |:表示连接文件

    b:表示块设备(如硬盘)

    c:表示字符设备(如键盘,鼠标等)

  • 接下来的字符中,以三个为一组,均为”rwx“的三个参数的组合。分别是r:可读;w:可写;x:可执行。注意,这三个权限的位置不会改变,如果没有权限,就是:”-“。

  • 第一组为文件拥有者可具有的权限;

  • 第二组为加入用户组之账号的权限

  • 第三组为非本人且没有加入本用户的其他账号的权限

连接:每个档案都会将他的权限和属性记录到文件系统的inode中,每个档案名都会连接到一个inode。这个连接数就是记录有多少不同的档案名连接到相同的一个inode号码去了。

拥有者:就是这个档案所属的拥有者账号了

用户组:表示这个档案所属的群组

文件容量:这个档案占用的容量大小,默认单位是bytes

修改日期:最近被修改的日期

文件名:就是文件名

 

4.2 修改文件的属性与权限

4.2.1 chown 命令

作用:修改文件拥有者

用法:chown [-R] 账号名称 文件或者目录

参数:

  • -R:递归,用于改变目录。连同该目录下所有的档案都改变

 

4.2.2 chmod 命令
数字类型修改文件权限

作用:chmod [-R] xyz 文件或目录

参数:

  • xyz:数字类型的权限属性,为rwx属性的数值的相加,r为4,w为2,x为1,如rw-就是6

  • -R:进行递归修改连同子目录下的所有文件都会修改

例如:将a.txt的权限改为rwxrwxrwx,权限数字就是777

Linux基础学习笔记(1_数据_40

Linux基础学习笔记(1_文件名_41

 

 

符号类型修改文件权限

Linux基础学习笔记(1_数据_42

 

 

接下来要将a.txt改为[-rwxr-xr-x]

Linux基础学习笔记(1_文件名_43

 

 

 

5、文件与目录管理

5.1 查看文件类型

5.1.2 file 命令

作用:查看文件类型

用法:file [-bLvz] 文件

  • -b:显示结果,但是不显示文件名称

  • -L:直接显示符号链接所指向的文件的类型

  • -v:显示版本信息

  • -z:测试去读取压缩文件的内容

查看/etc中的adjtime文件类型

Linux基础学习笔记(1_数据_44

原来是个文本文件

 

5.2 脚本文件查找

5.1.1 which 命令

作用:显示命令的完整文件名

用法:which [-a] command

参数:

  • -a:将PATH中可以找到的指令都列出来,而不是第一个被找到的名称

找到mkdir命令

Linux基础学习笔记(1_文件名_45

 

 

用root用户的时候,为什么能找到ifconfig ,但是用普通用户就找不到了呢?是这样的,which是根据用户的PATH变量设定的路径去找的

 

5.3 文件查找

5.3.1 whereis 命令

作用:找到系统中某些特定目录下的文件

用法:whereis [-bmsu] 目录或文件名

参数:

  • -b:只找binary(二进制)格式的文件

  • -m:只找在说明文件manual路径下的文件

  • -s:只找source来源档案

  • -u:搜索不在上述三个项目当真的其他特殊档案

找到ifconfig

Linux基础学习笔记(1_文件名_46

whereis搜索非常快速,因为它是基于数据库的。这是因为linux系统会将系统内的所有文件都记录在一个数据库文件中,当使用 whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通过遍历硬盘来查找,效率自然会很高。

 

5.3.2 locate 命令

作用:找到与关键字相关的文件或目录

用法:locate [-ir] keyword

参数:

  • -i :忽略大小写

  • -r :使用正规运算式做寻找的条件

搜索所有有关passwd的档案

Linux基础学习笔记(1_文件名_47

 

 

5.3.3 find命令

作用:

用法:find [路径] [option] [action]

参数:

  • -atime,-ctime和-mtime

    • 以-mtime说明:-mtime n :n 为数字

    • -mtime +n :n天之前(不含n天本身)

    • -mtime -n:n天之内(含n天本身)

    • -nwer file:file为一个存在的文件,列出比file更新的文件。

将过去系统上面24小时内有更改(mtime)的内容列出来:

Linux基础学习笔记(1_运行级别_48

6、文件内容查看

6.1 直接查看文件内容

6.1.1 cat 命令

作用:查看文件内容

用法:cat [-n] 文件

参数:

  • -n:显示行号

查看passwd

Linux基础学习笔记(1_linux_49

 

 

加上-n会显示行号

Linux基础学习笔记(1_数据_50

 

 

6.1.2 tac (反向列示)

作用:查看文件内容(显示内容与cat相反)

用法:tac 文件

Linux基础学习笔记(1_数据_51

 

 

 

6.2 可翻页查看

6.2.1 more 命令

作用:实现一页一页翻动

用法:more [文件名]

 

查看一个内容很长的文档

Linux基础学习笔记(1_文件名_52

 

 

显示进度,按空格键或者回车键盘 就能往下翻页了。按 q 键就可以离开,输入 “/keyword” 可以对关键词就行搜索,按 n 可以向下搜索

 

6.2.2 less 命令

作用:实现一页一页翻动

用法:less 文件

Linux基础学习笔记(1_文件名_53

 

6.3 数据截取

6.3.1 head命令

作用:有时候我们并不需要查看全部的文档内容,只是想看其中几行而已,这时可用head,head是选取头几行,默认不加参数,是显示头十行的内容。

用法:head [-n number] 文档

参数:

  • -n:后面接的数字,代表显示几行的意思

Linux基础学习笔记(1_数据_54

 

 

 

6.3.2 tail 命令

作用:选取尾部文档内容(与head相反)

用法:taill [-n number] 文件

参数:

  • -n:后面接的数字,代表显示几行的意思

  • -f:持续刷新显示后面所接文件中的内容,等到按下[ctrl ] + c 才会结束

Linux基础学习笔记(1_文件名_55

 

 

6.4 非纯文本文件

6.4.1 od 命令

作用:查看二进制文件的内容

用法: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

 

查看head命令的内容

Linux基础学习笔记(1_文件名_56

Linux基础学习笔记(1_linux_57