人工智能操作系统的相关说明(机器人控制系统需使用实时操作系统)
472
2022-05-29
常见命令
查看硬件信息
查看CPU
lscpu命令可以查看cpu信息
cat /proc/cpuinfo也可查看到
查看内存大小
free命令可以查看内存大小(但显示结果会以KB格式,需要加上-h)
cat /proc/meminfo也可查看到
查看硬盘和分区情况
lsblk命令可以查看硬盘和分区信息
cat /proc/partitions也可查看到
查看系统版本信息
查看内核版本
[root@localhost ~]# uname -r 3.10.0-1160.el7.x86_64
查看操作系统发行版本
[root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [root@localhost ~]# cat /etc/os-release NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/" CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7"
日期和时间
Linux的两种时钟
系统时钟:由Linux内核通过CPU的工作频率进行的
硬件时钟:主板
相关命令
date 显示和设置系统时间
例子:
[root@localhost ~]# date +%s 1647268077 [root@localhost ~]# date -d @`date +%s` Mon Mar 14 22:28:15 CST 2022 [root@localhost ~]# date -d @1647268077 Mon Mar 14 22:27:57 CST 2022 [root@localhost ~]# date -d @1647268077 +%F_%T 2022-03-14_22:27:57
clock, hwclock:显示硬件时钟
-s, --hctosys #以硬件时钟为准,校正系统时钟 -w, --systohc #以系统时钟为准,校正硬件时钟
时区:
/etc/localtime
例子:
[root@localhost ~]# timedatectl list-timezones [root@localhost ~]# timedatectl set-timezone Asia/Shanghai [root@localhost ~]# timedatectl status Local time: Mon 2022-03-14 22:44:59 CST Universal time: Mon 2022-03-14 14:44:59 UTC RTC time: Mon 2022-03-14 14:44:55 Time zone: Asia/Shanghai (CST, +0800) NTP enabled: no NTP synchronized: no RTC in local TZ: no DST active: n/a [root@localhost ~]# ll /etc/localtime lrwxrwxrwx. 1 root root 35 Mar 4 20:54 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai
显示日历:
cal -y
例子:
[root@localhost ~]# cal 3 2022 March 2022 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
关机和重启
关机:
halt
poweroff
重启:
reboot
-f:强制,不调用shutdown
-p:切断电源
关机或重启:shutdown
shutdown [OPTION]... [TIME] [MESSAGE]
-r:reboot
-h:halt
-c:cancel
TIME:无指定,默认相当于+1(CentOS7)
now:立刻,相当于+0
+#:相对时间表示法,几分钟之后;例如:+3
hh:mm:绝对时间表示,指明具体时间
用户登录信息查看命令
whoami:显示当前登录有效用户
who:系统当前所有的登录会话
w:系统当前所有的登录会话及所做的操作
文本编辑
nano:工具可以实现文本的编辑,上手容易,适合初学者
gedit:工具是图形工具
会话管理
命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称"窗口"),在里面输入命令。用户与计算机的这种临时的交互,称为一次"会话"(session)
会话的一个重要特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完成
一个典型的例子就是,SSH登录远程计算机,打开一个进程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次SSH会话已经终止了,里面的进程也随之消失了。为了解决这个问题,会话与窗口可以"解绑";窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话"绑定"其他窗口
终端复用器软件就是会话与窗口的"解绑"工具,将它们彻底分离。
(1),它允许在单个窗口中,同时访问多个会话,这对于同时运行多个命令行程序很有用。
(2)它可以让新窗口"接入"已经存在的会话。
(3)它允许每个会话有多个连接窗口,因此可以多人实时共享会话。
(4)它还支持窗口任意的垂直和水平拆分。
类似的终端复用器还有Screen,Tmux
screen
利用screen可以实现会话管理,如:新建会话,共享会话等
注意:CentOS7来自于base源,CentOS8来自于epel源
例子:安装screen
#CentOS7安装screen #yum -y install screen #CentOS8安装screen #dnf -y install epel-release #dnf -y install screen
screen命令常见用法:
创建新screen会话
screen -S [SESSION]
加入screen会话
screen -x [SESSION]
退出并关闭screen会话
exit
剥离当前screen会话
Ctrl+a,d
显示所有已经打开的screen会话
screen -ls
恢复某screen会话
screen -r [SESSION]
tmux
Tmux是一个终端复用器(terminal multiplexer),类似screen,但是更易用,也更强大
Tmux就是会话与窗口的"解绑"工具,将它们彻底分离,功能如下:
它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令程序很有用。
它允许让新窗口"接入"已经存在的会话。
它允许每个会话有多个连接窗口,因此可以多人实时共享会话。
它还支持窗口任意的垂直和水平拆分。
安装
yum install tmux
启动与退出
[root@centos7 ~]#tmux [root@centos7 ~]#exit logout
Tmux窗口有大量的快捷键,所有快捷键都要通过前缀键唤起。默认的前缀键是Ctrl+b,即先按下Ctrl+b,快捷键才会生效。帮助命令的快捷键是Ctrl+b ?然后,按下q键,就可以退出帮助。
新建会话
第一个启动的Tmux窗口,编号是0,第二个编号是1,以此类推。这些窗口对应的会话,就是0号会话,1号会话。使用编号区分会话,不太直观,更好的方法是为会话起名。下面命令新建一个指定名称的会话。
tmux new -S
tmux ls或者Ctrl+b,s 可以查看当前所有的tmux会话
tmux ls tmux list-session
分离会话
在tmux窗口中,按下Ctrl+b d或者输入tmux detach命令,就会将当前会话与窗口分离。
tmux detach
接入会话
tmux attach命令用于重新接入某个已存在的会话
tmux attach -t
终止会话
tmux kill-session命令用于终止某个会话
tmux kill-session -t
切换会话
tmux switch命令用于切换会话
tmux switch -t
可以将窗口分成多个窗格(pane),每个窗格运行不同的命令
上下分窗格
tmux split-window ctrl+b,"
左右分窗格
tmux split-window -h ctrl+b,%
列出所有快捷键,及其对应的tmux命令
tmux list-keys
列出所有tmux命令及其参数
tmux list-commands
输出信息echo
echo基本用法
echo命令可以将后面跟的字符进行输出
功能:显示字符,echo会将输入的字符串送往标准输出,输出的字符串间以空白字符隔开,并在最后加上换行号
语法:
echo [-neE][字符串]
选项:
-E (默认)不支持\解释功能
-n 不自动换行
-e 启用\字符的解释功能
显示变量
echo "$VAR_NAME" #用变量值替换,弱引用 echo '$VAR_NAME' #变量不会替换,强引用
启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当作一般文字输出
\a 发出警告声
\b 退格键
\c 最后不加上换行符号
\e escape,相当于\033
\n 换行且光标移至行首
\r 回车,即光标移至行首,但不换行
\t 插入tab
\\ 插入\字符
\0nnn 插入nnn(八进制)所代表的ASCII字符
\xHH 插入HH(十六进制)所代表的ASCII数字(man 7 ascii)
echo高级用法
在终端中,ANSI定义了用于屏幕显示的Escape屏幕控制码
具有颜色的字符,其格式如下:
"\033[字符背景颜色;字体颜色m字符串\033[0m"
\033[30m … \033[37m 设置前景色
\033[40m … \033[47m 设置背景色
#字符背景颜色范围:40-47 40:黑 41:红 42:绿 43:黄 44:蓝 45:紫 46:深绿 47:白
加颜色只是以下控制码中的一种,下面是常见的一些ANSI控制码:
\033[0m 关闭所有属性 \033[1m 设置高亮度 \033[4m 下划线 \033[5m 闪烁 \033[7m 反显 \033[8m 消隐 \033[nA 光标上移n行 \033[nB 光标下移n行 \033[nC 光标右移n列 \033[nD 光标左移n列 \033[x;yH 设置光标位置x行y列 \033[2J 清屏 \033[K 清除从光标到行尾的内容 \033[s 保存光标位置 \033[u 恢复光标位置 \033[?25l 隐藏光标 \033[?25h 显示光标 \033[2J\033[0;0H 清屏且将光标置顶
字符集和编码
许多场合下,字符集与编码这两个概念常被混为一谈,但两者是有差别的。字符集与字符集编码是两个不同的概念。
charset是character set的简写,即字符集,即二进制和字符的对应关系,不关注最终的存储形式
encoding是charset encoding的简写,即字符集编码,简称编码,实现如何将字符转化为实际的二进制进行存储或相反,编码决定了空间的使用的大小
ASCII码
计算机内部,所有信息最终都是一个二进制值。上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制之间的关系,做了统一规定,即ASCII(American Standard Code for Information Interchange)码
ASCII码一定规定了128个字符的编码,占用了一个字节的后面7位,最前面的一位统一规定为0
例子:查看ASCII表
dnf -y install man-pages man ascii
Unicode
由于计算机是美国人发明的,因此,最早只有127个字母被编码到计算机里,即ASCII编码,但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。
全世界有上百种语言,日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里,各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。
为了表示世界上所有语言中的所有字符。每一个符号都给予一个独一无二的编码数字,Unicode是一个很大的集合,现在的规模可以容纳100多万个符号。Unicode仅仅只是一个字符集,规定了每个字符对应的二进制代码,至于这个二进制代码如何存储则没有规定
Unicode编码方案:
UTF-8:变长,1到4个字节
UTF-16:变长,2或4个字节
UTF-32:固定长度,4个字节
UTF-8是目前互联网上使用广泛的一种Unicode编码方式,可变长存储。使用1-4个字节表示一个字符,根据字符的不同变换长度。
编码规则如下:
对于单个字节的字符,第一位设为0,后面的7位对应这个字符的Unicode码。因此,对于英文中的0-127号字符,与ASCII码完全相同。这意味着ASCII码的文档可用UTF-8编码打开。
对于需要使用N个字节来表示的字符(N>1),第一个字节的前N位都设为1,第N+1位设为0,剩余的N-1个字节的前两位都设为10,剩下的二进制位则使用这个字符的Unicode码来填充
编码转换和查询参考链接:
https://home.unicode.org/
https://unicode.yunser.com/unicode
https://www.chi2ko.com/tool/CJK.htm
https://www.bejson.com/convert/unicode_chinese/
https://javawind.net/tools/native2ascii.jsp?action=transform
http://tool.oschina.net/encode
http://web.chacuo.net/charsetescape
Unicode和UTF-8
例子:Unicode转换为UTF-8
"汉"的Unicode码0x6C49(110 110001 001001),需要三个字节存储,格式为:1110xxxx 10xxxxxx 10xxxxxx,从后向前依次填充对应格式中的x,多出的x用0补,得出UTF-8编码为:11100110 10110001 10001001 "马"的Unicode码0x9A6C(1001 101001 101100),需要三个字节存储,格式为:1110xxxx 10xxxxxx 10xxxxxx,从后向前依次填充对应格式中的x,多出的x用0补,得出UTF-8编码为11101001 10101001 10101100
例子:修改LANG变量实现中文语言提示
[root@localhost ~]# echo $LANG en_US.UTF-8 [root@localhost ~]# LANG=zh_CN.UTF-8 [root@localhost ~]# echo $LANG zh_CN.UTF-8 [root@localhost ~]# LANG=en_US.UTF-8 [root@localhost ~]# echo $LANG en_US.UTF-8
Linux
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。