news 2026/4/16 15:26:35

Linux的shell命令

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux的shell命令

1.基础的shell命令

在Linux系统中不同于window中的图形化操作,linux更多的是用的命令行的操作,下面我们来看看其中的一些基础shell命令。首先我们看下面这段命令解释一下其中的提示符:

linux@ubuntu:~$ sudo su [sudo] linux 的密码: root@ubuntu:/home/linux#

@是分隔符,linux和root是用户名,ubuntu是计算机名,~表示家目录即linux/home是根目录的子目录,/是根目录,~后的符号表示是普通用户,#表示是管理员用户。

接下来是一些快捷键,如终端里的复制时ctrl+shift+c,粘贴时crtl+shift+v,上键获取上一次输入执行的命令,左右键用来移动光标到指定的命令位置,ctrl+c结束一个正在执行的命令,crtl+l清除屏幕,Tab补齐命令和文件名。

下面是一些基础的shell命令:

linux@ubuntu:~$ df 文件系统 1K的块 已用 可用 已用% 挂载点 tmpfs 396128 2072 394056 1% /run /dev/sda3 50770432 14251564 33907464 30% / tmpfs 1980636 0 1980636 0% /dev/shm tmpfs 5120 4 5116 1% /run/lock /dev/sda2 524252 6232 518020 2% /boot/efi tmpfs 396124 100 396024 1% /run/user/1000 /dev/sr0 160192 160192 0 100% /media/linux/CDROM linux@ubuntu:~$ free total used free shared buff/cache available 内存: 3961272 986732 2118496 49480 856044 2692980 交换: 3991548 0 3991548 linux@ubuntu:~$ history 1 sudo apt update 2 sudo apt install open-vm-tools-desktop cloud-init 3 reboot 4 history linux@ubuntu:~$ history -c linux@ubuntu:~$ history 1 history linux@ubuntu:~$

df:查看磁盘使用情况,free:显示系统空闲内存,history:显示历史命令,history-c:清空历史命令。

linux@ubuntu:~$ ls Desktop Documents Downloads Music Pictures Public snap Templates Videos work linux@ubuntu:~$ alias myls='ls' linux@ubuntu:~$ myls Desktop Documents Downloads Music Pictures Public snap Templates Videos work linux@ubuntu:~$ unalias myls linux@ubuntu:~$ myls 找不到命令 “myls”,您的意思是: “pyls” 命令来自 Debian 软件包 python3-pyls (0.36.2-3) “mmls” 命令来自 Debian 软件包 sleuthkit (4.11.1+dfsg-1) “tyls” 命令来自 Debian 软件包 terminology (1.12.1-1) 尝试 sudo apt install <deb name>

ls:查看当前路径下文件,alias:给命令取别名,unalias:消除别名。

linux@ubuntu:~$ ls Desktop Documents Downloads Music Pictures Public snap Templates Videos work linux@ubuntu:~$ cd work linux@ubuntu:~/work$ ls jeffy-vim-sl-v6.0 jeffy-vim-sl-v6.0.tar.xz word.c linux@ubuntu:~/work$ touch file_fist.c file_second.c file_three.c linux@ubuntu:~/work$ ls file_fist.c file_second.c file_three.c jeffy-vim-sl-v6.0 jeffy-vim-sl-v6.0.tar.xz word.c linux@ubuntu:~/work$ ls file_*.c file_fist.c file_second.c file_three.c linux@ubuntu:~/work$ touch file_1.c file_2.c file_3.c linux@ubuntu:~/work$ ls file_1.c file_2.c file_3.c file_fist.c file_second.c file_three.c jeffy-vim-sl-v6.0 jeffy-vim-sl-v6.0.tar.xz word.c linux@ubuntu:~/work$ ls file_?.c file_1.c file_2.c file_3.c linux@ubuntu:~/work$ touch file_o.c file_t.c file_a.c linux@ubuntu:~/work$ ls file_?.c file_1.c file_2.c file_3.c file_a.c file_o.c file_t.c linux@ubuntu:~/work$ ls file_[ota].c file_a.c file_o.c file_t.c linux@ubuntu:~/work$ ls file_[a-q].c file_a.c file_o.c linux@ubuntu:~/work$ ls file_[^a].c file_1.c file_2.c file_3.c file_o.c file_t.c linux@ubuntu:~/work$ rm file* linux@ubuntu:~/work$ ls jeffy-vim-sl-v6.0 jeffy-vim-sl-v6.0.tar.xz word.c

cd:进入到指定路径下,touch:创建文件。通配符,*匹配任意长度的字符串,?匹配一个长度的字符的,[]匹配指定的字符,[-]匹配字符范围内的字符,[^]匹配除了指定字符的字符。rm:删除指定文件。

linux@ubuntu:~$ ls -l 总计 40 drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Desktop drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Documents drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Downloads drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Music drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Pictures drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Public drwx------ 4 linux linux 4096 12月 3 16:03 snap drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Templates drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Videos drwxrwxr-x 3 linux linux 4096 12月 14 15:29 work linux@ubuntu:~$ ls -l | grep work drwxrwxr-x 3 linux linux 4096 12月 14 15:29 work linux@ubuntu:~$ ls > log linux@ubuntu:~$ ls Desktop Documents Downloads log Music Pictures Public snap Templates Videos work linux@ubuntu:~$ cat log Desktop Documents Downloads log Music Pictures Public snap Templates Videos work linux@ubuntu:~$ ls -l > log linux@ubuntu:~$ cat log 总计 40 drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Desktop drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Documents drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Downloads -rw-rw-r-- 1 linux linux 0 12月 14 15:32 log drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Music drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Pictures drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Public drwx------ 4 linux linux 4096 12月 3 16:03 snap drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Templates drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Videos drwxrwxr-x 3 linux linux 4096 12月 14 15:29 work linux@ubuntu:~$ ls >> log linux@ubuntu:~$ cat log 总计 40 drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Desktop drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Documents drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Downloads -rw-rw-r-- 1 linux linux 0 12月 14 15:32 log drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Music drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Pictures drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Public drwx------ 4 linux linux 4096 12月 3 16:03 snap drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Templates drwxr-xr-x 2 linux linux 4096 12月 3 15:48 Videos drwxrwxr-x 3 linux linux 4096 12月 14 15:29 work Desktop Documents Downloads log Music Pictures Public snap Templates Videos work linux@ubuntu:~$ grep < log 用法:grep [选项]... 模式 [文件]... 请尝试执行 "grep --help" 来获取更多信息。 linux@ubuntu:~$ grep work < log drwxrwxr-x 3 linux linux 4096 12月 14 15:29 work work

ls -l:显示该路径下文件详细信息。| :管道将以一个的输出作为第二个输入。grep:查找指定信息。> :输出系统标准输出为终端窗口,可以指定输出到哪里,如果没有该文件则删除后重新创建,没有该文件则创建文件。>>:追加输出,没有文件创建,有则追加输出。< :输入,系统的标准输入为键盘,可以指定文件作为输入。cat:显示一个文件里面的内容。

linux@ubuntu:~/work/test$ ls linux@ubuntu:~/work/test$ ls / bin boot cdrom dev etc home lib lib32 lib64 libx32 lost+found media mnt opt proc root run sbin snap srv swapfile sys tmp usr var linux@ubuntu:~/work/test$ touch `ls /` linux@ubuntu:~/work/test$ ls bin boot cdrom dev etc home lib lib32 lib64 libx32 lost+found media mnt opt proc root run sbin snap srv swapfile sys tmp usr var linux@ubuntu:~/work/test$ rm * linux@ubuntu:~/work/test$ ls linux@ubuntu:~/work/test$ cd ~ linux@ubuntu:~$ cd work/test/ linux@ubuntu:~/work/test$ cd . linux@ubuntu:~/work/test$ cd ..

反引号:一个命令的输出作为一个命令的输入。cd:进入到指定目录。work/test/:绝对路径。..:相对路径,..表示当前目录的上一个,.表示当前路径。

linux@ubuntu:~/work$ ls jeffy-vim-sl-v6.0 jeffy-vim-sl-v6.0.tar.xz linux@ubuntu:~/work$ mkdir dir1 linux@ubuntu:~/work$ ls dir1 jeffy-vim-sl-v6.0 jeffy-vim-sl-v6.0.tar.xz linux@ubuntu:~/work$ mkdir dir1/dir2/dir3 mkdir: 无法创建目录 "dir1/dir2/dir3": 没有那个文件或目录 linux@ubuntu:~/work$ mkdir -p dir1/dir2/dir3 linux@ubuntu:~/work$ ls dir1 jeffy-vim-sl-v6.0 jeffy-vim-sl-v6.0.tar.xz linux@ubuntu:~/work$ ls dir1 dir2 linux@ubuntu:~/work$ ls dir1/dir2 dir3 linux@ubuntu:~/work$ rm -r dir1 linux@ubuntu:~/work$ ls jeffy-vim-sl-v6.0 jeffy-vim-sl-v6.0.tar.xz linux@ubuntu:~/work$ mkdir dir1/dir2/dir3 mkdir: 无法创建目录 "dir1/dir2/dir3": 没有那个文件或目录 linux@ubuntu:~/work$ mkdir -p dir1/dir2/dir3 linux@ubuntu:~/work$ cd dir1 linux@ubuntu:~/work/dir1$ touch test linux@ubuntu:~/work/dir1$ cd .. linux@ubuntu:~/work$ rm -r dir1 linux@ubuntu:~/work$ ls jeffy-vim-sl-v6.0 jeffy-vim-sl-v6.0.tar.xz

mkdir:创建目录。mkdir -p :可创建子目录。rm -r:删除目录。rm -rf:强制删除不提示错误信息。

linux@ubuntu:~/work$ pwd /home/linux/work linux@ubuntu:~/work$ man 您需要什么手册页? 例如,尝试使用“man man”。 linux@ubuntu:~/work$ man man

pwd:显示当前路径。man:在线接口手册,可以产看相关信息。

2.vim编辑器

linux@ubuntu:~/work$ cd .. linux@ubuntu:~$ sudo apt install vim [sudo] linux 的密码: 正在读取软件包列表... 完成 正在分析软件包的依赖关系树... 完成 正在读取状态信息... 完成 vim 已经是最新版 (2:8.2.3995-1ubuntu2.24)。 升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 9 个软件包未被升级。 linux@ubuntu:~$ cd work linux@ubuntu:~/work$ vi hello.c

sudo apt install vim:通过包管理器下载vim编辑器,我这里已经下载好了。vi:以vim编辑器打开文件,没有文件创建。

vi的三种工作模式:视图模式:打开文件后的默认模式只能查看不能修改,编辑模式:编辑文本,命令模式:在下方输入操作命令。模式切换快捷键:i:视图进入编辑,esc:编辑进入视图,:冒号:视图进入命令。esc:命令进入视图。命令模式中的输入命令:q:不保存退出,w:保存,wq:保存退出,q!:强制退出,x:保存退出,X:文件加密,只有输入密码后才能进入文件。

视图下的快捷键:上下左右键光标移动。o:重启一行进入编辑模式,a:光标移动到后一个进入编辑模式。s:删除一个字符进入编辑模式。x:删除字符不进入编辑模式。yy:复制一行。nyy:复制n行。y:复制选中内容。d:剪切选中的内容。dd:剪切一行。ndd:剪切n行。p:粘贴粘贴板上的内容。u:撤销。crtl+r:恢复。ggvGG:全选。=:对齐。/:查找指定内容。

linux@ubuntu:~/work$ vi hello.c linux@ubuntu:~/work$ gcc hello.c linux@ubuntu:~/work$ ls a.out hello.c jeffy-vim-sl-v6.0 jeffy-vim-sl-v6.0.tar.xz linux@ubuntu:~/work$ ./a.out hello worldlinux@ubuntu:~/work$

gcc:使用gcc编译器编译指定文件。

3.环境变量

环境变量指的是程序运行的需要的运行环境,该环境可以由多个环境变量组成。环境变量按生效范围分可以分为系统环境变量:公共的,整个系统生效。用户环境变量:用户的,用户生效。按周期分为永久环境变量,在环境变量脚本中配置,每次登录都会执行相当于永久。临时环境变量:在shell中定义的,退出shell后失效。

linux@ubuntu:~$ env SHELL=/bin/bash SESSION_MANAGER=local/ubuntu:@/tmp/.ICE-unix/1324,unix/ubuntu:/tmp/.ICE-unix/1324 QT_ACCESSIBILITY=1 COLORTERM=truecolor XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg SSH_AGENT_LAUNCHER=gnome-keyring ... linux@ubuntu:~$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin

env:显示所有环境变量。echo:显示指定的环境变量,环境变量前的符号不能省略。

linux@ubuntu:~$ NUM=200 linux@ubuntu:~$ echo $NUM 200

上面的命令就是创建一个环境变量,当设置环境变量时有空格等特殊字符要加上单引号。

4.软件包管理

对于软件包管理主要时软件的安装下载和删除,我们继续看命令。

linux@ubuntu:~$ sudo apt install sl [sudo] linux 的密码: 正在读取软件包列表... 完成 正在分析软件包的依赖关系树... 完成 正在读取状态信息... 完成 下列【新】软件包将被安装: sl 升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 9 个软件包未被升级。 需要下载 12.7 kB 的归档。 解压缩后会消耗 60.4 kB 的额外空间。 获取:1 http://mirrors.huaweicloud.com/repository/ubuntu jammy/universe amd64 sl amd64 5.02-1 [12.7 kB] 已下载 12.7 kB,耗时 0秒 (30.8 kB/s) 正在选中未选择的软件包 sl。 (正在读取数据库 ... 系统当前共安装有 224084 个文件和目录。) 准备解压 .../archives/sl_5.02-1_amd64.deb ... 正在解压 sl (5.02-1) ... 正在设置 sl (5.02-1) ... 正在处理用于 man-db (2.10.2-1) 的触发器 ... linux@ubuntu:~$ sudo apt remove sl 正在读取软件包列表... 完成 正在分析软件包的依赖关系树... 完成 正在读取状态信息... 完成 下列软件包将被【卸载】: sl 升级了 0 个软件包,新安装了 0 个软件包,要卸载 1 个软件包,有 9 个软件包未被升级。 解压缩后将会空出 60.4 kB 的空间。 您希望继续执行吗? [Y/n] y (正在读取数据库 ... 系统当前共安装有 224107 个文件和目录。) 正在卸载 sl (5.02-1) ... 正在处理用于 man-db (2.10.2-1) 的触发器 ... linux@ubuntu:~$ sudo apt policy gcc gcc: 已安装:4:11.2.0-1ubuntu1 候选: 4:11.2.0-1ubuntu1 版本列表: *** 4:11.2.0-1ubuntu1 500 500 http://mirrors.huaweicloud.com/repository/ubuntu jammy/main amd64 Packages 100 /var/lib/dpkg/status linux@ubuntu:~$ sudo apt list gcc 正在列表... 完成 gcc/jammy,now 4:11.2.0-1ubuntu1 amd64 [已安装] gcc/jammy 4:11.2.0-1ubuntu1 i38 linux@ubuntu:~$ sudo apt purge sl 正在读取软件包列表... 完成 正在分析软件包的依赖关系树... 完成 正在读取状态信息... 完成 软件包 sl 未安装,所以不会被卸载 升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 9 个软件包未被升级。 linux@ubuntu:~$ sudo apt search sl linux@ubuntu:~$ sudo apt update 命中:1 http://mirrors.huaweicloud.com/repository/ubuntu jammy InRelease 获取:2 http://mirrors.huaweicloud.com/repository/ubuntu jammy-updates InRelease [128 kB] 获取:3 http://mirrors.huaweicloud.com/repository/ubuntu jammy-backports InRelease [127 kB] 获取:4 http://mirrors.huaweicloud.com/repository/ubuntu jammy-security InRelease [129 kB] linux@ubuntu:~$ sudo apt autoclean 正在读取软件包列表... 完成 正在分析软件包的依赖关系树... 完成 正在读取状态信息... 完成 linux@ubuntu:~$ sudo apt show gcc Package: gcc Version: 4:11.2.0-1ubuntu1 Priority: optional Build-Essential: yes Section: devel Source: gcc-defaults (1.193ubuntu1)

sudo apt install : 安装软件。sudo apt remove:删除软件。sudo apt policy:查看软件安装信息。sudo apt list :列出软件包清单。sudo apt purge:删除软件和配置文件。sudo apt search:搜索软件。sudo apt update:从服务器更新软件到系统,让系统于服务器的软件信息保持一致。sudo apt upgrade:更新系统。sudo apt autoclean:自动删除旧的安装包。sudo apt clean:删除所有安装包。sudo apt show:查看指定软件包的详细信息。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 13:32:18

实习面试题-PHP 面试题

1.在 PHP 中,如何实现批量操作数据库记录? 回答重点 在 PHP 中实现批量操作数据库记录,常常通过以下几种方式: 1)批量插入:可以使用多值插入(Multiple Values Insert)的方法,通过一个 SQL 语句插入多条记录。 2)批量更新:可以使用批量更新(Bulk Update)的方法,…

作者头像 李华
网站建设 2026/4/16 10:15:59

深入理解 IndexedDB:在浏览器中存储 PB 级数据的事务性 API 实战

各位同仁、技术爱好者们&#xff0c;大家好&#xff01; 今天&#xff0c;我们将深入探讨一个在现代Web开发中至关重要的API——IndexedDB。随着Web应用复杂性的日益增加&#xff0c;以及对离线工作能力、高性能数据处理的需求不断提升&#xff0c;浏览器内置的存储机制面临着…

作者头像 李华
网站建设 2026/4/16 10:13:44

大数据领域体系认知

目录 大数据时代 大数据时代背景 大数据概念 大数据发展史 大数据的应用 国家大数据发展战略 大数据与其他前沿技术 大数据基础知识 大数据处理全流程 大数据时代 大数据时代的来临并非偶然。 大数据时代背景 ①数据产生方式推动了大数据时代的来临&#xff1a; 运…

作者头像 李华
网站建设 2026/4/16 10:13:41

储能系统双向 DCDC 变换器双闭环控制:解锁蓄电池充放电仿真的奥秘

储能系统双向DCDC变换器双闭环控制 蓄电池充放电仿真模型有buck模式和boost模式&#xff0c;依靠蓄电池充放电维持直流母线电压平衡在储能系统这个充满魅力的领域&#xff0c;双向 DCDC 变换器的双闭环控制犹如一颗璀璨的明珠&#xff0c;它对蓄电池充放电的精准把控&#xff0…

作者头像 李华
网站建设 2026/4/15 17:55:02

1、深入了解 UNIX 操作系统:特性、历史与哲学

深入了解 UNIX 操作系统:特性、历史与哲学 1. UNIX 简介 UNIX 曾经是专家和高手的领域,如今已广泛应用于全球企业和小型互联网服务器。它能轻松适应不同规模的安装和复杂的企业网络,这也是其广受欢迎的原因之一。 UNIX 是一个基于简单而强大元素构建的丰富复杂系统。尽管…

作者头像 李华