Ubuntu20.04 的基础命令及使用
这将显示所有正在运行的进程的详细信息,包括用户、PID、CPU 使用率等。这将显示有关系统中CPU的详细信息,包括处理器型号、核心数等。这将在当前目录及其子目录中搜索大小大于 10MB 的文件。这将显示当前系统中所有挂载的文件系统的磁盘空间使用情况。这将显示所有网络接口的信息,包括IP地址、子网掩码等。这将显示所有网络接口的信息,包括IP地址、子网掩码等。这将显示系统中内存的使用情况,包括已使用、
Ubuntu20.04 的基础命令及使用
基本命令:
- 开始学习常用的基本命令,如
ls(列出目录内容)、cd(切换目录)等。这些是你在日常使用Linux时最常用的命令。
-
ls: 列出目录内容。
ls是一个常用的 Linux 命令,用于列出目录中的文件和子目录。以下是一些常见的ls命令用法:
-
列出当前目录的内容:
ls -
列出所有文件,包括隐藏文件:
ls -a -
显示详细信息,包括文件权限、所有者、大小等:
ls -l -
显示所有文件的详细信息,包括隐藏文件:
ls -la -
以人类可读的格式显示文件大小:
ls -lh
-
cd: 切换目录。
cd命令是 Linux 中用于改变当前工作目录的基本命令。以下是一些常用的cd命令及其用法:
-
进入指定目录:
cd /path/to/directory -
返回上一级目录:
cd .. -
返回到上次所在的目录(返回前一个目录):
cd - -
进入用户的主目录:
cd ~ -
进入当前用户的主目录:
cd
-
pwd: 显示当前工作目录的路径。
pwd
文件操作:
- 学习如何创建、复制、移动、删除文件和目录。这包括命令如
cp、mv、rm、touch等。
-
mkdir:创建目录。
mkdir命令用于在 Linux 系统中创建新目录。以下是一些常用的mkdir命令用法:
-
创建一个新目录:
mkdir directory_name -
同时创建多个目录:
mkdir dir1 dir2 dir3 -
递归地创建目录(创建多层级目录):
mkdir -p path/to/directory -
设置目录的权限:
mkdir -m mode directory_name
-
rmdir:删除空目录。
-
删除一个空目录:
rmdir directory_name -
删除多个空目录:
rmdir dir1 dir2 dir3
-
-
rm:删除文件或目录。
-
删除一个文件:
rm file_name -
删除多个文件:
rm file1 file2 file3 -
递归地删除目录及其内容:
rm -r directory_name
-
-
cp:复制文件或目录。
-
复制文件到目录:
cp file_name /path/to/directory -
复制多个文件到目录:
cp file1 file2 file3 /path/to/directory -
复制目录及其内容到目标目录:
cp -r source_directory /path/to/target_directory
-
-
mv:移动或重命名文件或目录。
-
移动文件到目录:
mv file_name /path/to/directory -
重命名文件:
mv old_file_name new_file_name -
移动多个文件到目录:
mv file1 file2 file3 /path/to/directory -
递归移动目录及其内容到目标目录:
mv -R source_directory /path/to/target_directory -
覆盖目标文件而不提示:
mv -f file_name /path/to/directory
-
-
touch:创建一个新文件或者更新文件的时间戳。
-
创建一个新的空文件:
touch file_name -
创建多个新的空文件:
touch file1 file2 file3 -
更新文件的访问和修改时间戳(如果文件不存在,将会创建一个新的空文件):
touch file_name -
创建一个带有特定时间戳的文件:
touch -d "YYYY-MM-DD HH:mm:ss" file_name -
使用相对路径创建文件:
touch path/to/file_name
-
文本处理:
- 掌握一些文本处理命令,如
cat(查看文件内容)、grep(搜索)、sed(文本替换)、awk(文本处理工具)等。
-
cat: 用于连接文件并打印到标准输出。
-
显示文件内容:
cat file.txt -
显示行号:
cat -n file.txt
-
-
echo: 用于打印文本或变量。
echo "Hello, World!" -
grep: 用于在文件中搜索匹配指定模式的文本行。
-
在文件中搜索特定模式:
grep pattern file.txt这将在
file.txt中搜索匹配pattern的所有行。 -
显示行号:
grep -n pattern file.txt这将显示包含匹配
pattern的行及其行号。 -
递归搜索目录:
grep -r pattern directory/这将递归地在指定目录中搜索匹配
pattern的所有行。 -
仅显示匹配的内容:
grep -o pattern file.txt这将只显示匹配的部分,而不是整行。
-
不区分大小写:
grep -i pattern file.txt这将忽略大小写进行搜索。
-
显示匹配行之前/之后的内容:
grep -B 2 pattern file.txt # 显示匹配行之前的 2 行 grep -A 2 pattern file.txt # 显示匹配行之后的 2 行 grep -C 2 pattern file.txt # 显示匹配行前后的各 2 行 -
统计匹配的行数:
grep -c pattern file.txt这将统计匹配的行数。
-
反向匹配:
grep -v pattern file.txt这将显示不匹配
pattern的所有行。
-
-
sed: 用于流编辑器,可以进行文本替换、删除、插入等操作。
-
基本替换:
sed 's/old_text/new_text/g' filename这将在文件
filename中查找并替换所有的old_text为new_text。 -
在原文件中编辑(替换后保存):
sed -i 's/old_text/new_text/g' filename这将在原文件中进行替换并保存结果。
-
删除行:
sed '/pattern_to_delete/d' filename这将删除包含匹配
pattern_to_delete的行。 -
插入文本:
sed '/pattern_to_insert/i\text_to_insert' filename这将在匹配
pattern_to_insert的行之前插入text_to_insert。 -
追加文本:
sed '/pattern_to_append/a\text_to_append' filename这将在匹配
pattern_to_append的行之后追加text_to_append。 -
打印行号:
sed -n '/pattern_to_match/=' filename这将打印包含匹配
pattern_to_match的行的行号。 -
仅显示匹配的行:
sed -n '/pattern_to_match/p' filename这将仅显示包含匹配
pattern_to_match的行。 -
替换文件中特定行的内容:
sed 'Nc\replacement_text' filename这将替换文件中的第
N行内容为replacement_text。 -
正则表达式替换:
sed 's/regex_pattern/replacement_text/g' filename这是基于正则表达式的替换,将匹配
regex_pattern的内容替换为replacement_text。 -
批量重命名文件:
for file in *.txt; do mv "$file" "$(echo $file | sed 's/old_text/new_text/'
-
-
awk: 用于处理文本文件中的数据,可以根据指定的字段进行分隔和处理。
-
打印整行:
awk '{print}' filename这将打印文件
filename中的所有行。 -
打印特定列:
awk '{print $1}' filename这将打印文件
filename中的第一个字段。 -
打印满足条件的行:
awk '/pattern_to_match/' filename这将打印包含匹配
pattern_to_match的行。 -
计算并打印行数:
awk 'END {print NR}' filename这将计算并打印文件中的总行数。
-
计算并打印列的总和:
``` awk '{sum += $1} END {print sum}' filename ``` 这将计算第一列的总和并打印出来。 -
-
sort: 用于对文本进行排序。
-
按字母顺序排序行:
sort filename这将按照字母顺序对文件
filename中的行进行排序。 -
按反向字母顺序排序行:
sort -r filename这将按照反向字母顺序(降序)对文件
filename中的行进行排序。 -
按照数字顺序排序:
sort -n filename这将按照数字顺序对文件
filename中的行进行排序。
-
-
uniq: 用于过滤或报告重复行。
-
显示唯一的行:
uniq filename这将显示文件
filename中的唯一行。 -
删除重复的行:
uniq -d filename这将删除文件
filename中的重复行,并只显示重复的行。 -
显示非重复的行:
uniq -u filename这将显示文件
filename中的非重复行。 -
统计重复行的次数:
uniq -c filename这将显示文件
filename中每行重复出现的次数。
-
-
head: 用于显示文件的前几行。
head命令用于显示文件的开头部分,默认情况下显示前 10 行。以下是在 Ubuntu 20.04 中使用zsh终端时head命令的一些常见用法:-
显示文件的前 N 行:
head -n N filename这将显示文件
filename的前 N 行。例如,head -n 5 filename将显示文件的前 5 行。 -
显示文件的默认前 10 行:
head filename这将显示文件
filename的前 10 行。 -
显示多个文件的前几行:
head file1 file2这将显示文件
file1和file2的默认前 10 行。
-
-
tail: 用于显示文件的后几行。
tail命令用于显示文件的末尾部分,默认情况下显示后 10 行。以下是在 Ubuntu 20.04 中使用zsh终端时tail命令的一些常见用法:-
显示文件的末尾 N 行:
tail -n N filename这将显示文件
filename的末尾 N 行。例如,tail -n 5 filename将显示文件的末尾 5 行。 -
实时监视文件的新增内容:
tail -f filename这将实时显示文件
filename的新增内容,非常适用于监视日志文件的变化。 -
显示文件的末尾 10 行:
tail filename这将显示文件
filename的末尾 10 行。 -
显示多个文件的末尾几行:
tail file1 file2这将显示文件
file1和file2的默认末尾 10 行。
-
-
wc: 用于计算文件的行数、字数和字节数。
-
统计文件的行数、字数和字符数:
wc filename这将显示文件
filename中的行数、字数和字符数。 -
仅统计文件的行数:
wc -l filename这将仅显示文件
filename中的行数。 -
仅统计文件的字数:
wc -w filename这将仅显示文件
filename中的字数。 -
仅统计文件的字符数:
wc -m filename这将仅显示文件
filename中的字符数。 -
同时统计多个文件的行数、字数和字符数:
wc file1 file2这将显示文件
file1和file2的总行数、总字数和总字符数。 -
递归统计目录下所有文件的行数、字数和字符数:
find /path/to/directory -type f -exec wc {} \;这将递归地统计指定目录下所有文件的行数、字数和字符数。
-
权限管理:
- 了解如何管理文件和目录的权限,以及如何修改它们。命令如
chmod和chown。
-
修改文件或目录的权限:
chmod permissions filenamepermissions是你想要设置的权限,例如u+r表示给文件的所有者添加读权限。 -
递归地修改目录及其子目录下所有文件的权限:
chmod -R permissions directory这将递归地为目录
directory及其子目录下的所有文件设置权限。 -
给文件或目录添加/删除某个权限:
chmod -permission filename+用于添加权限,-用于删除权限。 -
改变文件或目录的所有者:
sudo chown new_owner:new_group filename这将把文件或目录
filename的所有者和所属组分别修改为new_owner和new_group。 -
改变文件或目录的所属组:
sudo chown :new_group filename
用户和组管理:
- 学习如何创建、修改和删除用户账户,以及如何管理用户所属的组。这包括命令如
useradd、passwd、usermod、groupadd等。
用户管理:
-
创建新用户:
sudo adduser username这将创建一个名为
username的新用户。 -
删除用户:
sudo deluser username这将删除用户
username。 -
切换用户:
su username这将切换到用户
username的会话。 -
为用户添加管理员权限:
sudo usermod -aG sudo username这将把用户
username添加到sudo组,从而赋予其管理员权限。 -
修改用户密码:
sudo passwd username这将允许你修改用户
username的密码。 -
查看当前登录的用户:
whoami这将显示当前登录的用户名。
-
查看所有用户的信息:
getent passwd这将列出系统中的所有用户。
组管理:
-
创建新组:
sudo addgroup groupname这将创建一个名为
groupname的新用户组。 -
删除组:
sudo delgroup groupname这将删除用户组
groupname。 -
将用户添加到组:
sudo adduser username groupname这将把用户
username添加到用户组groupname。 -
查看用户所属的组:
groups username这将列出用户
username所属的所有用户组。 -
将用户从组中移除:
sudo deluser username groupname这将把用户
username从用户组groupname中移除。 -
查看所有用户组的信息:
getent group这将列出系统中的所有用户组。
进程管理:
- 理解如何查看正在运行的进程,以及如何启动、停止、暂停和终止进程。命令如
ps、kill、top、systemctl等。
-
查看当前运行的进程:
ps这将显示当前用户的所有正在运行的进程。
-
显示所有正在运行的进程的详细信息:
ps -ef这将显示所有正在运行的进程的详细信息,包括用户、PID、CPU 使用率等。
-
查看特定用户的进程:
ps -u username这将显示特定用户(
username)的所有正在运行的进程。 -
查看当前用户的所有进程,包括守护进程和终端会话:
ps -ax这将显示当前用户的所有进程,包括守护进程和终端会话。
-
查找特定进程的信息:
pgrep process_name这将查找名称为
process_name的进程,并显示其 PID。 -
结束一个进程:
kill PID这将结束具有特定 PID 的进程。
-
强制结束一个进程:
kill -9 PID这将强制结束具有特定 PID 的进程。
-
结束一个进程组:
kill -- -PGID这将结束特定进程组(
PGID)中的所有进程。 -
显示正在运行的所有作业和任务:
jobs这将列出当前终端会话中所有的作业。
-
挂起一个作业:
Ctrl + Z这将暂停当前终端会话中的活动作业。
-
继续一个挂起的作业:
bg %job_number这将在后台继续一个被挂起的作业。
-
将一个作业切换到前台运行:
fg %job_number这将把一个作业切换到前台并继续运行。
软件包管理:
- 如果你使用的是基于Debian的发行版(如Ubuntu)可以学习
apt,如果使用的是基于Red Hat的发行版(如CentOS)可以学习yum或者dnf。
-
更新软件包列表:
sudo apt update这将更新可用软件包的列表,以获取最新的信息。
-
升级已安装的软件包:
sudo apt upgrade这将升级所有已安装的软件包到最新版本。
-
安装新软件包:
sudo apt install package_name这将安装名为
package_name的新软件包。 -
卸载软件包:
sudo apt remove package_name这将从系统中移除名为
package_name的软件包,但保留其配置文件。 -
卸载软件包及其配置文件:
sudo apt purge package_name这将从系统中移除名为
package_name的软件包及其配置文件。 -
搜索可用的软件包:
apt search keyword这将搜索包含关键词
keyword的可用软件包。 -
查看软件包信息:
apt show package_name这将显示关于软件包
package_name的详细信息,包括描述、版本等。 -
列出所有已安装的软件包:
dpkg --list这将列出所有已安装的软件包。
-
查找已安装的软件包:
dpkg --list | grep keyword这将在已安装的软件包中查找包含关键词
keyword的信息。 -
安装本地
.deb文件:sudo dpkg -i filename.deb这将安装名为
filename.deb的本地.deb文件。 -
移除已安装的软件包(保留配置文件):
sudo dpkg -r package_name这将从系统中移除名为
package_name的软件包,但保留其配置文件。 -
移除已安装的软件包(同时移除配置文件):
sudo dpkg -P package_name这将从系统中移除名为
package_name的软件包及其配置文件。
文件搜索:
- 学习如何在文件系统中搜索文件和目录。命令如
find和locate。
-
在当前目录及其子目录中搜索文件或目录:
find . -name "filename"这将在当前目录及其所有子目录中搜索名为
filename的文件或目录。 -
按文件类型进行搜索:
find . -type f -name "*.txt"这将在当前目录及其子目录中搜索所有扩展名为
.txt的文件。 -
忽略大小写进行搜索:
find . -iname "filename"这将在当前目录及其所有子目录中忽略大小写地搜索名为
filename的文件或目录。 -
查找空文件或目录:
find . -empty这将在当前目录及其子目录中搜索所有空文件或目录。
-
搜索特定用户的文件:
find /home -user username这将在
/home目录下搜索属于用户username的文件。 -
按文件大小进行搜索:
find . -size +10M这将在当前目录及其子目录中搜索大小大于 10MB 的文件。
-
按照修改时间进行搜索:
find . -mtime -7这将在当前目录及其子目录中搜索最近 7 天内被修改的文件。
网络相关:
- 了解如何配置网络接口、查看网络状态、测试网络连接等。命令如
ifconfig、ping、netstat等。
-
查看网络接口信息:
ifconfig这将显示所有网络接口的信息,包括IP地址、子网掩码等。
-
显示当前的网络连接状态:
netstat -tuln这将显示当前系统上的所有网络连接和端口的状态。
-
显示活动的网络连接:
ss -tuln这将显示当前活动的网络连接和端口的状态。
-
查看路由表:
route -n这将显示当前系统的路由表。
-
显示当前系统的DNS解析配置:
cat /etc/resolv.conf这将显示当前系统配置的DNS服务器。
-
Ping 测试:
ping target_address这将向目标地址发送ICMP包来测试网络连接。
-
Traceroute:
traceroute target_address这将显示数据包从源地址到目标地址所经过的路由。
-
通过域名获取IP地址:
host domain_name这将查询指定域名的IP地址。
-
通过IP地址获取域名:
host IP_address这将查询指定IP地址的域名。
-
显示当前的网络连接状态和网络接口信息:
ip addr show这将显示所有网络接口的信息,包括IP地址、子网掩码等。
-
显示网络接口的统计信息:
ip -s link show interface_name这将显示特定网络接口的统计信息。
-
检查网络连通性(telnet):
telnet target_address port这将尝试通过telnet协议连接到目标地址的指定端口。
压缩和解压缩:
- 学习如何打包和解包文件。命令如
tar、gzip、zip等。
压缩文件或目录:
-
使用 gzip 压缩:
gzip filename这将压缩名为
filename的文件,生成一个.gz的压缩文件。 -
使用 tar 和 gzip 结合压缩目录:
tar -czvf archive_name.tar.gz directory_name这将压缩名为
directory_name的目录,并生成一个名为archive_name.tar.gz的压缩文件。 -
使用 bzip2 压缩:
bzip2 filename这将压缩名为
filename的文件,生成一个.bz2的压缩文件。 -
使用 tar 和 bzip2 结合压缩目录:
tar -cjvf archive_name.tar.bz2 directory_name这将压缩名为
directory_name的目录,并生成一个名为archive_name.tar.bz2的压缩文件。 -
使用 xz 压缩:
xz filename这将压缩名为
filename的文件,生成一个.xz的压缩文件。 -
使用 tar 和 xz 结合压缩目录:
tar -cJvf archive_name.tar.xz directory_name这将压缩名为
directory_name的目录,并生成一个名为archive_name.tar.xz的压缩文件。
解压缩文件或目录:
-
解压缩 gzip 压缩文件:
gunzip filename.gz这将解压缩名为
filename.gz的文件。 -
解压缩 tar 和 gzip 结合的压缩文件:
tar -xzvf archive_name.tar.gz这将解压缩名为
archive_name.tar.gz的压缩文件。 -
解压缩 bzip2 压缩文件:
bunzip2 filename.bz2这将解压缩名为
filename.bz2的文件。 -
解压缩 tar 和 bzip2 结合的压缩文件:
tar -xjvf archive_name.tar.bz2这将解压缩名为
archive_name.tar.bz2的压缩文件。 -
解压缩 xz 压缩文件:
unxz filename.xz这将解压缩名为
filename.xz的文件。 -
解压缩 tar 和 xz 结合的压缩文件:
tar -xJvf archive_name.tar.xz这将解压缩名为
archive_name.tar.xz的压缩文件。
日志查看:
- 学习如何查看系统日志以及应用程序日志。命令如
cat、tail、grep等。
-
查看系统日志:
cat /var/log/syslog这将显示系统的日志文件内容。
-
查看登录日志:
cat /var/log/auth.log这将显示登录相关的日志,包括 SSH 登录等。
-
查看内核日志:
dmesg这将显示内核日志信息,包括系统启动信息和硬件信息。
Shell编程:
- 学习Shell脚本编程,这样你可以自动化许多任务。
-
创建新的 Shell 脚本文件:
touch script_name.sh这将创建一个名为
script_name.sh的新 Shell 脚本文件。 -
编辑 Shell 脚本文件:
vim script_name.sh这将使用文本编辑器 Nano 打开名为
script_name.sh的 Shell 脚本文件,以便进行编辑。 -
运行 Shell 脚本:
./script_name.sh这将执行名为
script_name.sh的 Shell 脚本文件。 -
添加执行权限:
chmod +x script_name.sh这将为名为
script_name.sh的脚本文件添加执行权限。 -
定义变量:
variable_name=value这将创建一个名为
variable_name的变量,并将其赋值为value。 -
使用变量:
echo $variable_name这将输出名为
variable_name的变量的值。 -
条件判断(if-else):
if [ condition ]; then # Commands if condition is true else # Commands if condition is false fi这是一个基本的条件判断结构。
-
循环(for 循环):
for item in list; do # Commands to be executed for each item in the list done这是一个基本的 for 循环结构。
-
函数定义:
function_name() { # Commands to be executed }这将定义一个名为
function_name的函数。 -
调用函数:
function_name这将调用名为
function_name的函数。 -
传递参数给脚本:
./script_name.sh arg1 arg2 arg3这将在执行脚本时传递参数给它。
-
读取用户输入:
read input_variable这将等待用户输入,并将输入的值存储在
input_variable变量中。
磁盘管理:
- 了解如何查看磁盘使用情况、挂载和卸载磁盘等。命令如
df、du、mount等。
-
查看磁盘空间使用情况:
df -h这将显示当前系统中所有挂载的文件系统的磁盘空间使用情况。
-
查看磁盘分区信息:
fdisk -l这将列出所有磁盘和它们的分区信息。
-
查看磁盘使用情况的摘要信息:
du -sh directory_name这将显示名为
directory_name的目录的磁盘使用情况摘要。 -
查看目录下的文件和子目录的磁盘使用情况:
du -h directory_name这将显示名为
directory_name的目录中所有文件和子目录的磁盘使用情况。 -
查看磁盘IO情况:
iostat这将显示磁盘的输入/输出统计信息。
-
查看磁盘挂载信息:
mount这将显示当前挂载的文件系统以及它们的挂载点。
-
格式化磁盘:
sudo mkfs.ext4 /dev/sdX这将格式化
/dev/sdX磁盘为 ext4 文件系统(请将X替换为实际的磁盘号)。 -
挂载磁盘:
sudo mount /dev/sdX /mnt这将将
/dev/sdX磁盘挂载到/mnt目录下(请将X替换为实际的磁盘号)。 -
卸载磁盘:
sudo umount /mnt这将卸载
/mnt目录下的文件系统。 -
查看磁盘信息(包括硬件信息):
sudo lshw -class disk这将显示系统中所有磁盘的详细信息。
-
查看磁盘状态和SMART信息:
sudo smartctl -a /dev/sdX这将显示
/dev/sdX磁盘的SMART信息(请将X替换为实际的磁盘号)。
系统信息查看:
- 了解如何获取有关系统硬件和软件的信息。命令如
uname等。
-
查看系统信息(包括内核版本、处理器信息等):
uname -a这将显示有关系统内核版本、处理器架构等的信息。
-
查看系统中安装的内存信息:
free -h这将显示系统中内存的使用情况,包括已使用、可用等信息。
-
查看系统中的CPU信息:
lscpu这将显示有关系统中CPU的详细信息,包括处理器型号、核心数等。
-
查看系统的硬件信息(包括CPU、内存、磁盘等):
sudo lshw这将显示系统的硬件信息。
备份和恢复:
- 学习如何备份重要数据并在需要时进行恢复。
备份文件或目录:
-
使用
cp命令:cp -r source_directory destination_directory这将递归地复制
source_directory中的所有文件和子目录到destination_directory中。 -
使用
tar命令打包备份:tar -cvzf backup.tar.gz source_directory这将创建一个名为
backup.tar.gz的压缩文件,其中包含了source_directory中的所有文件和子目录。 -
使用
rsync命令进行同步备份:rsync -av source_directory/ destination_directory这将通过
rsync命令将source_directory同步到destination_directory。
恢复文件或目录:
-
从备份目录中还原文件或目录:
cp -r backup_directory/source_directory destination_directory这将从备份目录中复制
source_directory到destination_directory。 -
从压缩备份文件中解压缩恢复:
tar -xzvf backup.tar.gz -C destination_directory这将解压缩
backup.tar.gz文件并将其中的内容放入destination_directory。 -
使用
rsync进行同步恢复:rsync -av backup_directory/ destination_directory这将通过
rsync命令将备份目录中的内容同步到destination_directory。
创建定期备份任务:
-
使用
cron计划任务: 编辑定时任务配置文件:crontab -e添加一个定时任务,例如每天凌晨3点备份
source_directory到backup_directory:0 3 * * * cp -r source_directory backup_directory -
使用备份工具如
rsnapshot或rsync结合cron: 这些工具可以帮助你创建自动化的定期备份任务。
更多推荐

所有评论(0)