Linux根据平台和环境的不同,支持不同的安装命令。如debian系的apt-get,centos的yum,本系列使用的ubuntu系统属于debian,因此都使用apt/apt-get作为安装命令(当然Ubuntu后面推出了snap,不过个人习惯使用apt命令)。
当然,对于文件安装包,使用dkpg/rpm进行安装;这里列出与安装的相关命令,目录如下所示。
########################## apt,apt-get #################
# 从软件源更新list
sudo apt-get update
# 从软件源升级软件
sudo apt-get upgrade
# 安装软件
sudo apt-get install [package]
# 移除软件
sudo apt-get purge [package]
# 检查没有依赖会自己删除
sudo apt-get autoremove
# 查询已经安装的软件列表
sudo apt --installed list
# 查询软件包
apt search [package]
apt --names-only search [package]
########################## dpkg/rpm ###########################
# 安装linux环境包
sudo dpkg -i [file].deb
# 覆盖并移除安装的软件包,修复安装
sudo dpkg -i --force-overwrite [file].deb
#rpm安装包查询地址
http://rpmfind.net/linux/rpm2html/search.php
#rpm解包
rpm2cpio package.rpm > package.cpio
cpio -idmv < package.cpio
本小节主要列出常用的工具指导,如远程访问的ssh,用于程序开发的vscode,这一类软件可以通过命令或者编译好的软件直接安装,相对来说比较简单,所以这里统一说明。
vscode的官方下载地址为https://code.visualstudio.com/#alt-downloads。
选择Ubuntu版本,先在官网上点击下载,然后复制链接,将前面的路径替换成国内源vscode.cdn.azure.cn, 如果不清楚可以使用如下命令在linux上下载.
wget https://vscode.download.prss.microsoft.com/dbazure/download/stable/5437499feb04f7a586f677b155b039bc2b3669eb/code_1.90.2-1718751586_amd64.deb
sudo dpkg -i code_1.90.2-1718751586_amd64.deb
安装完成后,输入code即可在linux上打开code,不过我喜欢添加vscode作为打开的link.
sudo ln -sf /usr/bin/code /usr/bin/vscode
之后调用code或vscode命令即可打开vscode应用.
vscode可以通过setting.json管理项目文件的显示,在根目录创建.vscode目录,其下创建setting.json文件,内容如下。
/*
setting.json文件内容
files.exclude 定义文件不被项目包含
search.exclude 定义文件不被检索
*/
{
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"arch/arm":true,
},
"search.exclude": {
"**/node_modules": true,
}
}
对于7-zip的安装如下。
#安装7zip
sudo apt-get install p7zip-full
#使用7zip解压文件。
7z x rootfs.img -o /usr/application/rootfs
对于ubuntu平台,可直接执行如下安装和运行.
# 安装openssh服务器
sudo apt-get install openssh-server
# 启动ssh服务
sudo service ssh restart
远程可通过如下命令登录和传输文件
ssh [用户名]@[ipAddress]
scp -r [file] [用户名]@[ipAddress]:[directory]
如ssh freedom@192.168.0.99登录,不过默认不支持密码登录,需要在服务器/etc/ssh/sshd_config修改。此外,还要指定连接的加密算法,在sshd_config的文件末尾添加如下即可.
PermitRootLogin yes
PasswordAuthentication yes
#定义ssh支持的算法,客户端和服务器需要一致
Ciphers aes128-cbc
MACs hmac-md5
KexAlgorithms diffie-hellman-group1-sha1,ecdh-sha2-nistp256
分别添加服务端文件:/etc/ssh/sshd_config和客户端文件:/etc/ssh/ssh_config中, 如果linux访问远端显示MACs,Key不支持,也可以按照上述方法在文件里添加即可。当然对于windows系统,添加在文件:C:\ProgramData\ssh\ssh_config中(不存在则直接创建), 需要Windows管理员权限。另外如果ssh客户/服务端发生变化,如系统重装,导致命令字和服务端保存不一致,可通过如下命令清除。
ssh-keygen -f "/root/.ssh/known_hosts" -R [ipaddress]
清除本地保存的密钥,此时可以ssh或scp命令重新连接.
扩展说明.
使用ssh从远端下载文件。
ssh [name]@[ipaddr] dd if=[dir/file] | dd of=[dir/file]
TFTP的安装流程如下所示.
第一步,安装tftp应用需要的工具.
#安装xinetd服务
sudo apt-get install xinetd -y
#分别安装tftp客户端和服务器
sudo apt-get install tftp-hpa tftpd-hpa -y
第二步,修改配置文件.
其中xinetd的配置文件为 /etc/xinetd.conf, 可通过如下修改。
sudo vim /etc/xinetd.conf
内容修改为如下,如果已经存在则不需要修改.
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/
defaults
{
# Please note that you need a log_type line to be able to use log_on_success
# and log_on_failure. The default is the following :
# log_type = SYSLOG daemon info
}
includedir /etc/xinetd.d
下一步在xinetd.d目录下增加tftp的配置文件,配置文件为 /etc/xinetd.d/tftp, 通过如下方式修改。
sudo vim /etc/xinetd.d/tftp
内容修改如下所示, 其中server_args即指定tftp的目的地址。
server tftp
{
socket_type = dgram
wait = yes
disable = no
user = root
protocol = udp
server = /usr/sbin/in.tftpd
server_args = -s /home/freedom/Desktop/Project/sdk/tftp -c
per_source = 11
cps =100 2
flags =IPv4
}
对于tftp的配置文件为 /etc/default/tftpd-hpa, 通过如下方式修改。
sudo vim /etc/default/tftpd-hpa
内容修改为如下所示。
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
#此处指定tftp的映射目录
TFTP_DIRECTORY="/home/freedom/Desktop/Project/sdk/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"
第三步, 通过service启动tftp服务器,执行命令如下.
sudo service tftpd-hpa restart
sudo service xinetd restart
此时测试服务器是否构建成功, 可创建任意文件到/home/program/build/tftp_root目录,本机通过tftp命令获取测试。
#向服务器上传文件(-p put)
tftp -p -l [file] [ipaddr]
#从服务器下载文件
tftp [ipaddr] -c get [file]
#本地测试tftp工作是否正常
touch /home/freedom/Desktop/Project/sdk/tftp/test.c
tftp 127.0.0.1 -c get test.c
#从服务器读取文件
tftp -g -r test.c [ipaddress]
#向服务器写入文件
tftp -p -l test.c [ipaddress]
查看本地是否由test.c文件,如果有表示启动成功。
首先下载nfs服务器,具体命令如下。
sudo apt-get install nfs-kernel-server
配置nfs服务,具体对应文件/etc/exports.
sudo vim /etc/exports
# /home/freedom/.../nfs NFS共享目录
# * 表示允许所有网络段访问
# rw 表示访问者具有读写权限
# nohiden 表示共享子目录
# insercure 表示通过1024以上的端口通讯
# sync/async 资料同步/不同步缓存
# no_subtree_check 表示不检查父目录权限
# no_root_squash 表示访问者为root权限
/home/freedom/Desktop/Project/sdk/nfs *(rw,nohide,sync,no_root_squash)
更新nfs配置文件
#更新nfs文件
sudo vim /etc/nfs.conf
#使能功能
tcp=y
udp=y
vers2=y
vers3=y
之后重启nfs服务,并查看是否启动.
#重启nfs服务器
sudo /etc/init.d/nfs-kernel-server restart
#查看nfs服务器是否启动
showmount -e
#通过mount命令将nfs挂载到/mnt目录下,然后通过查看ls /mnt即可查看是否加载成功
#/home/nfs需要创建,并修改权限为r+w+x.
sudo mount -t nfs -o nolock,nfsvers=3 127.0.0.1:/home/freedom/Desktop/Project/sdk/nfs /mnt
在uboot里面设置启动参数。
#注意,较老版本的嵌入式kernel可能不支持nfsv3,而最新的Linux系统内核不支持nfsv2,此时只能升级Kernel Linux内核,或者降低Linux系统内核
setenv bootargs "console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.3.29:/home/freedom/Desktop/remote_manage/sdk/build/nfs_root/arm,proto=tcp,nfsvers=3 rw ip=192.168.3.99:192.168.3.29:192.168.3.1:255.255.255.0::eth0:off"
saveenv
reset
node安装有两种方式,一种使用apt直接安装,这时会选择软件源中的对应node文件。
sudo apt-get install nodejs
sudo apt-get install npm
#升级npm
npm install npm -g
#升级node
npm install -g n n stable
但这种方式安装的版本一般较低, 如果使用一些库或者开发用到js的新特性会失败, 这里建议直接去官网下载:https://nodejs.org/en/download, 选择最新的是LTS版本(这里最新的是20.9.0版本)即可,可通过如下命令下载, 这里列下常用版本的说明:
#进入软件安装目录
cd /home/program/download/install
#下载并解压
wget https://nodejs.org/dist/v20.9.0/node-v20.9.0-linux-x64.tar.xz
tar -xvf node-v20.9.0-linux-x64.tar.xz
#安装文件
sudo ln -sf /home/program/download/install/node-v20.9.0-linux-x64/bin/node /usr/bin/node
sudo ln -sf /home/program/download/install/node-v20.9.0-linux-x64/bin/npm /usr/bin/npm
#安装软件成功测试, v20.9.0
node -v
npm -v
#npm设置国内源
npm config get registry
npm config set registry https://registry.npm.taobao.org
npm install -g cnpm --registry=https://registry.npm.taobao.org
python的安装可以直接使用命令安装, python安装下载地址:https://www.python.org/ftp/python/3.13.0/
#安装python3和pip3
sudo apt-get install python3 pip3
#使用清华源安装python库
pip3 install [module] -i https://pypi.tuna.tsinghua.edu.cn/simple/
常用模块安装命令如下。
#安装pyQT5环境
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyQt5
#python设置长期安装源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
vsftpd_install的安装可以直接使用如下命令。
#安装vsftpd
sudo apt-get install vsftpd
#修改配置文件
sudo vim /etc/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_enable=YES
write_enable=YES
local_root=/var/www/html/debian
#启动vsftpd服务
sudo service vsftpd restart
#查看当前监听的接口,如果有port:21表示连接成功
netstat -tnl
访问方法:
#访问ip地址,输入账户密码即可
ftp 127.27.83.254
#另外也可以通过MobaXterm工具进行远程连接。
通过iperf可以Phy的吞吐测试。具体方法如下。
#命令说明
-u UDP工作模式
-s 服务器端
-c 表示客户端,指定服务端ip地址
-b 发送速率,如1000M
-t 测试时长
#安装iperf
sudo apt-get install iperf
#服务器端(一般为嵌入式端)
iperf -s
#客户端
#下载测试
iperf -c 172.27.83.254 -i 1 -w 1m -t 60
#上传测试
iperf -c 172.27.83.254 -i 1 -t 60
通过shellcheck检查shell语法的问题。
#安装shellcheck
sudo apt-get install shellcheck
#测试shell脚本
shellcheck build.sh
docker安装方式(目前国内镜像基本无法工作)。
#更新软件包索引
sudo apt update
sudo apt upgrade
#卸载旧版本的Docker
sudo apt remove docker docker-engine docker.io containerd runc
#安装依赖项
sudo apt install ca-certificates curl gnupg lsb-release
#添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
#添加Docker软件源
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"。
#安装Docker
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin。
#验证安装
docker --version。
#此外,如果您希望不需要使用sudo来运行Docker命令,可以将当前用户添加到docker组中。
安装homeassistant系统
#安装homeassistant系统
sudo docker run -d --name=homeassistant --net=host -v /home/freedom/.homeassistant:/config -v /home/freedom/.homeassistant:/data -v /home/freedom/.homeassistant:/log --volume="/home/freedom/.homeassistant:/usr/src/homeassistant" homeassistant/home-assistant
#docker相关命令
#重启容器内系统
docker restart [容器id]
#启动容器内系统
docker start [容器id]
#停止容器内系统
docker stop [容器id]
#删除容器内系统
docker rm [容器id]
#查看容器运行日志
docker logs -f [容器id]
#查询docker内系统运行状态
docker ps -a
#只显示缩写docker号
docker ps -qa
docker exec -it [容器id] bash
#下载apache2程序
sudo apt-get install apache2
#重启apache2
sudo service apache2 restart
解决访问权限问题,如果增加目录支持,增加如下结构。
#修改配置文件
sudo vim /etc/apache2/apache2.conf
######################################
<Directory /var/www/html/debian>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
######################################
typecho是一个开源的博客程序,可通过php语言编写。
下载: https://github.com/typecho/typecho/releases/latest/download/typecho.zip
# 安装apache2服务器
sudo apt-get install apache2 apache2-utils
# 安装php7.4, 添加相应的源
sudo apt install software-properties-common
sudo apt install python3-launchpadlib
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
###################################################################
# 报错
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 113, in lpteam
self._lpteam = self.lp.people(self.teamname)
^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'people'
# 解决办法
sudo apt install python3-launchpadlib
###################################################################
###################################################################
# 报错
Err:3 https://ppa.launchpadcontent.net/ondrej/php/ubuntu bookworm Release
404 Not Found [IP: 185.125.190.80 443]
# 解决办法
sudo vim /etc/apt/sources.list.d/ondrej-ubuntu-php-bookworm.list
# 版本
deb https://ppa.launchpadcontent.net/ondrej/php/ubuntu/ jammy main
###################################################################
sudo apt-get install php7.4 libapache2-mod-php7.4
sudo apt-get install php7.4-sqlite3 php7.4-curl php7.4-mbstring
# 安装sqlite3
sudo apt-get install sqlite3
# 安装typecho
sudo rm -rf /var/www/html/*
sudo unzip typecho.zip -d /var/www/html/
sudo chown -R www-data /var/www/html/
# 重启启动apache2
sudo service apache2 restart
# 通过<http://localhost>在浏览器访问typecho
# 执行注册操作
直接开始下一章节:Linux shell脚本语法。