这个系列的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号
%CPU CPU占用率
%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 MemPID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND1 root      20   0    1756   1076   1020 S   0.0   0.0   0:00.02 init206 root      20   0    2112    364      0 S   0.0   0.0   0:00.00 init207 root      20   0    2112    372      0 S   0.0   0.0   0:00.04 init208 lucky     20   0   10040   5056   3344 S   0.0   0.1   0:00.07 bash247 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 1500inet 192.168.15.130  netmask 255.255.255.0  broadcast 192.168.15.255inet6 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 0TX packets 403  bytes 34129 (33.3 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::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 0TX packets 84  bytes 5040 (4.9 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255ether 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 0TX 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 -htotal        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 -htotal        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:~$ lastwtmp begins Wed Sep 21 16:48:53 2022

history

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

lucky@LAPTOP-G2DIO3FV:~$ history1  ls2  ls -l3  ifconfig4  cd /5  ls6  cd home7  cd ...8  cd ..9  ls10  ls help11  ls --help12  man ls13  man 1 ls14  history15  clear16  ls17  clear
lucky@LAPTOP-G2DIO3FV:~$ !3
ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 172.21.188.16  netmask 255.255.240.0  broadcast 172.21.191.255inet6 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 0TX packets 133  bytes 11154 (11.1 KB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::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 0TX 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.cpp1  #include<iostream>2  using namespace std;34  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.txtSize: 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 -0500Birth: -
  • 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   // 寻找文件

Linux学习系列二:Linux中的常用命令相关推荐

  1. Nginx学习系列二Linux下Nginx实现负载均衡

    关于在本地虚拟机(VMware 14)下安装Linux同时安装Nginx,请参考Nginx学习系列之搭建环境 1.启动Nginx 在Nginx安装成功的前提下,启动Nginx 已root模式登陆(权限 ...

  2. Linux学习笔记(一):常用命令(2)

    3.帮助命令 A,帮助命令:man    B,其他帮助命令 3.1,格式:man [命令名] 查看命令拥有哪个级别的帮助:                                       ...

  3. Linux学习系列之Linux入门(一)linux安装与入门

    第一篇:安装并配置Linux开发环境 一.安装linux: 主要安装Linux的发行版,到目前为之,主要的发行版有: 比较常用的是Ubuntu.redhat和centOS,主要的安装方法详细: Ubu ...

  4. Linux学习:入门,概述,常用命令,环境安装

    服务器购买配置 参考:狂神说Linux 基于CentOS7 Linux一切皆文件:读,写 一.入门概述 二.Linux命令 1. 开机登录 可以使用 man [命令]来查看各个命令的使用文档,如 :m ...

  5. Linux学习总结(26)——Shell常用命令总结

    1.使用远程终端时,可以使用如下命令: screen tmux 2.下载文件可以使用如下命令: curl wget 3.压缩解压缩可以使用: tar .zip.rar 4.使用抓包工具 tcpdump ...

  6. Linux学习系列五:Shell命令脚本的基本语法

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

  7. Linux中常用的文件目录,Linux学习笔记2——Linux中常用文件目录操作命令

    ls 显示文件和目录列表 -l 列出文件的详细信息 -a 列出当前目录所有文件,包含隐藏文件 mkdir 创建目录 -p 父目录不存在情况下先生成父目录 cd 切换目录 touch 生成一个空文件 e ...

  8. 生信宝典Linux学习系列文章整理

    欢迎关注天下博客:http://blog.genesino.com/2017/10/sxbd-linux-summary/ 生信宝典推出的Linux从入门到常用命令.软件安装方法.数据处理方法都在这了 ...

  9. Linux学习系列之Mount

    Linux学习系列之Mount 在Linux中,如果你要使用储存设备 (Mo.硬盘.光驱等) ,就得先将它挂上 (Mount),而当储存设备挂上了之后,就可以把它当成一个目录来进行访问.挂上一个设备使 ...

最新文章

  1. C++ 类构造函数初始化列表介绍
  2. 教师资格证考试计算机知识题库,教师资格证考试题库
  3. 2018-06-13(日常运维三)
  4. librtmp分析(接收数据包处理)
  5. 生产Spark Streaming 黑名单过滤案例
  6. JFinal EhCachePlugin的学习笔记
  7. 如何在SharePointDesigner订制页面里判断用户权限
  8. hdu4027线段树
  9. c语言有趣小程序,c语言小程序代码大全(9个经典的C语言小程序)
  10. GX Works2快捷键
  11. java的常量池的大小,Java 常量池注意点
  12. 【Vegas原创】IPAD忘记密码重置恢复出厂设置
  13. 什么是等保(信息安全等级保护)?
  14. 我们比任何时候都更接近梦想
  15. 当三代测序遇到肿瘤基因组研究
  16. 【毕业设计】基于springboot的个人博客系统
  17. hive面试题总结(2020最新版)
  18. adc 采样时间 采样周期数 采样频率计算(以stm32为例)
  19. 语音、图像和视频数据的格式
  20. 微博舆情 之 热点话题分析

热门文章

  1. JS鼠标经过改变字体颜色,离开恢复
  2. 「连锁餐饮行业热点快报」复工首日上海咖啡外卖订单暴增210%
  3. 浅谈利用红外传感和数字图像处理完善电子围栏系统
  4. 通过exif信息校正手机拍摄图片的旋转问题
  5. matlab中exist函数说明
  6. Filter过滤器配置之入门
  7. python修改微信运动步数_微信运动数据抓取(Python)
  8. 软件产品登记和软件著作权登记有什么区别
  9. linux timewait 时间,linux下释放TIME_WAIT方法
  10. 2022-2028年全球与中国汽车电子制动系统行业市场深度调研及投资预测分析