乐趣区

关于程序员:干货值得收藏的50个常用Linux命令

第一章 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,显示当前工作门路
常见用法:

gec@ubuntu:~$ pwd  ==> 显示以后门路,简略易用,童叟无欺

【10】linux-》sort

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

gec@ubuntu:~$ sort file.txt ==> 按默认 ASCII 码升序排列
gec@ubuntu:~$ sort file.txt -r ==> 按 ASCII 码降序排列
gec@ubuntu:~$ sort file.txt -n ==> 按数值升序排列
gec@ubuntu:~$ sort file.txt -nr ==> 按数值降序排列

【11】linux-》uniq

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

gec@ubuntu:~$ uniq file.txt

【12】linux-》which

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

1. 查看默认命令 ls 所在门路
gec@ubuntu:~$ which ls

2. 查看命令 qmake 的所有可能门路
gec@ubuntu:~$ which -a qmake

【13】linux-》管道 |

概念:在 shell 命令中,能够应用一种非凡的符号来连贯两个不同的命令,使得后面命令的输入,变成前面命令的输出或参数,这种非凡的符号叫做管道。

用法

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

举例:

1. 将当前目录下的文件,按反序列出:gec@ubuntu:~$ ls | sort -r

2. 将以后文件下的文件,一一删除掉:gec@ubuntu:~$ ls |xargs rm

留神

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

鉴于以上了解,能够将多个过滤器用管道连接起来,使之领有更弱小的性能,比方:

gec@ubuntu:~$ sort file.txt | uniq

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

第二章 Linux 文件治理命令

【14】linux-》cat

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

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

留神

在某些状况下,咱们可能须要检测文件中那些不可见的字符。比方在 Windows 零碎中编辑了程序源文件,放到 Ubuntu 零碎中编译可能会呈现字符谬误,这是因为 Windows 零碎中的某些回车符、制表符跟 Ubuntu 零碎的不统一,导致无奈编译,而这些字符是不可见的,因而能够应用上述
cat -A 来辨认。

【15】linux-》head/tail

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

gec@ubuntu:~$ head file.txt
gec@ubuntu:~$ head -n file.txt
gec@ubuntu:~$ tail file.txt
gec@ubuntu:~$ tail -n file.txt

【16】linux-》less/more

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

gec@ubuntu:~$ less file.txt
gec@ubuntu:~$ more file.txt

【17】linux-》od

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

gec@ubuntu:~$ od -x file  ==> 以十六进制查看 file
gec@ubuntu:~$ od -o file  ==> 以八进制查看 file
gec@ubuntu:~$ od -d file  ==> 以十进制查看 file
gec@ubuntu:~$ od -b file  ==> 以二进制查看 file

【18】linux-》cp

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

gec@ubuntu:~$ cp file1 file2    ==> 将文件 file1 复制为 file2
gec@ubuntu:~$ cp dir1/ dir2/ -r ==> 将目录 dir1/ 复制为 dir2/

留神

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

【19】linux-》scp

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

## 将近程主机 x.x.x.x 中的文件 a.txt 复制到当前目录下
gec@ubuntu:~$ scp user@x.x.x.x:/home/gec/a.txt .

留神

user 是源文件所在主机的用户名。x.x.x.x 是源文件所在主机的 IP 地址。
胜利执行上述命令后,须要输出主机 x.x.x.x 中用户 user 的明码方可复制文件。

【20】linux-》touch

释义
在文件存在的状况下:将文件最近批改工夫更新为以后工夫
在文件不存在的状况下:创立一个空文件
常见用法:

# 假如文件 a.txt 已存在
gec@ubuntu:~$ touch a.txt ==> 更新 a.txt 的最近批改工夫到以后工夫

#假如文件 b.txt 不存在
gec@ubuntu:~$ touch b.txt ==> 创立 b.txt

【21】linux-》mkdir/rmdir

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

gec@ubuntu:~$ mkdir a      ==> 创立空目录 a
gec@ubuntu:~$ mkdir b/c -p ==> 创立嵌套空目录 b /c
gec@ubuntu:~$ rmdir a      ==> 删除空目录 a

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

gec@ubuntu:~$ rm -r b

【22】linux-》rm

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

gec@ubuntu:~$ rm file
gec@ubuntu:~$ rm -r dir/

【23】linux-》find

释义:在指定目录中,按指定条件寻找文件
常见用法:
gec@ubuntu:~$ find /usr -name“*.h”==> 在 /usr 中查找以.h 结尾的文件
gec@ubuntu:~$ find /tmp -type s ==> 在 /tmp 中查找类型为套接字的文件

【24】linux-》grep

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

gec@ubuntu:~$ grep 'apple' /usr -rn ==> 在 /usr 中查找蕴含 apple 的文件

【25】linux-》diff

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

gec@ubuntu:~$ diff file1 file2      ==> 检测文件 file1 和 file2 的差别信息
gec@ubuntu:~$ diff dir1/ dir2/ -urN ==> 检测目录 dir1/ 和 dir2/ 的差别信息

【26】linux-》file

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

gec@ubuntu:~$ file a.tar.bz2 ==> 检测文件 a.tar.bz2 的格局
gec@ubuntu:~$ file a.out     ==> 检测文件 a.out 的格局

【27】linux-》mv

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

gec@ubuntu:~$ mv file dir/
gec@ubuntu:~$ mv file1 file2

【28】linux-》wc

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

gec@ubuntu:~$ wc          ==> 计算从键盘输入的数据,以 ctrl+ d 完结
gec@ubuntu:~$ wc file.txt ==> 计算文件 file.txt 的数据

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

第三章 Linux 压缩与解压命令

Linux 下最罕用的压缩包格局是:
gz
bz2
zip
xz
其中,gz 和 bz2 格局个别都是通过 tar 命令来管制的,xz 和 zip 格局各自在它们的同名命令管制。

【29】linux-》tar

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

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

留神:归档只是简略的将文件归拢到一起,不波及压缩算法,文件不会变小压缩会用到压缩算法,文件总体会变小。

【30】linux-》xz

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

gec@ubuntu:~$ xz a.tar                 ==> 将文件 a.tar 压缩成 a.tar.xz
gec@ubuntu:~$ xz --decompress a.tar.xz ==> 解压 a.tar.xz

留神

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

【31】linux-》zip

zip 不是零碎自带的命令,个别须要本人手工装置:

gec@ubuntu:~$ sudo apt install zip

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

gec@ubuntu:~$ zip a.zip file dir/  ==> 将指定的文件和目录压缩成 a.zip
gec@ubuntu:~$ unzip a.zip          ==> 解压 a.zip

第四章 Linux 权限治理命令

【32】linux-》chmod

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

gec@ubuntu:~$ chmod 644 file ==> 将文件权限改为 644
gec@ubuntu:~$ chmod 755 dir/ ==> 将目录权限改为 755

在 Linux 中,文件的权限个别用 rwx 来示意

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

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

gec@ubuntu:~$ 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,批改文件的所有者
常见用法:

gec@ubuntu:~$ sudo chown jack a.txt ==> 将文件 a.txt 的所有者批改为 jack

留神

批改文件所有者信息,须以管理员身份能力执行,因而在命令的后面要加 sudo,并在随后执行是要输出管理员明码。另外要留神,输出管理员明码时零碎默认是不回显的。

【34】linux-》chgrp

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

gec@ubuntu:~$ sudo chgrp gec a.txt ==> 将文件 a.txt 的所属组批改为 gec

第五章 Linux 用户治理命令

【35】linux-》adduser/deluser

释义:增加 / 删除零碎用户
常见用法:

gec@ubuntu:~$ sudo adduser jack ==> 增加用户 jack
gec@ubuntu:~$ sudo deluser jack ==> 删除用户 jack

揭示

gec@ubuntu:~$ 零碎所有的用户清单对立放在 /etc/passwd 中
gec@ubuntu:~$ 删除用户后,默认会残留用户的家目录,如果想要连带家目录也一锅端,能够应用这个命令:

sudo deluser --remove -home jack

【36】linux-》addgroup/delgroup

释义:增加 / 删除零碎用户组
常见用法:

gec@ubuntu:~$ sudo addgroup gec ==> 增加用户组 gec
gec@ubuntu:~$ sudo delgroup gec ==> 删除用户组 gec

揭示

零碎所有的用户组清单对立放在 /etc/group 中

【37】linux-》whoami/id

释义:查看以后用户 / 相干 ID
常见用法:

gec@ubuntu:~$ whoami ==> 显示以后用户名
gec@ubuntu:~$ id     ==> 显示与以后用户相干的 ID 信息

【38】linux-》usermod

释义:批改用户相干信息
常见用法:

gec@ubuntu:~$ usermod jack -a -G gec ==> 将 jack 增加入用户组 gec 中

第六章 Linux 过程治理命令

【39】linux-》ps

释义:process state,获取过程以后状态
常见用法:

gec@ubuntu:~$ ps -ef
gec@ubuntu:~$ ps aux

【40】linux-》top

释义:继续跟踪过程状态
常见用法:

gec@ubuntu:~$ top
gec@ubuntu:~$ top -p PID

留神:top 能够通过 ctrl+ 左右箭头翻页

【41】linux-》kill

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

gec@ubuntu:~$ kill -l            ==> 查看零碎所反对的所有的信号列表
gec@ubuntu:~$ kill -s SIGXXX PID ==> 向过程 PID 发送信号 SIGXXX
gec@ubuntu:~$ kill -n PID        ==> 向过程 PID 发送第 n 号信号

第七章 Linux 系统管理命令

【42】linux-》df

释义:查看零碎分区信息
常见用法:

gec@ubuntu:~$ df -h
文件系统 总大小 已用 残余 使用率 % 挂载点
udev 916M 0 916M 0% /dev
tmpfs 188M 11M 178M 6% /run
/dev/vda1 50G 6.8G 40G 15% /
tmpfs 916M 0 916M 0% /dev/shm
tmpfs 916M 0 916M 0% /run/lock
tmpfs 916M 0 916M 0% /sys/fs/cgroup
cgmfs 916M 0 916M 0% /run/cgmanager/fs
tmpfs 916M 0 916M 0% /run/user/500

【43】linux-》du

释义:查看零碎分区信息
常见用法:

gec@ubuntu:~$ du
gec@ubuntu:~$ du -sh

【44】linux-》fdisk

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

gec@ubuntu:~$ sudo fdisk -l  ==> 查看以后零碎已辨认的分区。

揭示:df 只能查看曾经辨认且挂载了的分区,而 fdisk 能够查看未挂载的分区
实际上,在零碎辨认出了分区之后,个别须要应用 fdisk 来查看分区的名称,而后能力应用 mount 来挂载,而后能力应用 df 查看到。

【45】linux-》mount / umount

释义 :挂载 / 卸载分区
常见用法:
挂载分区:
gec@ubuntu:~$ mount /dev/sdb /mnt/u ==> 将分区 sdb 挂载到 /mnt/u

卸载分区:
gec@ubuntu:~$ umount /dev/sdb ==> 将分区 sdb 卸载
gec@ubuntu:~$ umount /mnt/u ==> 将挂载点 /mnt/ u 卸载

揭示:卸载分区名,或卸载挂载点两种形式是等价的。

第八章 Linux 网络命令

【46】linux-》hostname

释义:查看零碎主机名
常见用法:

gec@ubuntu:~$ hostname
ubuntu
gec@ubuntu:~$ 

【47】linux-》ifconfig

释义:查看 / 设置零碎 IP 地址
常见用法:

## 查看以后沉闷的网络接口
gec@ubuntu:~$ ifconfig

## 查看所有的网络接口
gec@ubuntu:~$ ifconfig -a
## 设置指定的网络接口的 IP 地址
gec@ubuntu:~$ ifconfig ens33 192.168.1.100

应用 ifconfig 设置的 IP 是长期的,如要使得设置成果永恒无效,则须要批改零碎的 /etc/networking/interfaces
文件,将 IP 地址设置进去。例如:
gec@ubuntu:~$ 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

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

gec@ubuntu:~$ sudo ifdown ens33  ==> 禁用网络接口卡 ens33
gec@ubuntu:~$ sudo ifup ens33    ==> 启用网络接口卡 ens33

【49】linux-》ping

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

gec@ubuntu:~$ ping 192.168.1.200 
gec@ubuntu:~$ ping www.qq.com

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

【50】linux-》scp

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

将文件从近程主机拷贝到本地:gec@ubuntu:~$ scp ubuntu@134.175.190.226:/home/ubuntu/a.txt  a.txt 

将文件从本地拷贝到近程主机:gec@ubuntu:~$ scp a.txt  ubuntu@134.175.190.226:/home/ubuntu/a.txt

第九章 Linux 命令举例

【51】U 盘挂载到 Ubuntu 零碎

【1】应用相干的命令,将一个 U 盘正确挂载到 Ubuntu 零碎中。留神:挂载点相对不能是零碎要害目录,否则会导致系统解体
如果插入的 U 盘未被虚拟机辨认,则有可能被宿主机优先捕捉了,可通过连贯虚拟机的可挪动设施来连贯:

解析 要胜利将 U 盘挂载到 Ubuntu 须要以下几步:

将设施连贯到 Ubuntu
应用 sudo fdisk -l 查看设施名称
应用 df 查看设施是否已被主动挂载,若是则流程完结
应用 mount 将以辨认的分区挂载到某个空目录下

答案举例

gec@ubuntu:~$ sudo fdisk -l
gec@ubuntu:~$ 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 软件列表

答案

gec@ubuntu:~$ ping www.qq.com
gec@ubuntu:~$ sudo ifconfig ens33 x.x.x.x
gec@ubuntu:~$ sudo route add default gw x.x.x.x
gec@ubuntu:~$ sudo vi /etc/init.d/resolv.conf
gec@ubuntu:~$ sudo apt update

【53】压缩与解压缩

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

gec@ubuntu: ~$ tar xjvf linux-kernel.tar.bz2
gec@ubuntu: ~$ tar xzvf linux-kernel.tar.gz
gec@ubuntu: ~$ xz --decompress linux-kernel.tar.xz
gec@ubuntu: ~$ tar xvf linux-kernel.tar

【54】用户权限治理

【2】新建一个 Ubuntu 零碎用户,并使其能够应用 sudo 命令。
解析:在 Linux 中,新创建的用户默认未退出管理员组,即未退出 sudo 用户组,因而新用户即使晓得管理员明码也是无奈应用管理员权限的,例如:

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

因而,要让一个用户能够应用 sudo 命令行使管理员权限,必须使其退出管理员用户组,能够用如下命令达成:

gec@ubuntu:~$ 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 // 开发板发送到电脑 

本文由 mdnice 多平台公布

退出移动版