Linux常用命令知识点总结

  • Linux常用命令知识点总结已关闭评论
  • 81 次浏览
  • A+
所属分类:linux技术
摘要

file命令,该命令用于查看Linux系统中文件的类型,包括但不限于文本文件、目录、二进制文件、符号链接等。


目录

目录

基础指令

Linux命令基本格式

gec@ubuntu:~$ 命令   [选项]   [参数]   

文件操作

文件格式

file命令,该命令用于查看Linux系统中文件的类型,包括但不限于文本文件、目录、二进制文件、符号链接等。

file [选项] 文件名

file code.tar.bz2 #查看code.tar.bz2 的文件类型 

文件权限

chmod命令,是英文单词change module的缩写,利用该命令可以修改Linux系统的文件权限

chmod   权限   文件 

系统中的所有用户被分成三类:文件所有者(现登录用户),同组用户和其他用户。这三类用户对这个文件的rwx权限,可以由命令 ls -l 来查看。

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

Linux常用命令知识点总结

Linux常用命令知识点总结

创建文件

touch 文件不存在时创建空文件 , 文件存在时将已存在的文件或目录的时间标签更新为当前系统时间

touch  文件名            //可以一次性创建多个不同类型的文件 

查看文件

cat命令,是英文concatenate的缩写,该命令是 Linux操作系统中最常用的命令之一。cat 命令允许创建单个或多个文件、查看文件内容、连接文件和重定向终端或文件中的输出,常用于查看文件内容。

cat file.txt #显示文本文件内容 cat -n a.c  #显示文本文件内容(并显示行号) cat -A a.c   #显示文本文件内容(含不可见字符) 		  #注意:在某些情况下,我们可能需要检测文件中那些不可见的字符。比如在Windows系统中编辑了程序源文件,放到Ubuntu系统中编译可能会出现字符错误,这是因为Windows系统中的某些回车符、制表符跟Ubuntu系统的不一致,导致无法编译,而这些字符是不可见的,因此可以使用上述 cat -A 来识别。 

删除文件

rm 永久性地删除文件系统中指定的文件或目录。在使用 rm 命令删除文件或目录时,系统不会产生任何提示信息

rm   [选项]  文件或目录 	-f:强制删除(force),和 -i 选项相反,使用 -f,系统将不再询问,而是直接删除目标文件或目录。 	-i:和 -f 正好相反,在删除文件或目录之前,系统会给出提示信息,使用 -i 可以有效防止不小心删除有用的文件或目录。 	-r:递归删除,主要用于删除目录,可删除指定目录及包含的所有内容,包括所有的子目录和文件。 

移动文件

mv 命令,是英文move的缩写,该命令有两种作用:既可以在不同的目录之间移动文件或目录,也可以对文件和目录进行重命名。

mv  [选项]   源文件   目标文件/目录路径 	-f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖 	-i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项) 	-n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户 

复制文件

cp命令,是英文copy的缩写,主要用来复制文件和目录,同时借助某些选项,还可以实现复制整个目录,以及比对两文件的新旧而予以升级等功能。

cp  [选项]  源文件(被复制文件)  目标路径 	-i:询问,如果目标文件已经存在,则会询问是否覆盖 	-r:递归复制,用于复制目录 	-u:若目标文件和源文件有差异,则可以更新目标文件,可用于对文件的升级和备用 

编辑文件

gedit命令,可以以记事本的风格打开一个文件,gedit图形化编辑器跟Windows下记事本的用法基本一致。

gedit  文件名 

查找文件

find命令,该命令用于查找Linux系统中某个指定的路径下文件的位置,并且可以把文件的绝对路径输出到终端。注意:如果打算查找根目录下的文件,则应该使用sudo获取root权限。

find 路径 [选项] 文件名

find /usr -name  "xxx.h" #在/usr中查找所有以.h结尾的文件  find /tmp -type d       # 在/tmp中查找类型为目录的文件 find / -name passwd #找出档名为 passwd 这个文件 

查找命令路径

which命令,在Linux系统中该命令用于定位和查找系统中可执行文件的路径。它主要用于确定某个命令是否存在以及该命令的完整路径。

which [选项] 命令名

which ls #查找ls命令的路径 

vim文本编辑器

因为中文编码有 big5 与utf8 两种,如果你的文件是使用big5 编码制作的,但在vim 的终端接口中你使用的是万国码(utf8), 由于编码的不同,你的中文文件内容当然就是一堆乱码了!

【1】安装并部署好 vsCode 编程环境,并安装 vim 插件,试试使用 vi 模式编写代码。

直接在 vsCode 中的扩展栏搜索 vim 安装即可。关于 vi 编辑器:

  • 特点:
    1. vi的改进版本叫vim(vi’s improved version),vi和vim是同一个软件。
    2. vi其初衷是解放鼠标,只用键盘高效操作所有的编辑任务。
    3. 没有菜单,操作分成编辑模式和命令模式,除了编辑之外的操作都在命令模式下进行。

Vi有三种工作模式:一般命令模式、编辑模式、指令列命令行模式。

Linux常用命令知识点总结

一般指令模式(command mode)

作用: ①移动光标 ②搜索与取代 ③删除字符、删除整列 ④复制整列、粘贴整列

进入: ①默认进入②在编辑模式或指令列模式中按下 ESC

# ①移动光标 	[Ctrl] + [b]	#向上翻一页 	[Ctrl] + [f]	#向下翻一页 	0 或功能键[Home] #移动到这一列的最前面字符处 	$ 或功能键[End]	 #移动到这一列的最后面字符处 	gg #移动到这个文件的第一行 (常用) 	G #移动到这个文件的最后一行(常用)     n <Enter> #n 为数字。光标向下移动 n 行(常用)          # ②搜索与取代 	/word	#向光标之下寻找一个名称为 word 的字符串。 (常用)     :n1,n2s/word1/word2/g   #n1 与 n2 为数字。在第 n1 与 n2 列之间寻找 word1 这个字符串,并将该字符串取代为 word2 !     :1,$s/word1/word2/g    #从第一列到最后一列寻找 word1 字符串,并将该字符串取代为 word2 !     :1,$s/word1/word2/gc   #从第一列到最后一列寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 	     					 #(confirm) 是否需要取代!(常用)          # ③删除字符、删除整列 	见下表 
命令 效果
yy 复制游标所在的那一整行
nyy n为数字。复制光标所在的向下 n 列,例如 20yy 则是复制 20 列(常用)
p 将已复制的数据在光标下一列贴上
P 贴在游标上一列
X 向前删除一个字符(相当于 [backspace] 亦即是退格键)
x 向后删除一个字符 (相当于 [del] 按键)
dd 删除游标所在的那一整行
ndd n 为数字。删除光标所在的向下 n 列,例如 20dd 则是删除 20 列 (常用)
u 撤销, 复原前一个动作。
. 重复前一个动作的意思
ctrl+r 重做上一个动作
r 替换当前字符
k 光标向上移动
j 光标向下移动
h 光标向左移动
l 光标向右移动(小写的L)

删除文本

需要注意的是被删除的内容并没有真正删除,都放在了剪贴板中。将光标移动到指定位置处,按下 "p" 键,就可以将刚才删除的内容又粘贴到此处。

快捷键 功能描述
x 删除光标所在位置的字符
dd 删除光标所在行
ndd 删除当前行(包括此行)后 n 行文本
dG 删除光标所在行一直到文件末尾的所有内容
D 删除光标位置到行尾的内容
:a1,a2d 函数从 a1 行到 a2 行的文本内容

复制粘贴

快捷键 功能描述
p 将剪贴板中的内容粘贴到光标后
P(大写) 将剪贴板中的内容粘贴到光标前
y 复制已选中的文本到剪贴板
yy 将光标所在行复制到剪贴板,此命令前可以加数字 n,可复制多行
yw 将光标位置的单词复制到剪贴板

其他常用

某些情况下,可能需要把两行进行连接。比如说,下面的文件中有两行文本,现在需要将其合并成一行(实际上就是将两行间的换行符去掉)。可以直接在命令模式中按下 "J" 键。

如果不小心误删除了文件内容,则可以通过 "u" 键来撤销刚才执行的命令。如果要撤销刚才的多次操作,可以多按几次 "u" 键。

编辑模式(insert mode)

作用: ①以插入或取代来编辑内容

进入使用:

插入模式:i I  o O a A #均可进入编辑模式 退出ESC 	i #在当前光标处插入文本 	I #在当前光标所在行的开头处插入文本 	O #往上插一行 	o #往下插一行 	A #在当前光标所在行的末尾处插入文本 	a #在当前光标的下一个字符处插入文本  取代模式: 	r #取代一个字符 	R #一直取代, 直到按ESC结束 

界面提示: INSERT 或 REPLACE

指令列命令模式command-line mode

作用: ①以插入或取代来编辑内容

进入使用: : / ?

#指令列模式的储存、离开等指令 	:w 	将编辑的数据写入硬盘文件中(常用) 	:q 	离开 vi (常用) 	:q! 放弃保存并退出 	:wq 储存后离开 	:wq! 则为强制储存后离开 (常用)  #vim 环境的变更 	:set nu 	显示行号,设定之后,会在每一列的前缀显示该列的行号 	:set nonu 	与 set nu 相反,为取消行号! 

查找内容

:?printf #查找printf 

如果在文件中并没有找到所要查找的字符串,则在文件底部会出现 "Pattern not found" 提示。

在查找过程中需要注意的是,要查找的字符串是严格区分大小写的,如查找 "shenchao" 和 "ShenChao" 会得到不同的结果。如果想忽略大小写,则输入命令 ":set ic";调整回来输入":set noic"。

如果在字符串中出现特殊符号,则需要加上转义字符 ""。常见的特殊符号有 、*、?、$ 等。如果出现这些字符,例如,要查找字符串 "10$",则需要在命令模式中输入 "/10$"。

替换文本

快捷键 功能描述
r 替换光标所在位置的字符
R 从光标所在位置开始替换字符,其输入内容会覆盖掉后面等长的文本内容,按“Esc”可以结束
?/a1/a2/g 将当前光标所在行中的所有 a1 用 a2 替换
:n1,n2s/a1/a2/g 将文件中 n1 到 n2 行中所有 a1 都用 a2 替换
?/a1/a2/g 将文件中所有的 a1 都用 a2 替换

Linux常用命令知识点总结

快捷键 功能描述
/abc 从光标所在位置向前查找字符串 abc
/^abc 查找以 abc 为行首的行
/abc$ 查找以 abc 为行尾的行
?abc 从光标所在为主向后查找字符串 abc
n 向同一方向重复上次的查找指令
N 向相反方向重复上次的查找指定

保存退出

需要注意:vi/vim 的保存和退出是在编辑模式中进行的,"w!" 和 "wq!" 等类似的指令,通常用于对文件没有写权限的时候(显示 readonly),但如果你是文件的所有者或者 root 用户,就可以强制执行。

命令 功能描述
:wq 保存并退出 Vim 编辑器
:wq! 保存并强制退出 Vim 编辑器
:q 不保存就退出 Vim 编辑器
:q! 不保存,且强制退出 Vim 编辑器
:w 保存但是不退出 Vim 编辑器
:w! 强制保存文本
:w filename 另存到 filename 文件
x! 保存文本,并退出 Vim 编辑器,更通用的一个 vim 命令
ZZ 直接退出 Vim 编辑器

目录操作

打印路径

pwd 命令,是英文单词print working directory的缩写,功能是显示用户当前所处的工作目录,可以把路径信息输出到终端。

pwd     //该指令输出的路径是绝对路径 pwd [-p] #	显示完整路径 

查看目录

显示当前目录下的内容

ls [选项] [目录名称] //选项可以省略,目录名称也可以省略

ls -a #列出当前目录下所有内容, 含 . 隐藏文件 ls -i #显示目录下每个文件的节点信息, 文件的节点相当于文件在磁盘的索引 ls -l #列出目录下的详细信息 可以简化为 ll 

Linux系统的思想是“一切皆文件”,所以Linux系统把文件分为七类:规则文件(-)、目录文件(d)、管道文件(p)、链接文件(l)、套接字文件(s)、字符设备文件(c)、块设备文件(b)

切换目录

cd [选项] [目录名称]

cd #用户家目录 cd -#刚刚去过的路径 cd ~#用户家目录 对应的绝对路径   /home/xxx    xxx就是用户名 cd ~用户名# 该用户的家目录 cd . #用户当前目录 此层目录 cd .. #相对当前所在目录的上一级目录 

目录结构

Linux常用命令知识点总结
根目录 /

常用路径 解释
bin: linux常用的命令
dev: linux外部设备的端口
etc: 系统所有的配置文件
lib: 系统的动态链接库(.so)
mnt: 系统挂载目录,例子: Windows的共享目录
home: 普通用户家目录 /home/gec
usr: 一般存放着头文件,库文件

相对路径 ./

绝对路径 /

创建目录

mkdir [-m or -p] 目录名 创建空目录

gec@ubuntu:~$ mkdir  [-m  or  -p]  目录名 	-m 选项用于手动配置所创建目录的权限,而不再使用默认权限。 	-p 选项递归创建所有目录,以创建 /home/gec/test/abc为例,在默认情况下,你需要一层一层的创建各个目录,而使用 -p 选项,则系统会自动帮你创建 /home、/home/gec、/home/gec/test 和 /home/gec/test/abc。 	 mkdir -m 711 test1#创建有权限的目录 mkdir -p a/b/c #递归创建目录 

压缩解压

tar命令,该命令的作用是归档/释放 以及 压缩/解压,归档的意思把文件统一打包但不作压缩处理,所以压缩和归档生成的包的大小不同。

tar  选项  目标文件  源文件            	-c:创建一个新的归档文件。 	-x:从归档文件中提取文件。 	-f:指定要处理的归档文件名。     //该选项必须放在所有选项的最后面 	-z:使用gzip压缩创建tar文件。 	-j:使用bzip2压缩法创建存档文件。 

归档/释放

tar cf a.tar dir/*  #将目录dir中的所有文件归档成a.tar tar tf a.tar        #查看归档文件a.tar tar xf a.tar        #释放归档文件a.tar 

压缩/解压

tar czf a.tar.gz dir/*  将目录dir中的所有文件归档并压缩为gz格式 tar xzf a.tar.gz        ==> 解压压缩文件a.tar.gz  tar cjf a.tar.bz2 dir/* 将目录dir中的所有文件归档并压缩为bz2格式 tar xjf a.tar.bz2       ==> 解压压缩文件a.tar.bz2 

用户管理

用户切换

sudo su - #默认切换root管理员 sudo su #普通用户切换超级用户 实际开发中尽量避免一直使用超级用户 sudo su [用户]#切换用户,但是不切换工作目录 sudo su - username#切换username用户且切换工作环境 sudo [命令]	#拥有部分管理员权限执行命令 exit #超级用户退回为普通用户 

用户信息查看

sudo cat /etc/shadow   # 查看账号数量及其信息 cat etc/passwd # 查看所有用户信息 

用户创建

useradd -m -u 800 user2 # 创建用户并赋予权限 useradd -m -G group2 ah #创建用户ah,目录默认,并添加到组 group2中 

Linux常用命令知识点总结

password user2 修改用户密码 ,但先进入root

userdel test5 -r 删除用户test5及其主目录

usermod -l u1新 user1源 -u 700 -d /test -p 123456 修改已有的账号信息

usermod –l mtest3 test3 –g 1001 –d /home/mtest3 将test3用户名修改为mtest3,用户组gid改为1001,用户主目录改为/home/mtest3

sudo usermod -G 1100 用户名user01 修改附加组

Linux常用命令知识点总结

  • usermod -g 1000 user01 修改用户所属附加组

用户组

  • 一个用户可以有多个附加组,但只能有一个基本组

  • cat /etc/group 查看用户组的信息,用文本编辑器查看

    • group_name:group_password:group_id:group_members
    • Linux常用命令知识点总结
  • cat /etc/gshadow 查看这个文件需要root权限

Linux常用命令知识点总结

用户组的管理命令

groupadd 创建新的组账号

groupadd -g 343 newgroup 添加用户组, 1000以上为普通

Linux常用命令知识点总结

groupmod

groupmod -n linux新名字 newgroup旧名称 更改组的名字

groupmod -g 300 组名称 修改组编号

Linux常用命令知识点总结

groupdel

groupdel newgroup 删除组,但先删除或踢出去组员

userdel new 删除用户newer


gpasswd 管理群组,加入用户,修改组密码

gpasswd -a 加入成员

gapsswd -M user1,user2待添加用户 group组 把用户加入组

gpasswd -A test2组里面的用户 malimei组指定一个用户当组管理员

id test2用户名查看用户信息

gpasswd -d test4用户 sudo组 将组sudo中的用户test4删除

gpasswd g1修改组g1的密码

网络操作

配置网络

ifconfig命令,该命令的作用是查看或者设置系统IP地址,ifconfig并非系统自带命令,需要利用命令进行安装使用:

sudo apt install net-tools //安装指令只需要执行一次即可

基本格式:

ifconfig   [选项]  ifconfig #查看网络配置信息 ifconfig ens32 192.168.1.6# 修改静态IP 但只能临时生效! 需要写入启动文件 

Linux常用命令知识点总结

设置静态IP

以下的配置信息展现如何使用 netplan 来给 NetworkManager 配置自动获取IP的信息,如下:

基本格式如下:

sudo gedit /etc/netplan/01-network-manager-all.yaml 

Linux常用命令知识点总结

说明:

[192.168.100.100/24] 中的24代表设定的IP地址的前24比特位为子网掩码,也就是255.255.255.0 nameservers 代表 DNS 服务器 图片中的IP地址等参数只是例子,大家需要根据实际情况进行修改,否则会导致无法联网。 注意:如果用户已经配置好 yaml 文件之后,需要执行如下命令来使之生效,操作如下所示: gec@ubuntu:$ sudo  netplan  apply 

网络测试

ping命令,该命令的作用是向指定主机发送要求回应的ICMP数据包,可以用来测试网络是否连通。

 ping  IP地址   ping  主机域名 

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

软件管理

apt管理器指令

apt命令来安装软件包

apt update					#更新软件源 apt upgrade					#更新所有已安装的包 apt install  	<pkg>		#安装软件包<pkg>,多个软件包用空格隔开 apt remove	<pkg>		#移除软件包<pkg> apt purge  	<pkg>		#移除软件包及配置文件 apt autoremove	   		#自动删除不再需要的软件包和依赖关系 apt-cache depends 软件包名 #显示该件包的依赖信息 apt-cache search 软件包名# 搜索软件包 

apt常用命令

Linux常用命令知识点总结

Linux常用命令知识点总结

数据源地址

lUpdate 更新和查询软件包数据源:/var/lib/apt/lists (存放Ubuntu已经下载的个软件源数据);

lUpgrade 升级软件包数据源:/etc/apt/sources.list

lUbuntu 软件中心和APT安装的数据源:/var/lib/dpkg/states

l卸载数据软件包备份位置:/var/cache/apt/archieves

dpkg命令

•dpkg是用来安装.deb文件,但不会解决模块的依赖关系,且不会关心ubuntu的软件仓库内的软件,可以用于安装本地的deb文件,实现手动安装软件包文件(如网络不通、或安装软件源中不存在)。

•如果自己下载了deb包,那么可以直接双击deb包文件,用ubuntu软件中心进行安装,也可以用dpkg命令行工具安装。

  • 安装deb包:安装前,要先查找再安装。 使用命令如下:#dpkg –i deb 包名
  • 列出系统所有安装的软件包:sudo dpkg –l
  • 列出软件包详细的状态信息sudo dpkg –S 包名
  • 列出属于软件包的文件 sudo dpkg –L 包名

帮助手册

help帮助

命令名  --help 

man手册

编程开发的过程中,需要使用众多的系统指令、各类函数库、系统调用、各类系统脚本文件等,这些种类繁多、功能各异的信息,可以通过统一的man手册来获取第一手资料,man文档是帮助信息的权威通道,是大多数教程、书籍的知识来源。

由于 man 手册所需要罗列的帮助条目众多,因此 man 手册被妥善地分为9册,不同的帮助信息被放入对应的man分册中:

man文档的九个分册:

  1. Shell命令(默认已安装)
  2. 系统调用
  3. 库函数
  4. 特殊文件(通常出现在/dev目录下)
  5. 文件的特殊格式或协定(例如/etc/passwd的格式)
  6. 游戏
  7. 杂项(例如一些宏定义)
  8. 系统管理员命令(通常只能由管理员执行)
  9. 非标准内核例程

使用man手册查询命令、函数时,一般直接在man后面接上待查条目即可,但有时候会遇到同一个待查询的条目存在于多个man分册的情况,这就需要先罗列出该条目所在的分册信息,然后再根据需要去选择帮助文档的序号。

# 查询单一分册的条目: man strcpy  # 查询存在于多个分册的条目:  man -f printf # 先使用 -f 来查看有哪些分册包含了该条目 		printf (1)           - format and print data 		printf (3posix)      - print formatted output 		  man 3posix printf # 根据需要,指定查询某一册帮助分册    #查询某一分册的条目  man 1 ls  man 3 printf 

注意:
按 q退出

磁盘/文件系统

查看分区

df命令,该命令的作用是查看系统分区信息,侧重在文件系统级别的磁盘占用方面,用法如下:

df [选项]      -h #转换为倍数显示 

创建链接

ln 命令,是英文link的缩写,中文具有链接的含义,该命令用于给文件创建链接,在Linux系统中,为文件创建链接的方式分为以下两种:

ln  [选项]  源文件  目标文件          	-s #创建软连接文件 

软链接:类似于 Windows 系统中给文件创建快捷方式,即产生一个特殊的文件,该文件用来指向另一个文件,此链接方式同样适用于目录。

硬链接:文件的基本信息都存储在inode中,而硬链接指的就是给一个文件的 inode 分配多个文件名,通过任何一个文件名,都可以找到此文件的inode,从而读取该文件的数据信息。

注意:软链接文件的源文件必须写成绝对路径,而不能写成相对路径(硬链接没有这样的要求),否则软链接文件会报错。

U盘操作

插入FAT32格式U盘到USB0接口

sudo df -h # 查看磁盘使用情况, 查看挂载点 cd /mnt/udisk #然后可以看见一个已经挂载了的U盘路径, 即可对文件进行拷贝, 但程序应该拷贝出去执行, 因U盘不属于Linux的 umount /mnt/udisk #操作完毕后安全卸载U盘 

Linux常用命令知识点总结

文件系统挂载与卸除

若将新磁盘挂载到workspace文件夹上, 则workspace内原来的文件及文件夹会被暂时屏蔽, 显示的是挂载后的新磁盘的文件及文件夹

mount UUID='' 挂载点 mount 装置文件名 挂载点

blkid /dev/vda4# 查看 vda4 的uuid mount UUID="e0a6af55-26e7-4cb7-a515-826a8bd29e90" /data/xfs mount /dev/sr0 /data/cdrom # 将sr0挂载到cdrom 

umount (将装置文件卸除)

umount [-fn] 装置文件名或挂载点 	-f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下; 	-l :立刻卸除文件系统,比 -f 还强! 	-n :不更新 /etc/mtab 情况下卸除。 	 umount /mnt/udisk #操作完毕后安全卸载U盘 

系统/进程/其它

进程状态

ps命令,是英文process state的缩写,该命令用于获取Linux系统中各进程的当前状态参数

ps   [选项]  

Linux常用命令知识点总结

系统时间

date命令,date中文具有日期的含义,利用该命令可以查看或者修改Linux系统日期和时间。

date date  -s   日期时间    //  -s选项可以设置日期和时间 

命令别名

alias命令,该命令用于创建和管理命令别名,可以简化日常的指令输入以及提高开发效率!

alias 别名=命令

alias l="ls -l"# 注意单次有效, 若要重复有效, 得写入启动文件 source .bashrc #写入配置后,让配置命令文件立即生效 

注意:alias命令设置的别名只在当前终端中有效,如果需要永久生效,需要将其写入到用户家目录下的配置文件.bashrc中,然后使用source命令使配置文件立即生效。一定在尾部进行追加。

清除屏幕

clear命令,该命令用于清除终端的一面屏幕,为了提高终端的可读性以及提高开发的效率!

clear 

系统开关机

reboot 	#重启电脑 poweroff	#关机 suspend	#进入休眠模式 

交叉编译

编译程序

# 编译程序 gcc example.c -o example arm-linux-gcc demo.c -o demo_arm # 运行程序 ./example 

配置开发环境

更改服务器源

setting-->about-->software&updates-->Ubuntu Software-->Download from中修改为aliyun

修改完毕后

sudo apt update# 更新Ubuntu系统的服务器软件清单 sudo apt upgrade#检查软件更新 

配置SSH

打开terminal终端

若之前有安装过则要把openssh干净卸载

sudo apt-get remove openssh-server openssh-client --purge -y #卸载SSH软件,同时清除openssh的配置文件(/etc/ssh目录下) sudo apt-get install openssh-server openssh-client #安装SSH  sudo systemctl restart ssh #重启ssh 

检查端口是否开放

sudo apt install net-tools # 安装网络工具 sudo netstat -anp |more #输入netstat查看是否有ssh的22号端口开放 

例如:

Linux常用命令知识点总结

查看服务状态

sudo service ssh status 

修改默认ssh端口号(可选)

若要修改默认ssh端口号

要修改配置文件

sudo vim /etc/ssh/sshd_config 

查看行号, 按ESC进入一般指令模式,按:进入指令列模式

:set nu 

Linux常用命令知识点总结

在一般指令模式下, 移动光标在port位置, 按i进入插入模式, 然后修改你的端口号, 并去掉注释#。

然后按ESC , :wq!保存退出

然后重启SSH服务:

sudo /etc/init.d/ssh stop sudo /etc/init.d/ssh start 

开放防火墙端口(可选)

开放防火墙端口16899

sudo iptables -A INPUT -p tcp --dport 16899 -j ACCEPT 

允许通过防火墙

sudo ufw allow ssh 

安装vmware-tools[可选]

sudo  apt  install  open-vm-tools    open-vm-tools-desktop 

安装man手册

在默认情况下,系统只安装第一册,其他的帮助信息一般需要用户自己手动安装,安装指令如下:

sudo apt-get install  man-db manpages manpages-de  manpages-de-dev  manpages-dev glibc-doc manpages-posix  manpages-posix-dev manpages-posix 

安装Vim文本编辑器

sudo  apt  install   vim#安装vim 

安装gcc

sudo apt install gcc #安装gcc gcc --version # 验证gcc是否成功安装:  将显示gcc的版本信息。 sudo apt install g++#支持C++编译,可以安装g++ sudo apt install make#安装编译和构建相关的工具,make 

修改root密码

sudo passwd root 

安装交叉编译环境arm

在 / 根目录创建 DevelopmentTool 文件夹, 然后将arm-linux-gnueabi-5.4.0.tar.xz上传到其中

su - root#切换root用户 cd / mkdir DevelopmentTool #创建存放工具的文件夹  chmod 777 arm-linux-gnueabi-5.4.0.tar.xz #改变权限  xz   --decompress  arm-linux-gnueabi-5.4.0.tar.xz #对压缩包进行解压  tar xf arm-linux-gnueabi-5.4.0.tar#对归档文件进行释放  cd   /DevelopmentTool/usr/local/arm/5.4.0/usr/bin#进入可执行命令文件  #每个用户都要配置以下环境变量  echo "export PATH=/DevelopmentTool/usr/local/arm/5.4.0/usr/bin:$PATH"  >>  ~/.bashrc#配置环境变量 写入用户家目录shell 脚本  source ~/.bashrc#配置立即生效  arm-linux-gcc -v#查看配置是否生效  exit #退出root 

若有多个用户则逐一创建账号

sudo adduser username #新建用户username并创建家目录  sudo usermod -aG sudo username #修改username账户, -a将用户添加到新组时保留用户在其他组的成员资格, 如果省略 -a,用户将被从除新指定组外的所有其他组中移除。-G 选项后面跟着的是用户要被添加进的一个或多个组。在这个例子中,组名是 sudo。让username有权限执行sudo命令  su - username #进入新用户  echo "export PATH=/DevelopmentTool/usr/local/arm/5.4.0/usr/bin:$PATH"  >>  ~/.bashrc  source ~/.bashrc  arm-linux-gcc -v