干货|值得收藏的50个常用Linux命令
2022-7-18 08:3:14 Author: 网络安全自修室(查看原文) 阅读量:17 收藏

第一章 Linux基础命令

【1】linux-》ls

释义:list,列出目录中文件的信息 常见用法:

ls ==> 列出当前目录的文件名 ls -l ==> 列出文件详情(含隐藏文件) ls -a ==> 列出文件名(含隐藏文件) ls -la ==> 列出文件详情(含隐藏文件) ls /etc ==> 列出指定目录 /etc 的文件名

【2】linux-》alias

释义:给一个命令取一个别名 常见用法:

alias l=‘ls -l’ ==> 给ls -l取个别名叫l

注意:在上述设置别名的语句中,等号两边不能有空格

【3】linux-》cd

释义:change director,切换当前路径 常见用法:

cd /etc ==> 切换到 /etc cd ==> 切换到家目录 cd - ==> 切换到刚刚去过的地方 cd … ==> 切换到上一级目录 cd …/… ==> 切换到上上级目录

【4】linux-》clear

释义:清屏 常见用法:

clear

【5】linux-》date

释义:设置或查看日期时间 常见用法:

date ==> 查看当前日期时间 date -s “2020/12/12” ==> 设置日期

【6】linux-》dpkg

释义:手工安装 deb 软件包 常见用法:

dpkg -i x.deb ==> 安装x.deb软件包

注意:Ubuntu是Debian系统的扩展和继承,因此Ubuntu中的软件安装包的格式为deb。

注意:一般而言,在Ubuntu中很少需要手工安装deb包。因为APT软件管理器会自动下载并安装所需的软件,并会自动处理所有依赖的文件。dpkg只用在一些特定的场合,比如非APT自动下载的安装包的安装、APT自动安装失败等。

【7】linux-》echo

释义:回显,即将字符打印到屏幕上 常见用法:

1. echo abcd   ==> 输出字符串"abcd"
2. echo $PATH ==> 输出环境变量PATH的值

【8】linux-》man手册

释义:manual,帮助手册 常见用法:

man ls ==> 查阅关于 ls 的帮助信息 man -f read ==> 列出所有有关 read 的帮助手册 man 2 read ==> 查阅第2册中 read 的帮助信息

注意: man手册总共有9册,Ubuntu默认只安装了1册,其余的需要手工安装,指令如下:

sudo apt install manpages
sudo apt install manpages-dev
sudo apt install manpages-posix
sudo apt install manpages-posix-dev

【9】linux-》pwd

释义:present work directory,显示当前工作路径 常见用法:

[email protected]:~$ pwd  ==> 显示当前路径,简单易用,童叟无欺

【10】linux-》sort

释义:对文件内容按行排序并输出 常见用法:

[email protected]:~$ sort file.txt ==> 按默认ASCII码升序排列
[email protected]:~$ sort file.txt -r ==> 按ASCII码降序排列
[email protected]:~$ sort file.txt -n ==> 按数值升序排列
[email protected]:~$ sort file.txt -nr ==> 按数值降序排列

【11】linux-》uniq

释义:unique,去除文件中重复的相邻的行 常见用法:

[email protected]:~$ uniq file.txt

【12】linux-》which

释义:查看命令所在路径 常见用法:

1. 查看默认命令 ls 所在路径
[email protected]:~$ which ls

2. 查看命令 qmake 的所有可能路径
[email protected]:~$ which -a qmake

【13】linux-》管道 |

概念:在shell命令中,可以使用一种特殊的符号来连接两个不同的命令,使得前面命令的输出,变成后面命令的输入或参数,这种特殊的符号叫做管道。

用法

将前面命令的输出,成为后面命令的输入:cmd1 | cmd2
将前面命令的输出,成为后面命令的参数:cmd1 |xargs cmd2

举例:

1. 将当前目录下的文件,按反序列出:
[email protected]:~$ ls | sort -r

2. 将当前文件下的文件,逐个删除掉:
[email protected]:~$ ls |xargs rm

注意

以上两个命令:sort和uniq,是典型的过滤器,它们就像一个安装在水管中间的过滤装置,将文件的数据一行一行地读出,并按照一定的规则过滤,然后输出过滤的结果。

鉴于以上理解,可以将多个过滤器用管道连接起来,使之拥有更强大的功能,比如:

[email protected]:~$ sort file.txt | uniq

这样出来的数据,就既进行了排序,又进行了去重。

第二章 Linux文件管理命令

【14】linux-》cat

释义:显示文本文件的内容 常见用法:

[email protected]:~$ cat file.txt ==> 显示文本文件内容
[email protected]:~$ cat -n a.c ==> 显示文本文件内容(并显示行号)
[email protected]:~$ cat -A a.c ==> 显示文本文件内容(含不可见字符)

注意

在某些情况下,我们可能需要检测文件中那些不可见的字符。比如在Windows系统中编辑了程序源文件,放到Ubuntu系统中编译可能会出现字符错误,这是因为Windows系统中的某些回车符、制表符跟Ubuntu系统的不一致,导致无法编译,而这些字符是不可见的,因此可以使用上述 cat -A 来识别。

【15】linux-》head/tail

释义:查看指定文件的头部/尾部内容 常见用法:

[email protected]:~$ head file.txt
[email protected]:~$ head -n file.txt
[email protected]:~$ tail file.txt
[email protected]:~$ tail -n file.txt

【16】linux-》 less/more

释义:以分页方式查看长文件 常见用法:

[email protected]:~$ less file.txt
[email protected]:~$ more file.txt

【17】linux-》 od

释义:查看二进制文件 常见用法:

[email protected]:~$ od -x file  ==> 以十六进制查看file
[email protected]:~$ od -o file ==> 以八进制查看file
[email protected]:~$ od -d file ==> 以十进制查看file
[email protected]:~$ od -b file ==> 以二进制查看file

【18】linux-》cp

释义:copy,复制文件或者复制整个目录 常见用法:

[email protected]:~$ cp file1 file2    ==> 将文件file1复制为file2
[email protected]:~$ cp dir1/ dir2/ -r ==> 将目录dir1/复制为dir2/

注意

如果file2或者dir2已存在,那么它们将会被覆盖 目录名称 dir1/ 和 dir2/ 末尾的"/"是可选的,可写可不写,写上去只是为了强调 dir1 和 dir2 是目录,别无他意

【19】linux-》scp

释义:security copy,跨网络复制文件或者复制整个目录 常见用法:

## 将远程主机x.x.x.x中的文件a.txt复制到当前目录下
[email protected]:~$ scp [email protected]:/home/gec/a.txt .

注意

user是源文件所在主机的用户名。 x.x.x.x是源文件所在主机的IP地址。 成功执行上述命令后,需要输入主机x.x.x.x中用户user的密码方可复制文件。

【20】linux-》 touch

释义: 在文件存在的情况下:将文件最近修改时间更新为当前时间 在文件不存在的情况下:创建一个空文件 常见用法:

#假设文件a.txt已存在
[email protected]:~$ touch a.txt ==> 更新a.txt的最近修改时间到当前时间

#假设文件b.txt不存在
[email protected]:~$ touch b.txt ==> 创建b.txt

【21】linux-》mkdir/rmdir

释义:make/remove directory,创建/删除空目录 常见用法:

[email protected]:~$ mkdir a      ==> 创建空目录a
[email protected]:~$ mkdir b/c -p ==> 创建嵌套空目录b/c
[email protected]:~$ rmdir a ==> 删除空目录a

注意: 如果目录不为空,则不能用rmdir删除,而只能用rm,比如上述的目录b,由于b中有c,因此b不是空目录,此时只能这么删除:

[email protected]:~$ rm -r b

【22】linux-》 rm

释义:remove,删除文件或目录 常见用法:

[email protected]:~$ rm file
[email protected]:~$ rm -r dir/

【23】linux-》 find

释义:在指定目录中,按指定条件寻找文件 常见用法: [email protected]:~

find /tmp -type s ==> 在/tmp中查找类型为套接字的文件

【24】linux-》grep

释义:在指定文件或目录中,按指定条件寻找字符串 常见用法:

[email protected]:~$ grep 'apple' /usr -rn ==> 在/usr中查找包含apple的文件

【25】linux-》diff

释义:difference,检测两个文件或目录的差异信息 常见用法:

[email protected]:~$ diff file1 file2      ==> 检测文件file1和file2的差异信息
[email protected]:~$ diff dir1/ dir2/ -urN ==> 检测目录dir1/和dir2/的差异信息

【26】linux-》file

释义:检测指定文件的格式信息 常见用法:

[email protected]:~$ file a.tar.bz2 ==> 检测文件a.tar.bz2的格式
[email protected]:~$ file a.out ==> 检测文件a.out的格式

【27】linux-》mv

释义:move,移动文件,或给文件重命名 常见用法:

[email protected]:~$ mv file dir/
[email protected]:~$ mv file1 file2

【28】linux-》 wc

释义:计算字符数、单词数和行数 常见用法:

[email protected]:~$ wc          ==> 计算从键盘输入的数据,以ctrl+d结束
[email protected]:~$ wc file.txt ==> 计算文件file.txt的数据

chmod只能针对Linux文件系统有效,对共享文件夹是无效的,因为共享文件夹不属于 Linux 系统,他是属于 windows 系统。

第三章 Linux压缩与解压命令

Linux下最常用的压缩包格式是: gz bz2 zip xz 其中,gz和bz2格式一般都是通过tar命令来控制的,xz和zip格式各自由它们的同名命令控制。

【29】linux-》tar

释义:归档、释放与压缩、解压 常见用法:

第一,归档与释放:
[email protected]:~$ tar cf a.tar dir/* ==> 将目录dir中的所有文件归档成a.tar
[email protected]:~$ tar tf a.tar ==> 查看归档文件a.tar
[email protected]:~$ tar xf a.tar ==> 释放归档文件a.tar
第二,压缩与解压:
[email protected]:~$ tar czf a.tar.gz dir/* ==> 将目录dir中的所有文件归档并压缩为gz格式
[email protected]:~$ tar tf a.tar.gz ==> 查看压缩文件a.tar.gz
[email protected]:~$ tar xzf a.tar.gz ==> 解压压缩文件a.tar.gz
[email protected]:~$ tar cjf a.tar.bz2 dir/*  ==> 将目录dir中的所有文件归档并压缩为bz2格式
[email protected]:~$ tar tf a.tar.bz2 ==> 查看压缩文件a.tar.bz2
[email protected]:~$ tar xjf a.tar.bz2 ==> 解压压缩文件a.tar.bz2
第三,指定路径:
[email protected]:~$ tar -xf a.tar -C /tmp ==> 将文件释放到/tmp
[email protected]:~$ tar -xzf a.tar.gz -C /tmp ==> 将文件解压到/tmp

注意:归档只是简单的将文件归拢到一起,不涉及压缩算法,文件不会变小压缩会用到压缩算法,文件总体会变小。

【30】linux-》xz

释义:压缩与解压 常见用法:

[email protected]:~$ xz a.tar                 ==> 将文件a.tar压缩成a.tar.xz
[email protected]:~$ xz --decompress a.tar.xz ==> 解压a.tar.xz

注意

xz只能压缩单个文件,因此xz一般与tar配合使用,即:先用tar将要压缩的若干文件或目录归档成一个tar包,然后用xz将tar包压缩成xz格式压缩包[双层压缩]。

【31】linux-》zip

zip不是系统自带的命令,一般需要自己手工安装:

[email protected]:~$ sudo apt install zip

释义:压缩与解压 常见用法:

[email protected]:~$ zip a.zip file dir/  ==> 将指定的文件和目录压缩成a.zip
[email protected]:~$ unzip a.zip ==> 解压a.zip

第四章 Linux权限管理命令

【32】linux-》chmod

释义:修改文件权限 常见用法:

[email protected]:~$ chmod 644 file ==> 将文件权限改为644
[email protected]:~$ chmod 755 dir/ ==> 将目录权限改为755

在Linux中,文件的权限一般用rwx来表示

r 代表read,可读 w 代表write,可写 x 代表excute,可执行

对于某个文件而言,系统中的所有用户被分成三类,它们是文件的所有者,文件的所属组成员和其他人。这三类用户对这个文件的rwx权限,可以由命令 ls -l 来查看:

[email protected]:~$ ls -l
-rw-rw-r-- 1 gec gec 127 Oct 30 14:41 a.c
-rwxrwxr-x 1 gec gec 8768 Oct 30 14:41 a.out

在上述列子中,rwx三组权限对应了三种用户。当我们需要修改这些权限的时候,为了便于描述,一般用三个八进制数来对应这些权限为,如下表所示:

如此,权限 644 就代表了 rw-r–r–,权限 755 就代表了 rwxr-xr-x。

【33】linux-》chown

释义:change owner,修改文件的所有者 常见用法:

[email protected]:~$ sudo chown jack a.txt ==> 将文件a.txt的所有者修改为jack

注意

修改文件所有者信息,须以管理员身份才能执行,因此在命令的前面要加sudo,并在随后执行是要输入管理员密码。另外要注意,输入管理员密码时系统默认是不回显的。

【34】linux-》chgrp

释义:change group,修改文件的所属组 常见用法:

[email protected]:~$ sudo chgrp gec a.txt ==> 将文件a.txt的所属组修改为gec

第五章 Linux用户管理命令

【35】linux-》adduser/deluser

释义:添加/删除系统用户 常见用法:

[email protected]:~$ sudo adduser jack ==> 添加用户jack
[email protected]:~$ sudo deluser jack ==> 删除用户jack

提醒

[email protected]:~

删除用户后,默认会残留用户的家目录,如果想要连带家目录也一锅端,可以使用这个命令:
sudo deluser --remove -home jack

【36】linux-》addgroup/delgroup

释义:添加/删除系统用户组 常见用法:

[email protected]:~$ sudo addgroup gec ==> 添加用户组gec
[email protected]:~$ sudo delgroup gec ==> 删除用户组gec

提醒

系统所有的用户组清单统一放在 /etc/group 中

【37】linux-》whoami/id

释义:查看当前用户/相关ID 常见用法:

[email protected]:~$ whoami ==> 显示当前用户名
[email protected]:~$ id ==> 显示与当前用户相关的ID信息

【38】linux-》usermod

释义:修改用户相关信息 常见用法:

[email protected]:~$ usermod jack -a -G gec ==> 将jack添加入用户组gec中

第六章 Linux进程管理命令

【39】linux-》ps

释义:process state,获取进程当前状态 常见用法:

[email protected]:~$ ps -ef
[email protected]:~$ ps aux

【40】linux-》top

释义:持续跟踪进程状态 常见用法:

[email protected]:~$ top
[email protected]:~$ top -p PID

注意: top可以通过ctrl+左右箭头翻页

【41】linux-》kill

释义:向指定进程发送信号 常见用法:

[email protected]:~$ kill -l            ==> 查看系统所支持的所有的信号列表
[email protected]:~$ kill -s SIGXXX PID ==> 向进程PID发送信号SIGXXX
[email protected]:~$ kill -n PID ==> 向进程PID发送第n号信号

第七章 Linux系统管理命令

【42】linux-》df

释义:查看系统分区信息 常见用法:

[email protected]:~$ df -h
文件系统总大小已用剩余使用率%挂载点
udev916M0916M0%/dev
tmpfs188M11M178M6%/run
/dev/vda150G6.8G40G15%/
tmpfs916M0916M0%/dev/shm
tmpfs916M0916M0%/run/lock
tmpfs916M0916M0%/sys/fs/cgroup
cgmfs916M0916M0%/run/cgmanager/fs
tmpfs916M0916M0%/run/user/500

【43】linux-》du

释义:查看系统分区信息 常见用法:

[email protected]:~$ du
[email protected]:~$ du -sh

【44】linux-》fdisk

释义:查看/设置硬盘分区 常见用法:

[email protected]:~$ sudo fdisk -l  ==> 查看当前系统已识别的分区。

提醒: df只能查看已经识别且挂载了的分区,而fdisk可以查看未挂载的分区 实际上,在系统识别出了分区之后,一般需要使用fdisk来查看分区的名称,然后才能使用mount来挂载,然后才能使用df查看到。

【45】linux-》mount / umount

释义:挂载/卸载分区 常见用法:挂载分区:[email protected]:~$ mount /dev/sdb /mnt/u ==> 将分区sdb挂载到/mnt/u

卸载分区:[email protected]:~

umount /mnt/u ==> 将挂载点/mnt/u卸载

提醒: 卸载分区名,或卸载挂载点两种方式是等价的。

第八章 Linux网络命令

【46】linux-》hostname

释义:查看系统主机名 常见用法:

[email protected]:~$ hostname
ubuntu
[email protected]:~$

【47】linux-》ifconfig

释义:查看/设置系统IP地址 常见用法:

## 查看当前活跃的网络接口
[email protected]:~$ ifconfig

## 查看所有的网络接口
[email protected]:~$ ifconfig -a

## 设置指定的网络接口的IP地址
[email protected]:~$ ifconfig ens33 192.168.1.100

使用ifconfig设置的IP是临时的,如要使得设置效果永久有效,则需要修改系统的 /etc/networking/interfaces 文件,将IP地址设置进去。例如: [email protected]:~$ cat /etc/network/interfaces

auto lo  
iface lo inet loopback

auto ens33
iface ens33 inet static //静态固定,永久有效
address 192.168.1.100 //ip地址
netmask 255.255.255.0 //子网掩码
gateway 192.168.1.1 //默认网关

【48】linux-》ifup / ifdown

释义:启停指定网络接口卡 常见用法:

[email protected]:~$ sudo ifdown ens33  ==> 禁用网络接口卡ens33
[email protected]:~$ sudo ifup ens33 ==> 启用网络接口卡ens33

【49】linux-》ping

释义:向指定主机发送要求回应的ICMP数据包 常见用法:

[email protected]:~$ ping 192.168.1.200 
[email protected]:~$ ping www.qq.com

提醒: 一般而言,如果网络是畅通的,那么ping命令将会看到数据包返回的延迟时间,否则如果看不到延迟时间,那么网络就是不通的。

【50】linux-》scp

释义:在网络主机间拷贝文件 常见用法:

将文件从远程主机拷贝到本地:
[email protected]:~$ scp [email protected]:/home/ubuntu/a.txt a.txt

将文件从本地拷贝到远程主机:
[email protected]:~$ scp a.txt [email protected]:/home/ubuntu/a.txt

第九章 Linux 命令举例

【51】U盘挂载到Ubuntu系统

【1】使用相关的命令,将一个U盘正确挂载到Ubuntu系统中。 注意: 挂载点绝对不能是系统关键目录,否则会导致系统崩溃 如果插入的U盘未被虚拟机识别,则有可能被宿主机优先捕获了,可通过连接虚拟机的可移动设备来连接:

解析 要成功将U盘挂载到Ubuntu需要以下几步:

将设备连接到Ubuntu
使用sudo fdisk -l 查看设备名称
使用df查看设备是否已被自动挂载,若是则流程结束
使用mount将以识别的分区挂载到某个空目录下

答案举例

[email protected]:~$ sudo fdisk -l
[email protected]:~$ sudo mount /dev/sdb /mnt

【52】Ubuntu网络配置、APT、vim

【2】在Ubuntu系统中通过 APT 下载并安装 vim,并配置使其支持鼠标动作、显示行号以及智能缩进。

解析主要是配置Ubuntu的网络,根据如下步骤来确保网络通畅:

1.ping www.qq.com,若有返回时间延迟,则网络是通畅的,否则继续下面步骤。
2.确保IP地址处于当前局域网的网段。
3.确保Ubuntu默认网关是当前局域网网关。
4.确保设置了正确的DNS服务器
5.确保更新了APT软件列表

答案

[email protected]:~$ ping www.qq.com
[email protected]:~$ sudo ifconfig ens33 x.x.x.x
[email protected]:~$ sudo route add default gw x.x.x.x
[email protected]:~$ sudo vi /etc/init.d/resolv.conf
[email protected]:~$ sudo apt update

【53】压缩与解压缩

【1】从网上下载最新Linux内核压缩包,并将其解压到Ubuntu家目录下。 解析: 一般而言,内核源码都以压缩包方式发布,一般会采用gz、bz2和xz格式压缩,其解压命令如下:

[email protected]: ~$ tar xjvf linux-kernel.tar.bz2
[email protected]: ~$ tar xzvf linux-kernel.tar.gz
[email protected]: ~$ xz --decompress linux-kernel.tar.xz
[email protected]: ~$ tar xvf linux-kernel.tar

【54】用户权限管理

【2】新建一个Ubuntu系统用户,并使其可以使用sudo命令。 解析: 在Linux中,新创建的用户默认未加入管理员组,即未加入sudo用户组,因此新用户即便知道管理员密码也是无法使用管理员权限的,例如:

## 新建用户jack 
[email protected]:~$ sudo adduser jack
## 切换到用户jack
[email protected]:~$ su jack
 ## 尝试使用sudo命令失败
[email protected]:~$ sudo ifconfig -a [sudo]
password for jack:
jack is not in the sudoers file. This incident will be
reported. [email protected]:~$

因此,要让一个用户可以使用sudo命令行使管理员权限,必须使其加入管理员用户组,可以用如下命令达成:

[email protected]:~$ sudo usermod jack -a -G sudo

【55】交叉编译、串口终端

【1】将开发板正确连接上主机,并在在secureCRT中输出自己的姓名。

解析 考察对开发板开发环境搭建的熟悉程度。

 答案 :

连接开发板的串口线、电源线、网线。
启动secureCRT,并连接到正确的串口。
编写一个简单的输出姓名的C语言程序,并在Ubuntu中交叉编译。
将编译好的程序,通过串口rx命令传输到开发板,并运行验证。

【56】tftp的使用

【2】使用tftp服务,将文件从主机快速传输到开发板。

解析 本题考查对开发板的网络配置问题,和tftp命令的掌握。

答案 

- 通过ifconfig命令将开发板的IP地址设置为与主机相同的网段,假设为 192.168.1.100
- 在主机启动 tftpd32.exe 程序,并设置相应的文件目录,假设待传输文件名为 file
- 在串口终端中敲入 tftp 192.168.1.100
- gr file //发送到开发板
- 在串口终端中敲入 tftp 192.168.1.100 -pr file //开发板发送到电脑


文章来源: http://mp.weixin.qq.com/s?__biz=MzI0NDYxMzk1Mg==&mid=2247495416&idx=1&sn=fac5b12b18c8a8c776dcc88fa0c82464&chksm=e959b8d7de2e31c18b957cc73a0d3a3637c937914df027b8ae044a168d9e0490ea6856e982b7#rd
如有侵权请联系:admin#unsafe.sh