第一章_常用命令

第一章:Linux命令介绍及Linux常用命令

在开始系统学习Linux之前,必须要先了解Linux的命令以及一些具体的常用命令,否则入门都无从说起.

常见的执行Linux命令的格式如下

命令名称 [命令参数] [命令对象]

其中: 命令参数是要执行的功能选择,命令对象是指要处理的文件,目录,用户等资源
命令参数可以输入全称,也可以输出缩写,例如输入: --help或-h
[]表示可以选择,真正输入时候不加括号
当有多个需要命令对象的命令参数时,要一一对应并且命令对象紧跟在命令参数后面,例如

wget -t 3 -P LinuxProbe http://www.linuxprobe.com/docs/Linuxprobe.pdf

表示最大尝试下载3次,将http://www.linuxprobe.com/docs/Linuxprobe.pdf中的内容下载到指定的LinuxProbe文件夹中

本章包含以下内容:

  • 常用的按键
  • 帮助文档命令
  • 常用系统工作命令
  • 系统状态检测命令
  • 工作目录切换命令
  • 文本文件编辑命令
  • 文件目录管理命令
  • 打包压缩与搜索命令

常用按键

Tab键

[tab] 补全命令或文件(当前文件或命令只有一个时)
[tab][tab] 罗列所有可能的文件或命令(当前文件或命令不唯一时)

例如:

假设有三个命令:roscore, rosrun, rostry

输入rosc之后按[tab]即可补全为roscore

输入ros后按[Tab]没有反应,按[Tab][Tab]显示三个可能的命令

Ctrl+c 1

[Ctrl]+[c] 终止当前运行的程序

Ctrl+d

[Ctrl]+[d] 关闭当前终端

Shift+Page Up/Page Down

[Shift]+[Page Up] 向上翻页

[Shift]+[Page Down] 向下翻页

帮助文档命令

随着Linux逐渐的发展壮大,Linux中的各种命令肯定是越来越多的,而每个命令都可能会有命令参数还有命令对象,因此将所有命令及对应的参数和对象记下来是不可能的.

对此Linux中有帮助文档命令,帮助我们调出某一命令的说明文档,在说明文档中我们就可以学习了解命令的具体使用规则

Linux的调出说明文档的方法具体有三种:

  • help参数
  • info命令
  • man命令

help参数

Linux中的命令通常是以脚本的形式写成的,因此一般都会配备相应的说明文档.
因此我们对某一个命令使用help参数,就可以调出相应的说明文档
语法:

命令名称 -h/--help

例如:
查询date命令的用法

date --help

不过需要注意的是:
使用help参数查询用法的时候,命令是知道拼写的

man命令

man是manul(说明手册)的缩写,man命令查到的说明文档相比于help参数查询到的更加详细,甚至会包括该命令的作者,乃至于与该命令相关的其他命令.

语法:

man 命令名称

实例:
查询date命令的详细说明

man date

输入代码之后,就会弹出date这个代码的相关内容的界面(打印在屏幕上),叫做man page,十分的详尽.

整个man page分为好几个部分,会有点难看懂,下面解释man page的每个部分和相关代号表示的含义以及如何操作.

man page详解

date的man page页面如下:

[ wangsh ]~ $ man date 
DATE(1)                      User Commands                         DATE(1) 
# 请注意上面这个括号内的数字 
NAME  <==这个命令的完整全名,如下所示为date且说明简单用途为配置与显示日期/时间 
       date - print or set the system date and time 
 
SYNOPSIS  <==这个命令的基本语法如下所示 
       date [OPTION]... [+FORMAT] 
       date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 
 
DESCRIPTION  <==详细说明刚刚语法谈到的选项与参数的用法 
       Display  the  current  time  in  the given FORMAT, or set the system 
       date. 
 
       -d, --date=STRING  <==左边-d为短选项名称,右边--date为完整选项名称 
              display time described by STRING, not 'now' 
 
       -f, --file=DATEFILE 
              like --date once for each line of DATEFILE 
 
       -r, --reference=FILE 
              display the last modification time of FILE 
....(中间省略).... 
       # 找到了!底下就是格式化输出的详细数据! 
       FORMAT controls the output.  The only valid option  for  the  second 
       form  specifies  Coordinated  Universal Time.  Interpreted sequences 
       are: 
 
       %%     a literal % 
 
       %a     locale's abbreviated weekday name (e.g., Sun) 
 
       %A     locale's full weekday name (e.g., Sunday) 
....(中间省略).... 
ENVIRONMENT  <==与这个命令相关的环境参数有如下的说明 
       TZ     Specifies the timezone, unless  overridden  by  command  line 
              parameters.   If  neither  is  specified,  the  setting  from 
              /etc/localtime is used. 
 
AUTHOR  <==这个命令的作者啦! 
       Written by David MacKenzie. 
 
REPORTING BUGS  <==有问题请留言给底下的email的意思! 
       Report bugs to <bug-coreutils@gnu.org>. 
 
COPYRIGHT  <==受到著作权法的保护!用的就是 GPL 了! 
       Copyright ? 2006 Free Software Foundation, Inc. 
       This is free software.  You may redistribute copies of it under  the 
       terms      of      the      GNU      General      Public     License 
       <http://www.gnu.org/licenses/gpl.html>.  There is  NO  WARRANTY,  to 
       the extent permitted by law. 
 
SEE ALSO  <==这个重要,你还可以从哪里查到与date相关的说明文件之意 
       The  full  documentation for date is maintained as a Texinfo manual. 
       If the info and date programs are properly installed at  your  site, 
       the command 
 
              info date 
 
       should give you access to the complete manual. 
 
date 5.97                          Nov 2019                            DATE(1) 

下面将分块介绍整个man page的每一个部分是什么意思

基础信息
DATE(1)                      User Commands                         DATE(1) 
  • date是命令的全称
  • 数字(如这里的(1))表明查询内容的属性

具体数字代表的含义见下表:

数字含义
1用户在shell环境中可以操作的命令或可执行文件
2系统内核可调用的函数与工具
3一些常用的函数(function)与函数库(library),大部分为c语言库(libc)
4设备文件的说明,通常是在/dev下的文件
5配置文件或是某些文件的格式
6游戏(games)
7惯例与协议等,例如linux文件系统,网络协议,ASCII代码等说明
8系统管理员可用的管理命令
9跟内核有关的文件

注意:

  • 加粗的比较重要

  • 其实man也是一个命令,所以他也具有自己对应的man page ,查询时候直接输入man man即可

NAME
NAME  <==这个命令的完整全名,如下所示为date且说明简单用途为配置与显示日期/时间 
       date - print or set the system date and time 
       
  • Name这里表示命令的完整全名,并且给出相应的简短说明
SYNOPSIS
SYNOPSIS  <==这个命令的基本语法如下所示 
       date [OPTION]... [+FORMAT] 
       date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 
       
  • SYNOPSIS这里表示命令的语法(syntax)的简介
DESCRIPTION
DESCRIPTION  <==详细说明刚刚语法谈到的选项与参数的用法 
       Display  the  current  time  in  the given FORMAT, or set the system 
       date. 
 
       -d, --date=STRING  <==左边-d为短选项名称,右边--date为完整选项名称 
              display time described by STRING, not 'now' 
 
       -f, --file=DATEFILE 
              like --date once for each line of DATEFILE 
 
       -r, --reference=FILE 
              display the last modification time of FILE 
....(中间省略).... 
       # 找到了!底下就是格式化输出的详细数据! 
       FORMAT controls the output.  The only valid option  for  the  second 
       form  specifies  Coordinated  Universal Time.  Interpreted sequences 
       are: 
 
       %%     a literal % 
 
       %a     locale's abbreviated weekday name (e.g., Sun) 
 
       %A     locale's full weekday name (e.g., Sunday) 
....(中间省略).... 

  • 这个部分首先给出了这个命令的详细介绍

  • 然后给出了针对前面语法中给出的选项与参数进行说明

COMMANDS

这个部分给出了当程序(软件)正在之行时候,可以在这个程序(软件)中执行的命令

注:

  • date命令的man page并没有这一部分
FILES

这个程序或者数据所使用的或参考或链接到的文件

SEE ALSO
SEE ALSO  <==这个重要,你还可以从哪里查到与date相关的说明文件之意 
       The  full  documentation for date is maintained as a Texinfo manual. 
       If the info and date programs are properly installed at  your  site, 
       the command 
 
              info date 
 
       should give you access to the complete manual. 

  • 这里给出和这个命令或数据相关的其他说明
EXAMPLE

example里面会给出命令的一些实例,这里没有给出

如何查看man page
浏览步骤
  1. 先NAME
  2. 再DESCRIPTION
  3. 然后是OPTION
  4. 初学者多看看EXAMPLE
  5. 有能力了看看FILES
特殊操作
按键说明
Space向下翻一页
Page Down向下翻一页
Page Up向上翻一页
Home回到第一页
End跳转到最后一页
/String从当前页面向下查找关键词
?String从当前页面想上寻找关键词
n,N在查找关键词时候,n是到下一个关键词出,N是到上一个关键词处
q退出当前命令或者文件的man page

info命令

在所有的基于Unix的系统中,都有man命令这样的查询方式,但是在Linux系统中,又提供了另外一种查询方式,就是info命令.

通过man命令打印出来的内容称为man page,那么通过info命令打印出来的称为info page.

info page其实在内容上与man page 差不多.但是和man page相比info page结构更加清晰,内容能够更好地被展现出来.

info page是将所有的内容拆成一个一个的段落,每个段落都有自己独立的page,不同的page之间用类似于网页的跳转的方式进行连接

不过需要注意的是支持info命令的说明文件首先必须以info格式写成才能够使用info的特殊功能.

其次支持info命令的文件必须放在/user/share/info/这个目录下面.

下面将介绍info 的用法

info命令的用法

和man类似

info 查询的命令

下面介绍info page中的具体内容

page head

首先info page的头部包含了许多重要信息

[ wangsh ]~$ info info
File:info.info,  Node: Top,  Next:Getting Started,  Up: (dir)
Info:An instruction
******************
略
  • File:表明当前page的位置
  • Node:表示当前界面所在整个info文件中的位置,这里是Top节点,也就是最前面的节点
  • Next:表示下一个节点的名称,这里是Getting Started
  • Up:回到上一层的节点总览画面,就是查看与当前节点同级的所有节点
  • Prv:前一个节点,但是由于这里是Top节点,没有上一个节点,所以没有显示
page tail

页面尾的地方通常表示的是当前节点的下一级节点(没错,整个info文件类似于树)

Menu:
Getting Started:
Advanced:
Expert Info:
Index:
info page的用法

按键什么与man page一模一样,但是不知道怎么用info的时候,可以按下h(help)来查看按键的作用

后面的命令指示简单的提一下,更多的使用帮助命令去查阅

常用的系统工作命令

对于新手来说,在使用linux系统的时候,如果遇到了问题,在网上查到了解决办法,可是却完全看不懂,这个时候就很头疼了.

其实这些解决问题的命令往往都是系统工作命令,下面就将讲解

echo命令

echo命令用于在终端输出字符串或变量提取后的值.

语法:

echo [字符串]
或
echo [$变量]

例如:
输出字符串Jack Wang

echo Jack Wang

提取变量SHELL的值输出

echo $SHELL

date命令

date命令用于显示及设置系统时间和日期

语法:

date [命令参数] [指定格式]

当指定格式(命令对象)以==加号+==开头时,将按照指定的格式输出当前时间

一些常用参数如下:

参数作用
%t制表符[Tab键]
%H24小时( 00 ~ 23 )
%I12小时( 00 ~ 12 )
%M分钟( 00 ~ 59 )
%S秒( 00 ~ 59 )
%j当前年份的第几日

例如:
按照默认格式显示当前时间

date

按照"年-月-日 小时:分钟:秒"的格式查看当前系统时间

date "+%Y-%m-%d%t%H:%M:%S""

查看当前日期是当前年份的第几日

date "+%j"

设置系统日期

date -s "20200416 8:30:00"
  • 将当前时间设置为2020年4月16日8点30分

reboot命令

reboot命令用于重启计算机

由于涉及到硬件资源管理,因此需要root用户来使用

poweroff命令

poweroff命令用于关闭计算机

和reboot一样,也涉及到了硬件资源管理,需要root权限

wget命令

wget命令用于在终端中下载网络文件

语法:

wget [参数] [下载地址]

常用的参数如下:

参数作用
-b后台下载模式
-P下载到指定目录
-t最大尝试次数
-c断点续传
-p下载页面所有资源,包括图片,视频等
-r递归下载

例如:
下载http://www.linuxprobe.com/docs/LinuxProbe.pdf这一地址中的Linux教学文件

wget -P LinuxProbe http:www.linuxprobe.com/docs/LinuxProbe.pdf
>>>将会把下载下来的文件存放到命名为LinuxProbe的文件夹下(没有的话会新创建)

下载http://www.linuxprobe.com的所有数据

wget -r -p http://www.linuxprobe.com
>>>将会把所有内容保存到当前工作目录下一个名为www.linuxprobe.com的目录中

ps命令

ps命令用于查看系统中的进程状态

语法:

ps [参数]

一般会配合管道符技术(在后面讲解)来查找特定的进程的pid

常用的参数如下:

参数作用
-a显示所有进程(包括其他用户的进程)
-u用户以及其他详细信息
-x显示没有控制终端的进程

Linux中时刻都运行着许多进程,合理的管理他们能够优化系统性能.Linux系统中有5种常见的进程状态,分别为: 运行,中断,不可中断,僵死,停止

  • R :Running,运行中,进程正在运行或者在运行队列中等待
  • S :Stop,中断,进程处于休眠中,当某个条件形成或者接收到信号时,脱离该状态
  • D :不可中断,进程不响应系统异步信号,即使使用kill命令也不能将其中断
  • Z :Zombie,僵死,进程已经终止,但是进程描述符依然存在,知道父进程调用wait4()系统函数后将进程释放
  • T :进程收到停止信号后停止运行

例如:

ps -au

得到结果如下

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       3979  0.1  2.3 203224 43204 tty1     Ss+  06:53   0:05 /usr/bin/Xorg 
root       4715  0.0  0.1 116256  3044 pts/0    Ss   06:54   0:00 /bin/bash
root      32917  0.0  0.0 123356  1376 pts/0    R+   07:54   0:00 ps -au

其中每栏的含义如下

名称含义
USER进程所有者
PID进程ID号
%CPUCPU占用率
%MEM内存占用率
VSZ虚拟内存使用量(单位是KB)
RSS占用的固定内存量(单位是KB)
TTY所在终端
STAT进程状态
START被启动的时间
TIME实际使用CPU时间
COMMAND命令名称与参数

top命令

top命令用于动态地见识进程活动与系统负载等信息

语法:

top

使用top命令后,将会看到下面的界面

top - 08:10:18 up  1:26,  2 users,  load average: 0.40, 0.15, 0.08
Tasks: 477 total,   3 running, 474 sleeping,   0 stopped,   0 zombie
%Cpu(s): 33.9 us,  1.3 sy,  0.0 ni, 64.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   1870760 total,  1327452 used,   543308 free,     1080 buffers
KiB Swap:  2097148 total,        0 used,  2097148 free.   482864 cached Mem

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND     
  4359 root      20   0 1676796 327100  38576 S 32.6 17.5   2:16.75 gnome-shell 
  3979 root      20   0  203224  43204   7916 S  2.3  2.3   0:08.50 Xorg        
  4706 root      20   0  771500  18860  12408 S  0.7  1.0   0:01.06 gnome-term+ 
     1 root      20   0   52840   6724   3756 S  0.0  0.4   0:01.51 systemd     
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.02 kthreadd    
     3 root      20   0       0      0      0 S  0.0  0.0   0:00.01 ksoftirqd/0 
     5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:+ 
     7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0 

前五行命令如下:

  1. 系统时间,运行时间,登录终端数,1分钟系统负载平均数,5分钟系统平均负载,15分钟系统平均负载
  2. 进程总数,运行中进程数,睡眠中进程数,停止的进程数,僵死的进程数
  3. 用户占用资源百分比,系统内核占用资源百分比,改变过优先级的进程资源百分比,空闲的资源百分比
  4. 物理内存总量,内存使用量,内存空限量,作为内核缓存的内存量
  5. 虚拟内存总量,虚拟内存使用量,虚拟内存空限量,已被提前加载的内存量

pidof命令

pidof命令用于查询某个指定服务的PID值

语法:

pidof [参数] [服务名称]

例如:
查询sshd服务程序的PID

pidof sshd

kill命令

kill命令用于终止某个指定PID的服务进程

通常是用pidof查出服务的pid号码,然后用kill命令结束进程

语法:

kill [参数] [进程PID]

killall命令

killall命令用于终止某个指定名称的服务所对应的全部进程

往往复杂软件的服务程序会有多个进程协同为用户提供服务,使用killall能结束所有的进程

语法:

killall [参数] [进程名称]

系统状态监测

Linux系统作为服务器,我们需要具备快速查看Linux系统运行状态的能力
下面将讲解与网卡网络,系统内核,系统负载,内存使用情况,当前启动终端数量,历史登录记录,命令执行记录及救援诊断等相关命令的使用方法

ifconfig命令

ifconfig命令用于获取网卡配置与网络状态等信息

语法:

ifconfig [网络设备] [参数]

需要注意的是,Ubuntu中ifconfig命令并非安装时自带的,需要下载net-tools组件

单纯使用ifconfig命令查看本机当前的网卡配置与网络状态等信息,其实主要看的就是网卡名称,inet参数后面的IP地址,ether参数后面的网卡物理地址(又称为MAC地址),以及RX,TX的接收数据包与发送数据包的个数和累计流量

eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.218.128  netmask 255.255.255.0  broadcast 192.168.218.255
        inet6 fe80::20c:29ff:fef3:b4e6  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:f3:b4:e6  txqueuelen 1000  (Ethernet)
        RX packets 445  bytes 38554 (37.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1418  bytes 103785 (101.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 525  bytes 52048 (50.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 525  bytes 52048 (50.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

uname命令

uname命令用于查看系统内核与系统版本等信息

语法:

uname [参数]

如果要查看系统内核与系统版本等信息,语法为

uname -a

uptime命令

uptime命令用于查看系统的负载信息

显示当前系统时间,系统已运行时间,启动终端数量以及平均负载值(1分钟,5分钟,15分钟)等信息

语法:

uptime

得到的结果如下

 08:50:50 up  2:07,  2 users,  load average: 0.08, 0.07, 0.06

free命令

free命令用于显示当前系统中内存的使用量信息

语法:

free [选项]

通常为了更人性化的查看会加上==-h==参数(自动转换单位)

查看当前系统中的内存使用量:

free -h

得到结果如下:

             total       used       free     shared    buffers     cached
Mem:          1.8G       1.3G       516M        10M       1.1M       471M
-/+ buffers/cache:       837M       989M
Swap:         2.0G         0B       2.0G

其中:

  • total:内存总量
  • used:已用量
  • free:可用量
  • shared:进程共享的内存量
  • buffers:磁盘缓存的内存量
  • cached:缓存的内存量

who命令

who命令用于查看当前登录主机的用户终端信息

语法:

who [参数]

直接使用who得到的结果如下

root     :0           2020-06-28 06:54 (:0)
root     pts/0        2020-06-28 06:54 (:0)=

其中:

  • 第一列为登录的用户名
  • 第二列为登录的终端设备
  • 第三列为登录到系统的时间

last命令

last命令用于查看所有系统的登录记录

语法:

last 参数

得到的结果和who命令的结果类似

history命令

history命令用于显示历史执行过的前1000条命令

如果觉得不够,可以在/etc/profile文件中修改HISTSIZE变量值

语法:

history [参数]

可以使用==-c==参数来清除历史记录

sosreport命令

sosreport命令用于手机系统配置及架构信息并输出诊断文档

语法:

sosreport

和ifconfig一样sosreport命令Ubuntu中不是自带的,需要下载sosreport`

工作目录切换命令

工作目录是指用户在当前系统中所处的位置
由于工作目录牵涉系统储存结构相关的只是,因此在后面详细讲解.这里只是介绍下使用

pwd命令

pwd命令用于显示用户当前所处的工作目录

语法:

pwd

cd命令

cd命令用于切换工作命令

语法:

cd 目录名称

常用的用法:

cd ~			//返回当前用户的家目录
cd..			//进入上级目录
cd ~username	//进入其他用户的家目录
cd -			//返回上一次所处的目录

ls命令

ls命令用于输出当前目录下的文件信息

语法:

ls 选项 文件

文件编辑命令

Linux系统中==“万物皆文件”==,因此我们必不可少的需要对文本进行编辑

下面就将讲解文件编辑命令

cat命令

cat命令用于查看纯文本文件(内容较少时候)

语法:

cat [选项] [文件]

使用==-n==选项显示行号

more命令

more命令用于查看纯文本文件(内容较多的)

使用more可以查看当前阅读百分比和空格/回车向下翻页

语法:

more [选项] [文件]

head命令

head命令由于查看纯文本文档的前n行

具体使用就是使用==-n==参数指定看的行数

语法

head [选项] [文件]

tail命令

tail命令用于查看纯文本文档的后n行

同样也是加上==-n==参数指定看的行数

可以使用-f参数来持续刷新文件

语法:

tail [选项] [文件]

tr命令

tr命令由于替换文本中的字符

语法:

tr [原始字符] [目的字符]

一般和管道符结合起来进行快速修改

wc命令

wc用于统计指定文本的行数,字数,字节数

语法:

wc 参数 文本

得到的结果分别是查询文件的行数,字数和字节数

stat命令

stat命令用于查看文件的具体存储信息和时间等信息

语法:

stat 文件名称

使用stat查看当下文件中的profile文件

[root@Jack-linuxprobe Desktop]# stat profile
  File: ‘profile’
  Size: 1750      	Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d	Inode: 102579774   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2020-06-28 09:30:16.847868217 -0400
Modify: 2020-06-28 09:30:08.916869121 -0400
Change: 2020-06-28 09:30:08.916869121 -0400
 Birth: -

可以看到profile文件具有三种状态: Access,Modify,Change

这三种状态在后面的touch命令讲解中将会讲到

cut命令

cut命令用于按列提取文本字符

语法:

cut 参数 文本

diff命令

diff命令多用于比较多个文本文件的差异

语法:

diff [参数] [文件]

如果要比较两个文本是否一样,可以使用–brief参数

如果两个文件内容一样,则不会产生任何信息

如果文件不一样,那么就用==-c==参数来描述文件内容的具体不同

多出的内容会在这一行前面有加号,不同的内容会在这一行前面有叹号

文件目录管理命令

前面的讲解更像是在打地基.在日常的linux运维中好需要掌握对文件的创建,修改,复制,剪切,更名与删除等操作

下面就将讲解linux中的文件目录管理命令

touch命令

touch命令用于创建空白文件或者设置文件时间

语法:

touch [选项] [文件]

使用touch创建空白文件很简单,不加选项直接后面加文件名即可,所以问题关键在于使用touch参数修改文件时间

touch的参数如下

参数作用
-a仅修改读取时间(atime)
-m仅修改修改时间(mtime)
-d同时修改atime和mtime

所以我们可以先用ls查看一个文件修改时间然后修改这个文件,最后通过touch再改回修改之前的时间

mkdir命令

mkdir命令用于创建空白目录

语法:

mkdir 选项 目录

可以使用-p选项来递归创建具有重叠关系的目录

cp命令

cp命令用于复制文件或目录

语法:

cp 选项 源文件 目标文件

mv命令

mv命令用于剪切文件或者将文件重命名

语法:

mv 选项 源文件 目标路径/目标文件名

rm命令

rm命令用于删除文件或目录

语法:

rm 选项 文件

dd命令

dd命令用于按照指定大小和个数的数据块来复制文件或者转移文件

语法:

dd 参数

file命令

file命令用于查看文件的类型

语法:

file 文件名

需要注意的是,linux中不能通过后缀名来查看文件类型,因此需要用file来查看

打包与压缩命令

在网络上,人们倾向于传输压缩文件,因为体积更小,效率更高

下面就将讲解linux中的打包与压缩命令

但是由于每个都很复杂,所以还是需要看查看说明文档

tar命令

tar命令用于对文件进行打包压缩或解压

语法:

tar 选项 文件

tar命令常用参数如下:

参数作用
-c创建压缩文件
-x解开压缩文件
-t查看压缩包内有哪些文件
-z用Gzip压缩或者解压
-j用bzip压缩或解压
-v显示压缩或者解压的过程
-f目标文件名
-p保留原始的权限和属性
-P使用绝对路径来压缩
-C指定解压到的目录

一般压缩时候用==-czvf==,解压缩用==-xzvf==

grep命令

grep命令用于在文本中执行关键词搜索,并显示匹配结果

语法:

grep 选项 文件

常用选项如下:

参数作用
-b将可执行文件(binary)当做文本文件(text)搜索
-c仅显示找到的行数
-i忽略大小写
-n显示行号
-v反向选择,仅列出没有关键词的行

例如,在/etc/passwd这个文本文件中匹配/sbin/nologin

find命令

find命令用于按照指定条件来查找文件

格式:

find [查找路径] [寻找条件] [操作]

其中找条件是使用参数实现的

find命令常用的参数和作用如下:

参数作用
-name匹配名称
-perm匹配权限
-user匹配所有者
-group匹配所有组
-mtime -n +n匹配修改内容的时间(-n指n天以内,+n指n天以前)
-atime -n +n匹配访问文件的时间(-n指n天以内,+n指n天以前)
-ctime -n +n匹配修改文件权限的时间(-n指n天以内,+n指天以前)
-nouser匹配无所有者的文件
-nogroup匹配无所有组的文件
-newer f1 !f2匹配比文件f1新但比文件f2旧的文件
–type b/d/c/p/l/f匹配文件类型,后面的字母参数分别表示块设备,目录,字符设备,管道,链接文件,文本文件
-size匹配文件的大小(+50KB表示大于50KB的文件,-50KB表示小于50KB的文件)
-preune忽略某个目录
-exec … {};可用于后面进一步处理搜索结果的命令

例如

我们想要找出/etc文件夹下所有以host开头的文件并打印出来

[root@Jack-linuxprobe Desktop]# find /etc -name "host*" -print

在整个系统中搜索权限包含SUID权限的所有文件 只需要使用-perm参数匹配-4000即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值