Linux学习系列二:Linux中的常用命令



这个系列的Linux教程主要参考刘遄老师的《Linux就该这么学》。用的系统是RHEL8,如果遇见一些命令出现问题,请首先检查自己的系统是否一致,如果不一致,可网上查一下系统间某些命令之间的差异。

目前设计的这个Linux学习系列的目录如下:(会陆续更新~)

  1. Linux 学习系列一:Linux的简单介绍以及命令行的基本操作
  2. Linux 学习系列二:Linux中的常用命令
  3. Linux 学习系列三:管道符、重定向与环境变量
  4. Linux 学习系列四:光速掌握Vim,效率提升神器
  5. Linux 学习系列五:Shell命令脚本的基本语法
  6. Linux 学习系列六:用户身份与文件权限


\quad
\quad

Linux中的常用命令

常用系统工作命令

echo

echo:用于在终端输出字符串或变量提取后的值,格式为“echo [字符串 | $变量]”。

lucky@LAPTOP-G2DIO3FV:~$ echo hello world
hello world
lucky@LAPTOP-G2DIO3FV:~$ echo $SHELL
/bin/bash

这个命令其实类似print()函数。

date

date: 用于显示及设置系统的时间或日期,格式为“date [选项] [+指定的格式]”。

只需在date命令中输入以“+”号开头的参数,即可按照指定格式来输出系统的时间或日期,这样在日常工作时便可以把备份数据的命令与指定格式输出的时间信息结合到一起。例如,把打包后的文件自动按照“年-月-日”的格式打包成“backup-2022-09-21.tar.gz”,命令如下:。

lucky@DESKTOP-VQ8KID4:~$ echo backup-`date "+%Y-%m-%d"`.tar.gz
backup-2022-09-21.tar.gz

date命令中的参数以及作用:

参数作用
%t跳格[Tab 键]
%H小时(00~23)
%I小时(00~12)
%M分钟(00~59)
%S秒(00~59)
%j今年中的第几天

单独使用date,表示按照默认格式查看当前系统时间。

lucky@LAPTOP-G2DIO3FV:~$ date
Tue Jun  7 21:36:56 CST 2022

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

lucky@LAPTOP-G2DIO3FV:~$ date "+%Y-%m-%d %H:%M:%S"
2022-06-07 21:37:56

今天是今年的第几天?

lucky@LAPTOP-G2DIO3FV:~$ date "+%j"
158

reboot

reboot:用于重启系统,其格式为reboot。 注意:由于重启计算机这种操作会涉及硬件资源的管理权限,因此默认只能使用root管理员来重启。

poweroff

poweroff:用于关闭系统,其格式为poweroff。 该命令与reboot命令相同,都会涉及硬件资源的管理权限,因此默认只有root管理员才可以关闭电脑。

设置多少秒之后自动关机:

shutdown -s -t 3600   # 自动关机

wget

wget:用于在终端中下载网络文件,格式为“wget [参数] 下载地址

wget命令的参数以及作用:

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

下载文件用法:

wget + http://...... 

ps

ps:用于查看系统中的进程状态,格式为“ps [参数]”。 ps命令与管道符技术搭配使用,可以用来抓取与某个指定服务进程相对应的PID号码。

ps命令的常见参数以及作用:

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

在 Linux 系统中,有 5 种常见的进程状态,分别为运行中断不可中断僵死停止,其各自 含义如下所示。

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

查看进程状态:

lucky@LAPTOP-G2DIO3FV:~$ ps -aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   1756  1076 ?        Sl   20:14   0:00 /init
root       206  0.0  0.0   2112   364 ?        Ss   21:17   0:00 /init
root       207  0.0  0.0   2112   372 ?        R    21:17   0:00 /init
lucky      208  0.0  0.0  10040  5056 pts/0    Ss   21:17   0:00 -bash
lucky      246  0.0  0.0  10856  3356 pts/0    R+   21:52   0:00 ps -aux

上面每一列代表的意思:

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

top

top:用于动态地监视进程活动与系统负载等信息,其格式为toptop命令相当强大,能够动态地查看系统运维状态,相当于加强版的Windows任务管理器。

下面是top的输出:

lucky@LAPTOP-G2DIO3FV:~$ top
top - 22:38:11 up  2:23,  0 users,  load average: 0.00, 0.00, 0.00
Tasks:   5 total,   1 running,   4 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   7632.9 total,   7376.6 free,    126.3 used,    130.0 buff/cache
MiB Swap:   2048.0 total,   2046.2 free,      1.8 used.   7313.5 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
    1 root      20   0    1756   1076   1020 S   0.0   0.0   0:00.02 init
  206 root      20   0    2112    364      0 S   0.0   0.0   0:00.00 init
  207 root      20   0    2112    372      0 S   0.0   0.0   0:00.04 init
  208 lucky     20   0   10040   5056   3344 S   0.0   0.1   0:00.07 bash
  247 lucky     20   0   10872   3712   3200 R   0.0   0.0   0:00.00 top

top命令执行结果的前5行为系统整体的统计信息,其所代表的含义如下:

  • 第 1 行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为 1 分钟、5分钟、15 分钟内的平均值,数值越小意味着负载越低)。
  • 第 2 行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
  • 第 3 行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。
  • 第 4 行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。
  • 第 5 行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。

注意:第 3 行中的数据均为 CPU 数据并以百分比格式显示,例如“100.0 id”意味着有 100% 的 CPU 处理器资源处于空闲。

pidof

pidof: 用于查询某个指定服务进程的PID值,格式为“pidof [参数] [服务名称]”。 每个进程的进程号码值(PID)是唯一的,因此可以通过PID来区分不同的进程。

查询本机上 sshd 服务程序的 PID:

lucky@LAPTOP-G2DIO3FV:~$ pidof sshd 
2156

kill

kill: 用于终止某个指定PID的服务进程,格式为“kill [参数] [进程 PID]”。

pidof命令可以把查询到的PID所代表的进程终止掉,这种操作的效果等同于强制停止sshd服务。

lucky@LAPTOP-G2DIO3FV:~$ kill 2156 

这与下面的命令是等价的:

systemctl stop sshd

killall

killall:用于终止某个指定名称的服务所对应的全部进程,格式为:“killall [参数] [进 程名称]”。

通常来讲,复杂软件的服务程序会有多个进程协同为用户提供服务,如果逐个去结束这些进程会比较麻烦,此时可以使用killall命令来批量结束某个服务程序带有的全部进程。

系统状态检测命令

ifconfig

ifconfig:用于获取网卡配置与网络状态等信息,格式为“ifconfig [网络设备] [参数]” 。

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

ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.15.130  netmask 255.255.255.0  broadcast 192.168.15.255
        inet6 fe80::9588:b084:5e74:df68  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:86:7c:0a  txqueuelen 1000  (Ethernet)
        RX packets 870  bytes 921625 (900.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 403  bytes 34129 (33.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 1000  (Local Loopback)
        RX packets 84  bytes 5040 (4.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 84  bytes 5040 (4.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:60:55:33  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • ens160:网卡名称
  • 192.168.15.130:IP地址
  • 00:0c:29:86:7c:0a:MAC地址
  • RX:收到的数据包大小 (累计的)
  • TX:发送出去的数据包大小

uname

uname: 用于查看系统内核与系统版本等信息,格式为“uname [-a]”。

lucky@LAPTOP-G2DIO3FV:~$ uname -a
Linux LAPTOP-G2DIO3FV 5.10.16.3-microsoft-standard-WSL2 #1 SMP Fri Apr 2 22:23:49 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
lucky@LAPTOP-G2DIO3FV:~$ uname
Linux

要查看当前系统版本的详细信息,则需要查看 os-release 文件,其命令以及相应的结果如下:

lucky@LAPTOP-G2DIO3FV:/etc$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.4 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.4 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

uptime

uptime:用于查看系统的负载信息,格式为uptime。这个命令可以显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。平均负载值指的是系统在最近1分钟、5分钟、15分钟内的压力情况;负载值越低越好,尽量不要长期超过1,在生产环境中不要超过5。

lucky@LAPTOP-G2DIO3FV:~$ free -h
              total        used        free      shared  buff/cache   available
Mem:          7.5Gi       118Mi       7.2Gi       0.0Ki       135Mi       7.1Gi
Swap:         2.0Gi          0B       2.0Gi

free

free:用于显示当前系统中内存的使用量信息,格式为“free [-h]”。-h参数以更人性化的方式输出当前内存的实时使用量信息。

lucky@LAPTOP-G2DIO3FV:~$ free -h
              total        used        free      shared  buff/cache   available
Mem:          7.5Gi       118Mi       7.2Gi       0.0Ki       135Mi       7.1Gi
Swap:         2.0Gi          0B       2.0Gi

who

who:用于查看当前登入主机的用户终端信息,格式为“who [参数]”。这个命令可以快速显示出所有正在登录本机的用户的名称以及他们正在开启的终端信息。

last

last: 用于查看所有系统的登录记录,格式为“last [参数]”。

lucky@DESKTOP-VQ8KID4:~$ last

wtmp begins Wed Sep 21 16:48:53 2022

history

history: 用于显示历史执行过的命令,格式为“history [-c]”。执行 history命令能显示出当前用户在本地计算机中执行过的最近1000条命令记录。如果觉得1000不够用,还可以自定义/etc/profile文件中的HISTSIZE变量值。在使用 history命令时,如果使用-c参数则会清空所有的命令历史记录。 还可以使用“!编码数字”的方式来重复执行某一次的命令。

lucky@LAPTOP-G2DIO3FV:~$ history
    1  ls
    2  ls -l
    3  ifconfig
    4  cd /
    5  ls
    6  cd home
    7  cd ...
    8  cd ..
    9  ls
   10  ls help
   11  ls --help
   12  man ls
   13  man 1 ls
   14  history
   15  clear
   16  ls
   17  clear
lucky@LAPTOP-G2DIO3FV:~$ !3
ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.21.188.16  netmask 255.255.240.0  broadcast 172.21.191.255
        inet6 fe80::215:5dff:fe74:1132  prefixlen 64  scopeid 0x20<link>
        ether 00:15:5d:74:11:32  txqueuelen 1000  (Ethernet)
        RX packets 180  bytes 216132 (216.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 133  bytes 11154 (11.1 KB)
        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 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

sosreport

sosreport:用于收集系统配置及架构信息并输出诊断文档,格式为sosreport。当 Linux 系统出现故障需要联系技术支持人员时,大多数时候都要先使用这个命令来简单收集系统的运行状态和服务配置信息,以便让技术支持人员能够远程解决一些小问题,亦或让他们能提前了解某些复杂问题。将收集好的资料压缩文件以及校验码,将其发送给技术支持人员即可。

工作目录切换命令

pwd

pwd:命令用于显示用户当前所处的工作目录,格式为“pwd [选项]”。

lucky@LAPTOP-G2DIO3FV:~$ pwd
/home/lucky

cd

cd :切换工作目录

  • cd -”命令返回到上一次所处的目录
  • cd..”命令进入上级目录
  • cd ~”命令切换到当前用户的home目录
  • cd ~username”切换到其他用户的home目录

ls

ls:用于显示目录中的文件信息,格式为“ls [选项] [文件]”。

  • ls -a:看到全部文件(包括隐藏文件)。
  • ls -l:可以查看文件的属性、大小等详细信息。
  • ls -al:可查看当前目录中的所有文件并输出这些文件的属性信息。
lucky@LAPTOP-G2DIO3FV:/$ ls -al
total 1436
drwxr-xr-x  19 root root    4096 Jun  8 21:31 .
drwxr-xr-x  19 root root    4096 Jun  8 21:31 ..
lrwxrwxrwx   1 root root       7 Mar 25 05:40 bin -> usr/bin
drwxr-xr-x   2 root root    4096 Mar 25 05:47 boot
drwxr-xr-x   8 root root    2760 Jun  8 21:31 dev
drwxr-xr-x  97 root root    4096 Jun  8 21:31 etc
drwxr-xr-x   3 root root    4096 Jun  7 20:14 home
-rwxr-xr-x   3 root root 1392928 Apr  5 20:23 init
lrwxrwxrwx   1 root root       7 Mar 25 05:40 lib -> usr/lib
lrwxrwxrwx   1 root root       9 Mar 25 05:40 lib32 -> usr/lib32
lrwxrwxrwx   1 root root       9 Mar 25 05:40 lib64 -> usr/lib64
lrwxrwxrwx   1 root root      10 Mar 25 05:40 libx32 -> usr/libx32
drwx------   2 root root   16384 Apr 11  2019 lost+found
drwxr-xr-x   2 root root    4096 Mar 25 05:40 media
drwxr-xr-x   5 root root    4096 Jun  7 20:14 mnt
drwxr-xr-x   2 root root    4096 Mar 25 05:40 opt
dr-xr-xr-x 217 root root       0 Jun  8 21:31 proc
drwx------   2 root root    4096 Mar 25 05:42 root
drwxr-xr-x   7 root root     140 Jun  8 21:31 run
lrwxrwxrwx   1 root root       8 Mar 25 05:40 sbin -> usr/sbin
drwxr-xr-x   6 root root    4096 Mar 25 05:42 snap
drwxr-xr-x   2 root root    4096 Mar 25 05:40 srv
dr-xr-xr-x  11 root root       0 Jun  8 21:31 sys
drwxrwxrwt   2 root root    4096 Jun  8 21:31 tmp
drwxr-xr-x  14 root root    4096 Mar 25 05:41 usr
drwxr-xr-x  13 root root    4096 Mar 25 05:42 var

隐藏文件的文件名都是以 “.” 开头的

如果想要查看目录属性信息,则需要额外添加一个-d参数。例如,可使用如下命令查看 /etc 目录的权限与属性信息:

lucky@LAPTOP-G2DIO3FV:/$ ls -ld /etc
drwxr-xr-x 97 root root 4096 Jun  8 21:31 /etc

文本文件编辑命令

cat

cat:用于查看纯文本文件(内容较少的),格式为“cat [选项] [文件]”。

  • cat -n ..:显示行号
lucky@LAPTOP-G2DIO3FV:~$ cat -n main.cpp
     1  #include<iostream>
     2  using namespace std;
     3
     4  int main(){
     5          cout << "hello world!" << endl;
     6          return 0;
     7  }

more

more:用于查看纯文本文件(内容较多的),格式为“more [选项]文件”。

用空格键或回车键向下翻页。

less

less命令的功能是用于分页显示文件内容。分页显示的功能与more命令很相像,但more命令只能从前向后浏览文件内容,而less命令则不仅能从前向后(PageDown键),还可以从后向前(PageUp键)浏览文件内容,更加灵活。例如,要查看一个定义了系统中全部用户身份的文件,输入以下命令:

[lucky@wz ~]$ less /etc/passwd

常用参数:

-b设置缓冲区的大小
-e当文件显示结束后自动退出
-f强制打开文件
-g只标志最后搜索的关键词
-i忽略搜索时的大小写
-m显示阅读进度百分比
-N显示每行的行号
-o将输出的内容在指定文件中保存起来
-s显示连续空行为一行

分页显示指定命令的输出结果:

[lucky@wz ~]$ history | less

如果文件内容多于一页,那么我们可以上下滚动文件。less 程序最常使用的键盘命令列举如下。

命令行为
Page UP or b向上翻滚一页
Page Down or space向下翻滚一页
UP Arrow向上翻滚一行
Down Arrow向下翻滚一行
G移动到最后一行
1G or g移动到开头一行
/charaters向前查找指定的字符串
n向前查找下一个出现的字符串,这个字符串是之前所指定查找的
h显示帮助屏幕
q退出 less 程序

head

head :用于查看纯文本文档的前 N 行,格式为“head [选项] [文件]”。

head -n 15 read.txt   查看文件前15行

例如,查看文件前15行:

head  -n 15 read.txt   

tail

tail:用于查看纯文本文档的后 N 行或持续刷新内容,格式为“tail [选项] [文件]”。

例如,查看文件后15行:

tail -n 15 read.txt  

实时查看最新文件:

tail -f read.txt

tr

tr: 用于替换文本文件中的字符,格式为“tr [原始字符] [目标字符]”。

一个例子,将文件内容所有小写字母换成大写字母。(先使用cat命令读取待处理的文本,然后通过管道符(后面会讲)把这些文本内容传递给tr命令进行替换操作即可)

cat anaconda-ks.cfg | tr [a-z] [A-Z]

wc

wc: 用于统计指定文本的行数、字数、字节数,格式为“wc [参数] 文本”。 wc的参数以及相应的作用如下:

参数作用
-l只显示行数
-w只显示单词数
-c只显示字节数

在 Linux 系统中,passwd是用于保存系统账户信息的文件,要统计当前系统中有多少个用户,可以使用下面的命令来进行查询:

lucky@LAPTOP-G2DIO3FV:~$ wc -l /etc/passwd
31 /etc/passwd

stat

stat:令用于查看文件的具体存储信息和时间等信息,格式为“stat 文件名称”。命令 stat o2z.txt 会显示出文件的三种时间状态:AccessModifyChange

lucky@wz ~]$ stat o2z.txt 
  File: o2z.txt
  Size: 522       	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 1093879     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/   lucky)   Gid: ( 1000/   lucky)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2022-01-19 06:08:53.880309472 -0500
Modify: 2022-01-19 06:08:09.908304874 -0500
Change: 2022-01-19 06:08:09.909304875 -0500
 Birth: -
  • A time 最后一次查看文件内容的时间
  • M time 最后一次修改文件内容的时间
  • C time 最后一次修改文件属性信息的时间 (权限变更)

cut

cut: 用于按“列”提取文本字符,格式为“cut [参数] 文本”。

  • 使用-f 参数来设置需要看的列数;
  • 使用-d 参数来设置间隔符号。

passwd在保存用户数据信息时,用户信息的每一项值之间是采用冒号来间隔的,接下来我们使用下述命令尝试提取出用户名信息,即提取以冒号为间隔符号的第一列内容:

[lucky@wz ~]$ cut -d: -f1 /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
dbus
systemd-coredump
systemd-resolve
tss
polkitd
geoclue
rtkit
pulse
qemu
usbmuxd
unbound
rpc
gluster
chrony
libstoragemgmt
pipewire
setroubleshoot
saslauth
dnsmasq
radvd
clevis
cockpit-ws
sssd
colord
gdm
rpcuser
gnome-initial-setup
sshd
insights
avahi
tcpdump
lucky

diff

diff:用于比较多个文本文件的差异,格式为“diff [参数] 文件”。 主要用于判断文件是否被篡改。

  • 使用--brief 参数来确认两个文件是否不同;
  • 使用-c 参数来详细比较出多个文件的差异之处。

为了实验,编写两个文件:

[lucky@wz ~]$ cat diff_A.txt 
hello world
hello xiaoming
hi
[lucky@linuxprobe ~]$ cat diff_B.txt 
hello world!
hello
hihi

使用diff来比较这两个文件的差异:

[lucky@wz ~]$ diff --brief diff_A.txt diff_B.txt 
Files diff_A.txt and diff_B.txt differ
[lucky@wz ~]$ diff -c diff_A.txt diff_B.txt 
*** diff_A.txt	2022-06-09 07:37:45.101395727 -0400
--- diff_B.txt	2022-06-09 07:38:09.969031421 -0400
***************
*** 1,3 ****
! hello world
! hello xiaoming
! hi
--- 1,3 ----
! hello world!
! hello
! hihi

文件目录管理命令

touch

touch: 用于创建空白文件或设置文件的时间,格式为“touch [选项] [文件]” 。

touch命令的参数及其作用

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

修改时间:

[lucky@wz ~]$ ls -l diff_A.txt 
-rw-rw-r--. 1 lucky lucky 30 Jun  9 07:37 diff_A.txt
[lucky@wz ~]$ touch -d "2017-05-05 13:58" diff_A.txt 
[lucky@wz ~]$ ls -l diff_A.txt 
-rw-rw-r--. 1 lucky lucky 30 May  5  2017 diff_A.txt

mkdir

mkdir:用于创建空白的目录,格式为“mkdir [选项] 目录” 。

  • 结合-p 参数来递归创建出具有嵌套叠层关系的文件目录。
[lucky@wz ~]$ mkdir -p gaga/gaga
[lucky@wz ~]$ cd gaga/gaga
[lucky@wz gaga]$ 

cp

cp: 用于复制文件或目录,格式为“cp [选项] 源文件 目标文件”。

在 Linux 系统中,复制操作具体分为 3 种情况:

  • 如果目标文件是目录,则会把源文件复制到该目录中;
  • 如果目标文件也是普通文件,则会询问是否要覆盖它;
  • 如果目标文件不存在,则执行正常的复制操作。

cp 命令的参数及其作用

参数作用
-p保留原始文件的属性
-d若对象为“链接文件”,则保留该“链接文件”的属性
-r递归持续复制(用于目录)
-i若目标文件存在则询问是否覆盖
-a相当于-pdr(p、d、r 为上述参数)
cp 源文件 目标文件
cp -r 源目录  目标目录

mv

mv: 用于剪切文件或将文件重命名,格式为“mv [选项] 源文件 [目标路径|目标文件名]” 。

剪切操作不同于复制操作,因为它会默认把源文件删除掉,只保留剪切后的文件。如果在同一个目录中对一个文件进行剪切操作,就是对其进行重命名。

mv 源文件 目标文件名

rm

rm :用于删除文件或目录,格式为“rm [选项] 文件”。 在 Linux 系统中删除文件时,系统会默认向您询问是否要执行删除操作,如果不想总是看到这种反复的确认信息,可在 rm命令后跟上-f 参数来强制删除。另外,想要删除一个目录, 需要在 rm 命令后面一个-r 参数才可以,否则删除不掉。

rm 文件名
rm -f 文件名   // 强制删除
rm -rf 目录   // 强制删除目录

rm -rf / //千万不要输!

dd

dd: 用于按照指定大小和个数的数据块来复制文件或转换文件,格式为“dd [参数]” 。

dd命令的参数及其作用

参数作用
if输入的文件名称
of输出的文件名称
bs设置每个“块”的大小
count设置要复制“块”的个数

dd命令从/dev/zero 设备文件中取出一个大小为 560MB 的数据块,然后保存成名为 560_file的文件。

dd if=/dev/zero of=560_file count=1 bs=560M

在 Linux 系统中可以直接 使用 dd 命令来压制出光盘镜像文件,将它编程一个可立即使用的 iso 镜像:

 dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso 

file

file: 用于查看文件的类型,格式为“file 文件名” 。在 Linux 系统中,由于文本、目录、设备等所有这些一切都统称为文件,但是我们不能单凭后缀就知道具体的文件类型,这时就需要使用file 命令来查看文件类型了。

lucky@DESKTOP-VQ8KID4:~$ file three.py
three.py: ASCII text
lucky@DESKTOP-VQ8KID4:~$ cp three.py three.sh
lucky@DESKTOP-VQ8KID4:~$ file three.sh
three.sh: ASCII text

打包压缩与搜索命令

tar

tar: 用于对文件进行打包压缩或解压,格式为“tar [选项] [文件]” 。 在 Linux 系统中,常见的文件格式比较多,其中主要使用的是.tar.tar.gz.tar.bz2 格式。

tar命令的参数及其作用

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

-f参数特别重要,它必须放到参数的最后一位,代表要压缩或解压的软件包名称。

常用组合命令:

tar czvf 压缩包.tar.gz 文件名   // 压缩
tar xzvf 压缩包    // 解压

grep

grep: 令用于在文本中执行关键词搜索,并显示匹配的结果,格式为“grep [选项] [文件]” 。 grep命令是用途最广泛的文本搜索匹配工具。

  • -n 参数用来显示搜索到信息的行号;
  • -v 参数用于反选信息(即没有包含关键词的所有信息行)

使用:

grep 关键词 文件名
grep -n 关键词 文件名   // 显示行号

例子:在 Linux 系统中,/etc/passwd文件是保存着所有的用户信息,而一旦用户的登录终端被设置成/sbin/nologin,则不再允许登录系统,因此可以使用 grep 命令来查找出当前系统中不允许登录系统的所有用户信息:

grep /sbin/nologin /etc/passwd 

find

find: 用于按照指定条件来查找文件,格式为“find [查找路径] 寻找条件 操作”。 在 Linux系统中,搜索工作一般都是通过find命令来完成的,它可以使用不同的文件特性作为寻找条件(如文件名、大小、修改时间、权限等信息),一旦匹配成功则默认将信息显示到屏幕上。

find命令中的参数以及作用:

参数作用
-name匹配名称
-perm匹配权限(mode 为完全匹配,-mode 为包含即可)
-user匹配所有者
-group匹配所有组
-mtime -n +n匹配修改内容的时间(-n 指 n 天以内,+n 指 n 天以前)
-atime -n +n匹配访问文件的时间(-n 指 n 天以内,+n 指 n 天以前)
-ctime -n +n匹配修改文件权限的时间(-n 指 n 天以内,+n 指 n 天以前)
-nouser匹配无所有者的文件
-nogroup匹配无所有组的文件
-newer f1 !f2匹配比文件 f1 新但比 f2 旧的文件
–type b/d/c/p/l/f匹配文件类型(后面的参数依次表示块设备、目录、字符设备、管道、 链接文件、文本文件)
-size匹配文件的大小(+50KB 为查找超过 50KB 的文件,而-50KB 为查找小于 50KB 的文件)
-prune忽略某个目录
-exec …… {}\;后面可跟用于进一步处理搜索结果的命令(类似与管道符)
find / -user lucky
find / -name fstab   // 寻找文件
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AlphaGuaGua

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值