简介

根据William Shotts在《Linux命令行》第五网络版中所述:“自由是决定你的计算机做什么的能力,而拥有这种自由的唯一方式是了解你的计算机在做什么。自由是一台没有秘密的计算机,如果你足够关心,就可以了解它的一切。”

本文帮助你记住每个Linux用户都应该知道的一些基本Linux命令。这些命令虽然基础但很实用。

推荐的几个网站:

初步了解

首先了解Shell

date命令

显示当前时间和日期。

1
date
1
2
kali@kali:~$ date
Sun Nov 27 07:55:49 AM UTC 2022

df命令

查看磁盘驱动器上的当前可用空间

1
df
1
2
3
4
5
6
7
8
9
kali@kali:~$ df
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 400252 1224 399028 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 10218772 3719172 5958928 39% /
tmpfs 2001244 0 2001244 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
/dev/nvme0n1p2 1768056 141524 1518400 9% /boot
/dev/nvme0n1p1 973952 5220 968732 1% /boot/efi
tmpfs 400248 4 400244 1% /run/user/1000

例如Ubuntu 22.10 aarch64服务器虚拟机

free命令

显示可用内存量

1
free
1
2
3
4
kali@kali:~$ free
total used free shared buff/cache available
Mem: 4002488 197008 3568192 1228 237288 3650284
Swap: 0 0 0

exit命令

结束终端会话

1
exit
1
2
3
4
kali@kali:~$ exit
logout

[*] Connection Closed

导航部分

帮助你在Linux文件系统中导航,这很酷

pwd命令

打印当前工作目录的名称

1
pwd
1
2
kali@kali:~$ pwd
/home/kali

ls命令

列出目录内容

1
ls
1
2
kali@kali:~$ ls
Workspace

如果你想查看更多信息,如大小、时间等

1
ls -l
1
2
3
kali@kali:~$ ls -l
total 4
drwxrwxr-x 3 kali kali 4096 Nov 27 08:54 Workspace

我们可以指定要列出的目录,例如/usr下的内容

1
ls /usr
1
2
kali@kali:~$ ls /usr
bin games include lib libexec local sbin share src

cd命令

从一个目录移动到另一个目录

1
cd

例如移动到Workspace

1
2
3
4
kali@kali:~$ cd Workspace
kali@kali:~/Workspace$ ls
python
kali@kali:~/Workspace$

如果我想回到原始目录

1
cd ~
1
2
3
4
kali@kali:~/Workspace$ cd ~
kali@kali:~$ ls
Workspace
kali@kali:~$

tree命令

使用树形结构显示目录

(你可能需要先安装它)

对于APT包管理器

1
sudo apt install tree
1
tree
1
2
3
4
5
6
7
kali@kali:~/Desktop $ tree
.
└── Info
└── Photo
└── wallpapers.jpg

2 directories, 1 file

更多关于文件的命令

file命令

使用file确定文件类型

1
file filename
1
2
kali@kali:~/Workspace/python/env$ file pyvenv.cfg
pyvenv.cfg: ASCII text

less命令

一个查看文本文件的程序

1
less filename
1
kali@kali:~/Workspace/python/env$ less pyvenv.cfg

文件内容:

1
2
3
4
5
6
7
8
9
10
home = /usr/bin
implementation = CPython
version_info = 3.10.7.final.0
virtualenv = 20.16.7
include-system-site-packages = false
base-prefix = /usr
base-exec-prefix = /usr
base-executable = /usr/bin/python3
~
(END)

点击q:退出less

点击h:显示帮助屏幕

Less就是More

操作文件和目录

cp命令

复制文件和目录

1
cp existing_file.txt existing_file.back
1
2
3
4
kali@kali:~/Workspace/python/env$ cp pyvenv.cfg pyvenv.cfg.2
kali@kali:~/Workspace/python/env$ ls
bin lib pyvenv.cfg pyvenv.cfg.2
kali@kali:~/Workspace/python/env$

mv命令

移动/重命名文件和目录

1
mv item1 item2
1
2
3
4
5
6
7
8
9
kali@kali:~/Workspace/python/env$ ls
bin lib pyvenv.cfg pyvenv.cfg.2
kali@kali:~/Workspace/python/env$ mv pyvenv.cfg.2 /home/kali
kali@kali:~/Workspace/python/env$ ls
bin lib pyvenv.cfg
kali@kali:~/Workspace/python/env$ cd ~
kali@kali:~$ ls
pyvenv.cfg.2 Workspace
kali@kali:~$

rm命令

删除文件和目录

1
rm item1
1
rm item1 item2
1
2
3
4
5
6
kali@kali:~$ ls
pyvenv.cfg.2 Workspace
kali@kali:~$ rm pyvenv.cfg.2
kali@kali:~$ ls
Workspace
kali@kali:~$
用途 命令
删除单个文件 rm filename
删除多个文件 rm file1 file2 file3
强制删除文件 rm -f file1 file2 file3
交互式删除文件 rm -i *.txt
删除空目录 rm -d dir
删除目录及其内容 rm -r dir
删除多个目录 rm -r dir1 dir2 dir3

表格来源:linuxhandbook.com

使用rm命令要小心

1
sudo rm -rf /*

sudo:root用户权限

-r:是rm命令的选项,表示递归处理,指定目录中的所有文件连同子目录一起处理

-f:是rm命令的选项,表示强制删除文件或目录

🤭

mkdir命令

创建目录

1
mkdir directory
1
2
3
4
kali@kali:~$ mkdir Test
kali@kali:~$ ls
Test Workspace
kali@kali:~$

其他常用命令

clear命令

清理你的shell界面,让心情更好

1
clear

ps命令

管理系统中运行的进程

1
ps
1
2
3
4
5
kali@kali:~$ ps
PID TTY TIME CMD
1346 pts/0 00:00:00 bash
1670 pts/0 00:00:00 ps
kali@kali:~$

查看所有用户运行的所有进程

1
ps aux
1
2
3
4
5
6
7
8
9
kali@kali:~$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 167500 11340 ? Ss 07:55 0:00 /sbin/init
root 2 0.0 0.0 0 0 ? S 07:55 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< 07:55 0:00 [rcu_gp]
...
...
...
kali@kali:~$

lsblk命令

显示磁盘和分区信息

1
lsblk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
kali@kali:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 131.3M 1 loop /snap/lxd/23687
loop1 7:1 0 132.2M 1 loop /snap/lxd/23996
loop2 7:2 0 43M 1 loop /snap/snapd/17579
loop3 7:3 0 59M 1 loop /snap/core20/1699
loop4 7:4 0 41.5M 1 loop /snap/snapd/17339
loop5 7:5 0 59M 1 loop /snap/core20/1627
sr0 11:0 1 1024M 0 rom
nvme0n1 259:0 0 20G 0 disk
├─nvme0n1p1 259:1 0 953M 0 part /boot/efi
├─nvme0n1p2 259:2 0 1.8G 0 part /boot
└─nvme0n1p3 259:3 0 17.3G 0 part
└─ubuntu--vg-ubuntu--lv 253:0 0 10G 0 lvm /
kali@kali:~$

history命令

回顾你之前运行过的命令

1
history
1
2
3
4
5
6
7
8
9
10
kali@kali:~$ history
1 ls
2 sudo apt update
3 sudo apt upgrade -y
4 htop
5 ls
...
...
...
kali@kali:~$

ping命令

1
ping ip_address
1
2
3
4
5
6
7
8
9
10
kali@kali:~$ ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.069 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.150 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.299 ms
^C
--- 127.0.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2054ms
rtt min/avg/max/mdev = 0.069/0.172/0.299/0.095 ms
kali@kali:~$
持续更新中

封面图片来源: Ubuntu Discourse(Jocix)