linux cpu占用率如何看
530
2022-09-07
NanoPi-NEO——系统配置工具npi-config
npi-config 是我们这个 NanoPi-NEO 系统下的一个命令行的系统配置工具,利用它可以对系统进行一些初始化的配置,可配置的项目包括:用户密码、系统语言、时区、Hostname、SSH 开关、自动登录选项等。在命令行执行以下命令即可进入:
sudo
npi-config 的显示界面如下所示:
图1.17 系统配置工具npi-config的显示界面
npi-config 工具的当前版本一共有8个菜单,分别是:
Change User Password:修改缺省用户的登录密码Hostname:设置主机名,默认为 NanoPi-NEOBoot Options:配置一些启动选项,例如系统启动后登录 console 的默认用户Localisation Options:配置一些本地选项,例如语言、时区、键盘布局、Wi-Fi 频段等Interfacing Options:接口选项配置,例如开启或关闭 SSH 服务Advanced Options:高级配置,包括 Audio、欢迎信息等Update:升级 npi-config 到最新版本About npi-config:关于 npi-config 的信息
npi-config 的使用很简单,根据提示进行操作即可,一般不会有太大问题,这里就不详细讲解了,大家摸索几遍就可以了。
我在选择“Update”的时候看到如下提示:
Cloning into 'npi-config'...remote: Counting objects: 5, done.remote: Total 5 (delta 0), reused 0 (delta 0), pack-reused 5Unpacking objects: 100% (5/5), done.Checking connectivity... done.Sleeping 5
于是,猜测 npi-config 工具的更新操作就是拉取 git 仓库的最新代码,果然在 GitHub 上找到相关仓库,然后尝试用如下命令克隆npi-config源代码:
git clone npi-config 目录下有三个文件:
npi-config README.md sample_profile_d.sh
其中 npi-config 就是我们上面所运行的系统配置工具,实际上,它是一个 Shell 脚本文件。这里抽取一部分代码:
#!/bin/sh# Part of npi-config See LICENSE file for copyright and license detailsINTERACTIVE=TrueASK_TO_REBOOT=0if [ -f /etc/friendlyelec-release ]; then # get friendlyelec's boardt model # example: # BOARD="NanoPC-T2" # LINUXFAMILY=nanopi2 . /etc/friendlyelec-release fi......do_update() { cd /tmp/ rm -rf npi-config git clone if [ $? -eq 0 ]; then SELFPATH=`which npi-config` cp -f npi-config/npi-config $SELFPATH chmod 755 $SELFPATH rm -fr npi-config printf "Sleeping 5 seconds before reloading npi-config\n" && sleep 5 && exec $SELFPATH else whiptail --msgbox "There was an error checking new version." 20 60 1 fi}## Interactive use loop#calc_wt_sizewhile true; do FUN=$(whiptail --title "NanoPi Software Configuration Tool (npi-config)" --menu "Setup Options" $WT_HEIGHT $WT_WIDTH $WT_MENU_HEIGHT --cancel-button Finish --ok-button Select \ "1 Change User Password" "Change password for the default user (pi)" \ "2 Hostname" "Set the visible name for this Pi on a network" \ "3 Boot Options" "Configure options for start-up" \ "4 Localisation Options" "Set up language and regional settings to match your location" \ "5 Interfacing Options" "Configure connections to peripherals" \ "6 Advanced Options" "Configure advanced settings" \ "7 Update" "Update this tool to the latest version" \ "8 About npi-config" "Information about this configuration tool" \ 3>&1 1>&2 2>&3) RET=$? if [ $RET -eq 1 ]; then do_finish elif [ $RET -eq 0 ]; then case "$FUN" in 1\ *) do_change_pass ;; 2\ *) do_change_hostname ;; 3\ *) do_boot_behaviour ;; 4\ *) do_internationalisation_menu ;; 5\ *) do_interface_menu ;; 6\ *) do_advanced_menu ;; 7\ *) do_update ;; 8\ *) do_about ;; *) whiptail --msgbox "Programmer error: unrecognized option" 20 60 1 ;; esac || whiptail --msgbox "There was an error running option $FUN" 20 60 1 else exit 1 fidone
看到 do_update 没?显然刚刚的猜想是正确的!好了,对 npi-config 的实现感兴趣的朋友接下来就可以分析该脚本了。在终端上看实在太不方便了,我决定把它拿出来用 Notepad++ 来看,那怎么拿呢? 打开 SecureCRT,用 SSH 登录 NanoPi-NEO(如果不懂请看上一节)。登录成功后按下 ALT+P 就开启新的会话进行 ftp 操作。估计是使用本地用户模式登录 ftp 服务器的,而我是用 root 登录 ssh 的,所以当前目录为root的家目录。好了,登录ftp后就可以使用get来下载文件了,操作如下:
sftp> lsmjpg-streamer Music npi-config test.pcmsftp> pwd/rootsftp> get npi-config/npi-configDownloading npi-config from /root/npi-config/npi-config 100% 19KB 19KB/s 00:00:00 /root/npi-config/npi-config: 20247 bytes transferred in 0 seconds (19
如果下载成功后不知道文件被存放到哪,可以在 SecureCRT 上选择“Options”–>“Session Options”–>“SFTP Session”,查看“Local directory”就知道下载的文件所存放的地方了。接下来就可以用 Notepad++ 好好分析 npi-config 啦!
关于 ftp 的命令,可以输入 help 查看该 FTP 提供所有的命令,这里列出一些常用的命令:
pwd: 查询Linux主机所在目录(也就是远程主机目录)lpwd: 查询本地目录(一般指Windows上传文件的目录)ls: 查询连接到当前Linux主机所在目录有哪些文件lls: 查询当前本地上传目录有哪些文件lcd: 改变本地上传目录的路径cd: 改变远程上传目录get: 将远程目录中文件下载到本地目录put: 将本地目录中文件上传到远程主机(Linux)quit: 断开FTP连接
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~