• [技术干货] linux命令介绍之zip和unzip
    linux命令介绍之zip和unzipzip 命令用于压缩文件;语法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件...][-i <范本样式>][-x <范本样式>] 参数:-A 调整可执行的自动解压缩文件。-b<工作目录> 指定暂时存放文件的目录。-c 替每个被压缩的文件加上注释。-d 从压缩文件内删除指定的文件。-D 压缩文件内不建立目录名称。-f 更新现有的文件。-F 尝试修复已损坏的压缩文件。-g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。-h 在线帮助。-i<范本样式> 只压缩符合条件的文件。-j 只保存文件名称及其内容,而不存放任何目录名称。-J 删除压缩文件前面不必要的数据。-k 使用MS-DOS兼容格式的文件名称。-l 压缩文件时,把LF字符置换成LF+CR字符。-ll 压缩文件时,把LF+CR字符置换成LF字符。-L 显示版权信息。-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。-n<字尾字符串> 不压缩具有特定字尾字符串的文件。-o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。-q 不显示指令执行过程。-r 递归处理,将指定目录下的所有文件和子目录一并处理。-S 包含系统和隐藏文件。-t<日期时间> 把压缩文件的日期设成指定的日期。-T 检查备份文件内的每个文件是否正确无误。-u 与 -f 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。-v 显示指令执行过程或显示版本信息。-V 保存VMS操作系统的文件属性。-w 在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。-x<范本样式> 压缩时排除符合条件的文件。-X 不保存额外的文件属性。-y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。-z 替压缩文件加上注释。-$ 保存第一个被压缩文件所在磁盘的卷册名称。-<压缩效率> 压缩效率是一个介于1-9的数值。实例:将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zipzip -q -r html.zip /home/html也可以进入到/home/html目录下使用:zip -q -r html.zip * unzip命令用于解压缩zip文件语法:unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目录>][-x <文件>] 或 unzip [-Z] 参数:-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。-f 更新现有的文件。-l 显示压缩文件内所包含的文件。-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。-t 检查压缩文件是否正确。-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。-v 执行是时显示详细的信息。-z 仅显示压缩文件的备注文字。-a 对文本文件进行必要的字符转换。-b 不要对文本文件进行字符转换。-C 压缩文件中的文件名称区分大小写。-j 不处理压缩文件中原有的目录路径。-L 将压缩文件中的全部文件名改为小写。-M 将输出结果送到more程序处理。-n 解压缩时不要覆盖原有的文件。-o 不必先询问用户,unzip执行后覆盖原有文件。-P<密码> 使用zip的密码选项。-q 执行时不显示任何信息。-s 将文件名中的空白字符转换为底线字符。-V 保留VMS的文件版本信息。-X 解压缩时同时回存文件原来的UID/GID。[.zip文件] 指定.zip压缩文件。[文件] 指定要处理.zip压缩文件中的哪些文件。-d<目录> 指定文件解压缩后所要存储的目录。-x<文件> 指定不要处理.zip压缩文件中的哪些文件。-Z unzip -Z等于执行zipinfo指令。 实例:查看压缩文件中包含的文件,但是不解压该文件unzip -l abc.zip
  • [其他] 【modelarts产品】【训练管理 功能】训练生成的caffemodel文件进入linux后格式不对
    【功能模块】训练模型【操作步骤&问题现象】1、使用训练管理,选择caffessd算法训练自制的目标检测数据集,产生的 deploy.caffemodel 文件和我原来运行人脸检测使用的facedetection.caffemodel文件格式不对2、这两个caffemodel文件在windows下皆以caffemodel为后缀,但是用邮件发到虚拟机后,训练产生的caffemodel文件变为Binary格式,与人脸检测的caffemodel文件在linux环境下表现为PCX image【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [运维管理] linux下配置数据源为什么要重启
    产品文档《linux下配置数据源》这一章节中第6步配置数据库服务器中最后一步是重启集群前面的步骤都是使用reload的方式对参数进行设置,这种方式不需要重启,最后一步为什么又要重启呢?
  • [技术干货] 【转】Windows与Linux文件互传的几种方式
    概述Win系统之间互传文件的方式非常多,也比较简单,如通过系统的共享文件夹、飞Q、QQ、微信等,但Linux系统对这些应用的支持不是很好。在工作中,经常会混合使用Windows与Linux系统。一般情况下,开发用的pc机是Win系统的,而服务器是Linux。在这种情况下,经常是本地Win系统通过xshell或者SecureCRT通过ssh远程登录到Linux服务器进行开发,如果需要把本地文件传输到服务器,就有了文件互传的需求。另外,在本地pc上安装了VMware虚拟机,安装了Linux后,也需要在本地的Win和Linux互传文件。Win与Linux传递文件以使用Win系统远程连接到Linux服务器为例,有多种方式可以把本地的文件上传到服务器。1、sz/rz文件互传sz/rz是Linux下的命令行工具,用于文件传输,需要安装使用crt登录上Linux后,在Linux命令行中输入rz或者szrz用于把本地文件传输到Linux服务器,运行rz后会弹出一个窗口,选择需要上传的文件sz filename,即可把Linux系统下的文件名为filename的文件下载到Win本地,默认在download目录下,可能通过设置crt参数修改该方式也适用于嵌入式开发,通过minicom连接到开发板后,执行相应的命令把本地编译生成的可执行文件传输和下载上传:执行rz,按ctrl+a, s键,选择zmodem,用回车键确认,用空格选择主机要发送的文件,用回车键确认,传输完成后按任意键返回下载,执行sz filename,把开发板上filename文件下载到本地2、sftp文件互传sftp是SSH File Transfer Protocol的缩写,安全文件传送协议,是一个交互式文件传输程式sftp 与 ftp 有着几乎一样的语法和功能,但它进行加密传输,比FTP有更高的安全性SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序一般在win上运行sftp.exe的服务器程序,在Win上运行sftp服务端程序sftp username@remote ip(or remote host name),输入密码,登入成功后终端呈现出:sftp>在sftp的环境下的操作就和一般ftp的操作类似了,ls,rm,mkdir,dir,pwd,等指令都是对远端进行操作,如果要对本地操作,只需在上述的指令上加‘l’变为:lls,lcd, lpwd等put /path/filename(本地主机) /path/filename(远端主机),把本地文件上传至远程主机get /path/filename(远端主机) /path/filename(本地主机),把文件从远程主机下载到本地主机3、WinscpWinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端,支持scp协议在Win系统中安装即可,提供界面易于操作,与Windows集成较好,可以使用拖拽传输文件更多介绍参考 https://winscp.net/eng/docs/lang:chs4、磁盘驱动器映射在Linux服务器上安装samba服务,提供在局域网上共享文件和打印机的一种通信协议进行必要的配置在Win系统上增加网络磁盘映射完成后,即可在Win系统上以磁盘/文件夹的方式打开Linux系统上文件,拷贝也完全和Win系统下一样5、Win虚拟机如果使用WMware虚拟机安装了Linux,需要安装WMware tools工具,然后就可以在Win和Linux虚拟机之间拖拽文件了Linux向Linux传递文件以上介绍的第1、2种方式也适用于Linux系统间共享文件,除此之处,还有Linux系统中自带的一些工具。1、scp传输文件secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令scp local_file remote_username@remote_ip:remote_folder即可把本地local_file发送到远程主机的remote_folder目录下nfs(Network File Service)NFS用于Linux系统之间的文件共享安装nfs服务软件并进行配置客户端使用mount 主机IP:/home/yourname/sharedir ~/nfsshare连接主机总结文件传输是通信方式的一种,不管是什么样的系统或是不同的主机之间,共享文件是基本的需求之一。共享文件的方式也是多种多样,它们在易用性、安全性和可靠性方面各有特点,可以根据自己的需求灵活选择。转载自:Windows与Linux文件互传的几种方式
  • [技术讨论] NVMe硬盘挂载教程
    NVMe硬盘挂载教程华为TaiShan服务器,如有配置NVMe硬盘的。请注意,NVMe硬盘不与机器所带RAID卡相连。而是直接与主板相连接,CPU直接纳管。所以会出现RAID卡无法识别NVMe硬盘的情况。但客户需求,NVMe硬盘同样需要规划RAID方案。这里就讲述怎么配置软RAID方案。大致分为两个步骤:1、      首先安装系统层面的NVMe硬盘驱动,使系统可以识别到硬盘。2、      把识别到的NVMe硬盘做软RAID。 具体教程如下:一、安装NVMe硬盘驱动:1、      驱动为基于系统层面,所以,使用什么系统,就安装相应的系统层面针对该NVMe硬盘的驱动程序包。驱动说明:·         如果只使用ES3000 V5 NVMe PCIe SSD,不使用其他厂家的SSD,可以使用操作系统自带的NVMe驱动(不需要安装华为NVMe驱动),也可以安装并使用华为NVMe驱动(操作步骤请参见安装驱动软件)。·         如果在Linux系统下既使用ES3000 V5 NVMe PCIe SSD又使用其他厂家的SSD,请使用操作系统自带的NVMe驱动(不需要安装华为NVMe驱动)。·         如果Linux系统已安装华为NVMe驱动,又需要使用其他厂家的SSD,请卸载华为NVMe驱动。·         Windows 2008R2或Windows 2012操作系统如果安装过补丁号为“KB2990941”的补丁,则操作系统有自带的NVMe驱动,此时如果想安装华为NVMe驱动,需要先卸载“KB2990941”补丁。具体操作步骤请参见Windows系统下安装ES3000 V5驱动软件。·         其他有自带NVMe驱动的操作系统包括:§  Windows Server 2012R2及以上版本§  ESXi 6.0及以上版本§  RHEL 6.5及以上版本§  CentOS 6.5及以上版本§  OEL 6.5及以上版本§  Ubuntu 14.04及以上版本§  SLES 11SP4及以上版本本次现场环境配置为三星的两块300G SSD硬盘做系统盘和三块NVMe硬盘,3.2T。中标麒麟7.5系统。所以不能使用华为驱动,得使用中标麒麟7.5的关于NVMe驱动包。下一步,安装驱动包即可。教程链接如下:https://support.huawei.com/enterprise/zh/doc/EDOC1100030814?idPath=7919749%7C9856522%7C22892968%7C23710429%7C22936194经现场测试验证,中标麒麟7.5系统,自带NVMe驱动,不用另外安装。可以直接识别到NVMe硬盘。 二、把识别到的NVMe硬盘做软RAID。1、      linux硬盘分区、格式化、挂载有两种方案(fdisk/parted),fdisk适用于硬盘容量在2T以下,硬盘模式为MBR模式。Parted适用于硬盘容量大于2T,硬盘模式为GPT模式。2、      本次NVMe硬盘位3.2T。所以使用Parted方案。首先使用“fdisk -l”回车命令查看系统里面识别到的硬盘和分区的信息,可以看到里面有三块硬盘以及相应的磁盘大小,扇区,分区情况,截图如下:4、      输入“parted”回车调出parted工具,或者直接输入 parted /dev/nvme0n1。直接进入nvme0n1的盘符下操作。5、      输入“mklabel GPT”并回车,选择此块硬盘的分区表类型为“GPT”,截图如下:6、      输入“print”命令回车,查看下单亲的硬盘分区表详情,这里可以看到分区表类型已经为GPT7.同样的方式重复以上4-6步,把另外两块盘也都改为GPT模式。“select /dev/nvme1n1”可以切换到第二张盘。8、      可以输入“print all”命令,查看所有磁盘的分区表类型,截图如下:9、      接下来就开始正式的分区操作,在parted里,输入“mkpart”并回车,截图如下:10、   系统界面提示输入分区名称,分区名称相当于windows系统中的磁盘的卷标,这里可写也可不写。默认就行。11、   系统界面提示输入文件系统类型,默认的类型为“ext2”,可以根据个人需求更改,这里我写的是“ext4”。截图如下:12、   紧接着系统界面提示输入起始点,因为添加的是一块新盘,所以这里输入0后回车,截图如下:13、   同上,系统界面提示输入结束点,可以按照个人需求填写,这里输入“3200000”,注意,这个数字的单位是MB。因为我的盘3.2T。所以我写3200000。截图如下:14、   下一步输入“Ignore”。15、   完成所有分区后,重新使用“print”命令来查看目前硬盘的分区表情况,确定无误后,紧接着输入“quit”,完成分区。注意:这里不需要额外输入“W”操作进行写入并保存。16、   然后输入“print all”,做一遍检查。17、   输入quit,退出。18、   至此,分区做完,下一步,创建Raid。19、   创建raid5,使用三块盘做数据盘。20、   mdadm -C -v /dev/md0 -l5 -n3 /dev/nvme0n1p1 /dev/nvme1n1p1 /dev/nvme2n1p1,其中C表示创建,v表示细节,新分区的设备号是md0,l5表示创建的raid5,n3表示3个数据盘。截图所示:21、   下一步,格式化阵列,分完区后还要格式化阵列,不然写不了数据,mkfs -t ext4 /dev/md0,格式化为ext4格式22、   格式化完成后,把这个raid5挂载到某个目录下正常使用。23、   查看raid信息,cat /proc/mdstat24、   设置挂在点开机自启动。vi /etc/fstab25、   设置完之后,重启系统试一下效果。
  • [技术干货] Linux下删除过期日志文件
    使用前将工具包拖到/opt目录下即可写一个脚本文件,将以下内容复制进去,使用source或者. 执行脚本#!/bin/bashmount /dev/cdrom /mnt &> /dev/nullecho "---正在安装环境依赖包---"yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmakeecho "---正在配置软件模块---"cd /opttar zxvf mysql-5.7.17.tar.gztar zxvf boost_1_59_0.tar.gzcd /optmv boost_1_59_0 /usr/local/boost cd /opt/mysql-5.7.17/cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/usr/local/mysql \-DDEFAULT_CHARSET=utf8  \-DDEFAULT_COLLATION=utf8_general_ci \-DWITH_EXTRA_CHARSETS=all \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/usr/local/mysql/data \-DWITH_BOOST=/usr/local/boost \-DWITH_SYSTEMD=1echo "---编译安装中---"make && make installecho "---创建mysql用户---"useradd -M -s /sbin/nologin  mysqlecho "---修改mysql 配置文件---"echo '[client]port = 3306socket=/usr/local/mysql/mysql.sock[mysqld]user = mysqlbasedir=/usr/local/mysqldatadir=/usr/local/mysql/dataport = 3306character-set-server=utf8pid-file = /usr/local/mysql/mysqld.pidsocket=/usr/local/mysql/mysql.sockbind-address = 0.0.0.0skip-name-resolvemax_connections=2048default-storage-engine=INNODBmax_allowed_packet=16Mserver-id = 1sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES' > /etc/my.cnfecho "---更改mysql安装目录和配置文件的属主属组---"chown -R mysql:mysql /usr/local/mysql/chown mysql:mysql /etc/my.cnfecho "---设置路径环境变量---"echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile source /etc/profileecho "---正在初始化数据库---"cd /usr/local/mysql/bin/./mysqld \--initialize-insecure \--user=mysql \--basedir=/usr/local/mysql \--datadir=/usr/local/mysql/dataecho "---添加mysqld系统服务---"cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ systemctl daemon-reload              systemctl start mysqld.service  systemctl enable mysqld         netstat -anpt | grep 3306       echo "---修改mysql的登录密码---"mysqladmin -u root -p password "123456"echo "初始密码已设为:123456"echo "---正在登录---"mysql -uroot -p123456
  • [新手课堂] linux文件时间戳
    在命令行中,用stat查看文件的状态信息如图所示,会出现3个类型的时间,分别是Access,Modify,Change。access time:表示最后一次访问(仅仅是访问,没有改动)文件的时间。modify time:表示最后一次修改文件的时间。change time:表示最后一次对文件属性(metadata)改变的时间,包括权限,大小,属性等等。当我们仅访问文件(cat、cp)时,access time 改变,而modify time ,change time 不会改变。当修改文件内容(vim)时,modify time改变,一般都会修改access time和change time。当修改文件权限属性(chmod)时,change time 改变,而access time ,modify time 不会改变。我们可以使用touch命令修改这些时间戳,如:touch -d 1999-01-01 a.txt // 将a.txt的Access和Modify时间改为1999-01-01 touch -a a.txt // 只将a.txt的Access时间改为当前系统时间 touch -m a.txt // 只将a.txt的Modify时间改为当前系统时间
  • [安装经验] 在Linux上体验源码编译安装MindSpore GPU版本
    # 在Linux上体验源码编译安装MindSpore GPU版本 接触到MindSpore深度学习框架快一年了,作为一名AI框架深度业余爱好者,经常使用开源社区主流的框架来进行一些简单的图像识别、自然语言处理。第一次接触到MindSpore深度学习框架还是在去年5月份,偶然打开了[MindSpore官网教程主页](https://www.mindspore.cn/tutorial/training/zh-CN/master/index.html),发现官网提供了大量的使用案例,跟着这些案例循序渐进的学习,现在已经基本掌握使用MindSpore用于训练和推理。最近学习到使用MindSpore自定义GPU算子,正好手上收获一台带GPU的主机,本着物尽其用的原则,尝试着根据官方安装指南进行了编译安装MindSpore GPU版本,期间笔者历经数难,总算最后编译好了。官方提供的安装指南中针对第三方库的安装描述不够详细,幸好笔者有随手记的好习惯,将整个编译和安装过程记录了下来,希望能帮到更多的朋友。 ## 确认系统环境信息 首先要注意的是,需要具有sudo权限的用户进行编译安装全流程。 ### 安装Ubuntu 18.04是64位操作系统 1. 确认系统版本号,在终端输入命令`lsb_release -a`: ```bash $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.5 LTS Release: 18.04 Codename: bionic ``` 2. 确认系统位数,在终端中输入命令`uname -a`: ```bash $ uname -a Linux ms-gpu 5.4.0-56-generic #62~18.04.1-Ubuntu SMP Tue Nov 24 10:07:50 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux ``` 可以知道我的主机系统是满足要求的,接下来安装gcc。 ### 安装GCC 7.3.0版本 首先执行以下命令,安装所需基础依赖包: ```bash sudo apt-get install -y build-essential m4 libgmp-dev libmpfr-dev libmpc-dev ``` 1. 查看本机gcc版本,执行命令`gcc --version`: ```bash $ gcc --version gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ``` 由输出可知,安装的gcc版本为7.5.0。 若没有安装gcc,则执行以下命令安装gcc: ```bash sudo apt install gcc ``` 由于gcc在本机上是7.5.0版本,官方指南要求是7.3.0版本,我需要编译安装gcc 7.3.0版本。 2. 下载gcc 7.3.0版本安装包,执行以下命令: ```bash wget http://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz ``` 3. 执行`tar -xzf gcc-7.3.0.tar.gz`解压源码包。 4. 执行编译安装。 查看解压后的gcc源码包: ```bash $ ls gcc-7.3.0 ABOUT-NLS config.log COPYING gcc LAST_UPDATED libdecnumber libiberty libssp lt~obsolete.m4 Makefile.def move-if-change ChangeLog config-ml.in COPYING3 gnattools libada libffi libitm libstdc++-v3 lto-plugin Makefile.in NEWS ChangeLog.jit config.rpath COPYING3.LIB gotools libatomic libgcc libmpx libtool-ldflags ltoptions.m4 Makefile.tpl README ChangeLog.tree-ssa config.sub COPYING.LIB include libbacktrace libgfortran libobjc libtool.m4 ltsugar.m4 MD5SUMS symlink-tree compile configure COPYING.RUNTIME INSTALL libcc1 libgo liboffloadmic libvtv ltversion.m4 missing ylwrap config configure.ac depcomp install-sh libcilkrts libgomp libquadmath ltgcc.m4 MAINTAINERS mkdep zlib config.guess contrib fixincludes intl libcpp libhsail-rt libsanitizer ltmain.sh maintainer-scripts mkinstalldirs ``` 执行`cd gcc-7.3.0`,进入到源码包目录。 1. 运行以下命令,进行安装前的配置。 ```bash ./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib ``` 其中: - `enable-checking=release`为增加一些检查 - `enable-languages=c,c++`为gcc支持的编程语言 - `disable-multilib`为取消多目标库编译(取消32位库编译) 2. 运行以下命令进行编译安装gcc 7.3.0。 ```bash make -j 12 && sudo make install -j 12 ``` 其中,参数`-j 12`表示开启12线程进行编译和安装,后续步骤同理,你可以根据自己的cpu性能设置合适的数值。 3. 执行以下命令,将gcc 7.3.0链接为默认gcc版本: ```bash sudo ln -sf /usr/local/gcc/bin/gcc /usr/bin/gcc ``` 4. 执行`gcc --version`,若输出结果为以下内容,则成功安装gcc 7.3.0 ```bash $ gcc --version gcc (GCC) 7.3.0 Copyright © 2017 Free Software Foundation, Inc. 本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保; 包括没有适销性和某一专用目的下的适用性担保。 ``` 至此,已经完成gcc 7.3.0的安装,接下来继续安装gmp。 ### 安装gmp 6.1.2 1. 下载`gmp 6.1.2`源码包: ```bash wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz ``` 2. 运行命令`tar -JXf gmp-6.1.2.tar.xz`解压gmp源码包。 3. 进入到解压后的目录,执行命令`./configure`进行配置: 4. 执行以下命令安装gmp。 ```bash make -j 12 && sudo make install -j 12 ``` 完成了gmp安装后要继续安装NVIDA驱动了。 ### 安装NVIDIA驱动 首先看一下显卡驱动列表,执行`sudo apt-get install ubuntu-drivers-common`安装`ubuntu-driver`,安装完后执行`ubuntu-drivers devices`,查看显卡所支持的驱动: ![nvdia-driver.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/153359bmx6zy4bo8peuxuy.png) 由输出结果可知,需安装驱动版本为nvidia-driver-450,执行以下命令安装: ```bash sudo apt-get install -y nvidia-driver-450 ``` 执行`nvdia-smi`验证,成功安装后显示如下结果: ![nvdia-driver_2.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/153445h9gizbjz0ua8imtp.png) 此时,GPU驱动已经安装完成了,接下来需要安装openssl。 ### 安装OpenSSL 1.1.1 我选择安装openssl 1.1.1版本。 1. 下载`openssl 1.1.1`源码包: ```bash wget https://github.com/openssl/openssl/archive/OpenSSL_1_1_1g.tar.gz ``` 2. 运行命令`tar -xzf penSSL_1_1_1g.tar.gz`解压gmp源码包。 3. 进入到解压后的目录,执行命令`./config --prefix=/usr/local/openssl`进行配置: 4. 执行以下命令安装openssl。 ```bash make -j 12 && sudo make install -j 12 ``` 5. 安装完成后设置环境变量`export OPENSSL_ROOT_DIR=/usr/local/openssl`,并添加到`~/.bashrc`文件的末尾。 安装完openssl后继续安装Python 3.7.5。由于MindSpore只支持Python 3.7.5,我选择用源码进行编译安装。 ### 安装Python 3.7.5版本 编译安装Python前需要先安装必要的基础依赖,首先执行以下命令,安装所需的依赖包: ```bash sudo apt-get install -y libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget \ curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev python-openssl ``` 编译安装Python步骤如下: 1. 下载`Python 3.7.5`源码包: ```bash wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz ``` 2. 执行命令`tar -xzf Python-3.7.5.tgz`解压源码包。 3. 进入解压后的源码包目录,执行以下命令进行安装配置: ```bash ./configure --prefix=/usr/local/python3.7.5 --with-openssl=/usr/local/openssl --enable-shared ``` 其中: - `--prefix=/usr/local/python3.7.5`为安装路径 可执行文件放在/usr/local/python3.7.5/bin下。 库文件放在/usr/local/python3.7.5/lib。 配置文件放在/usr/local/python3.7.1/include。 其他资源文件放在/usr/local/python3.7.5下。 - `--with-openssl`为确保pip安装库时能找到SSL,配置为上步中openssl安装目录`/usr/local/openssl`。 4. 执行命令`make -j 12 &amp;amp;&amp;amp; sudo make install -j 12`编译安装Python 3.7.5。 5. 将Python 3.7.5添加到环境变量中: - 执行命令`vim ~/.bashrc`编辑`~/.bashrc`文件,将以下命令追加到末尾处: ```bash export PATH=/usr/local/python3.7.5/bin:{user_home_path}/.local/bin:$PATH ``` 其中,`{user_home_path}`替换为当前登录用户的主目录。 - 执行以下命令使python默认指向Python3.7.5: ```bash ln -sf /usr/local/python3.7.5/bin/python3 /usr/bin/python ln -sf /usr/local/python3.7.5/bin/python3 /usr/bin/python3 ``` 6. 执行`source ~/.bashrc`,刷新环境变量,执行`python3.7 --version`验证安装,输出如下结果则成功安装python 3.7.5。 ```bash $ python --version Python 3.7.5 ``` 7. 替换pip源。 新建`~/.pip/pip.conf`文件,添加以下内容: ```text [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple ``` 8. 更新pip,执行: ```bash python -m pip install --upgrade pip ``` 执行命令`pip --version`,输出以下结果则完成安装。 ```bash $ pip --version pip 21.0.1 from /usr/local/python3.7.5/site-packages/pip (python 3.7) ``` 自此,Python安装已经完成了,接下来进行cmake的安装,还是选择编译安装。 ### 安装CMake 3.18.3 1. 下载`cmake 3.18.3`源码包: ```bash wget https://cmake.org/files/v3.18/cmake-3.18.3.tar.gz ``` 2. 运行命令`tar -xzf cmake-3.18.3.tar.gz`解压cmake源码包。 3. 进入到解压后的目录,执行`./bootstrap`进行安装配置。 4. 最后执行以下命令安装cmake 3.18.3。 ```bash make -j 12 && sudo make install -j 12 ``` 安装过程如下图所示: ![cmake_make_install.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/1535403ucglwfgfonanxdb.png) 安装结束时截图: ![cmake_make_sucess.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/153610mxgiudn6xkex71tn.png) 5. 验证安装是否成功,执行以下命令显示如下结果: ```bash $ cmake --version cmake version 3.18.3 CMake suite maintained and supported by Kitware (kitware.com/cmake). ``` 确认完成安装cmake后接着安装patch。 ### 安装patch 2.6 1. 下载`patch 2.6`源码包: ```bash wget http://ftp.gnu.org/gnu/patch/patch-2.6.tar.gz ``` 2. 运行命令`tar -xzf patch-2.6.tar.gz`解压patch源码包。 3. 进入到解压后的目录,执行命令`./configure`进行配置: 4. 执行以下命令安装`patch 2.6`。 ```bash make -j 12 && sudo make install -j 12 ``` 5. 验证安装是否成功,执行以下命令显示如下结果: ```bash $ patch --version patch 2.6 Copyright (C) 1988 Larry Wall Copyright (C) 2003 Free Software Foundation, Inc. This program comes with NO WARRANTY, to the extent permitted by law. You may redistribute copies of this program under the terms of the GNU General Public License. For more information about these matters, see the file named COPYING. written by Larry Wall and Paul Eggert ``` 验证安装完后接着安装autoconf。 ### 安装Autoconf 2.70 1. 下载`autoconf-2.70`源码包: ```bash wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.70.tar.gz ``` 2. 运行命令`tar -xzf autoconf-2.70.tar.gz`解压autoconf源码包。 3. 进入到解压后的目录,执行命令`./configure`进行配置: 4. 执行以下命令安装`autoconf-2.70`。 ```bash make -j 12 && sudo make install -j 12 ``` 5. 验证安装是否成功,执行以下命令显示如下结果: ```bash $ autoconf --version autoconf (GNU Autoconf) 2.70 Copyright (C) 2020 Free Software Foundation, Inc. License GPLv3+/Autoconf: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>, <https://gnu.org/licenses/exceptions.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by David J. MacKenzie and Akim Demaille. ``` 接下来是安装libtool-2.4.6。 ### 安装Libtool 2.4.6-29.fc30 1. 下载`libtool-2.4.6`源码包: ```bash wget https://ftpmirror.gnu.org/libtool/libtool-2.4.6.tar.gz ``` 2. 运行命令`tar -xzf libtool-2.4.6.tar.gz`解压libtool源码包。 3. 进入到解压后的目录,执行命令`./configure`进行配置: 4. 执行以下命令安装`libtool-2.4.6`。 ```bash make -j 12 && sudo make install -j 12 ``` 5. 验证安装是否成功,执行以下命令显示如下结果: ```bash $ libtool --version libtool (GNU libtool) 2.4.6 Written by Gordon Matzigkeit, 1996 Copyright (C) 2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ``` 没报错,就继续安装automake。 ### 安装Automake 1.16 1. 下载`automake-1.16`源码包: ```bash wget http://ftp.gnu.org/gnu/automake/automake-1.16.tar.gz ``` 2. 运行命令`tar -xzf automake-1.16.tar.gz`解压automake源码包。 3. 进入到解压后的目录,执行命令`./configure`进行配置: 4. 执行以下命令安装`automake-1.16`。 ```bash make -j 12 && sudo make install -j 12 ``` 5. 验证安装是否成功,执行以下命令显示如下结果: ```bash $ automake --version automake (GNU automake) 1.16 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv2+: GNU GPL version 2 or later <https://gnu.org/licenses/gpl-2.0.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Tom Tromey <tromey@redhat.com> and Alexandre Duret-Lutz <adl@gnu.org>. ``` 接下来继续安装flex。 ### 安装Flex 2.6.4 1. 下载`flex-2.6.4`源码包: ```bash wget https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz ``` 2. 运行命令`tar -xzf flex-2.6.4.tar.gz`解压gmp源码包。 3. 进入到解压后的目录,执行命令`./configure`进行配置: 4. 执行以下命令安装`flex-2.6.4`。 ```bash make -j 12 && sudo make install -j 12 ``` 5. 验证安装是否成功,执行以下命令显示如下结果: ```bash $ flex --version flex 2.6.4 ``` ### 安装wheel 0.32.0 执行命令`pip install wheel==0.32.0`安装wheel。 根据官网安装指南看到编译过程中需要使用到cuda套件和cudnn库,接下来是安装cuda和cudnn。 ### 安装CUDA 10.1按默认配置安装 1. 打开链接<https://developer.nvidia.com/cuda-10.1-download-archive-base?>,选择如下图所示的版本,下载cuda 10.1安装包: ![cuda.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/153714lcoqfembve83hxvs.png) 2. 执行`sudo chmod +x ./cuda_10.1.105_418.39_linux.run`赋予权限。 3. 执行 `sudo ./cuda_10.1.105_418.39_linux.run`,根据提示进行安装。 1. 此时窗口弹出安装提示,输入`accept`回车确认: ![cuda_1.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/153726ytm52bjyoe5oce9m.png) 2. 弹出安装选项,仅选择`Install`,回车确认: ![cuda_2.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/153734xlduow2odu0pz6zb.png) 3. 若之前安装过CUDA且未完全卸载,则弹出如下提示,选择`Upgrade All`,回车确认: ![cuda_3.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/1537433iqo7zkzow3dwdlk.png) 4. 验证安装完成: ```bash $ nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2019 NVIDIA Corporation Built on Fri_Feb__8_19:08:17_PST_2019 Cuda compilation tools, release 10.1, V10.1.105 ``` 完成了cuda的安装,下面安装cudnn。 ### 安装cuDNN 7.6 1. 下载`cudnn`源码包: 1. 浏览器打开链接:<https://developer.nvidia.com/zh-cn/cudnn>,点击 ![cudnn_page.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/153759hqc5vwgbpaebmqer.png) 2. 下载之前需要登陆,点击Login登录: ![cudnn_page_login.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/153817nklnazh5w1evesry.png) 3. 根据提示进行注册或者登录. 4. 登录之后跳转到下载链接: ![cudnn_download.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/153828q60eeqxfiyhsptfd.png) 5. 获取到Linux-x86_64平台且支持cuda10.1版本的链接。 ```bash wget https://developer.nvidia.com/compute/machine-learning/cudnn/secure/7.6.5.32/Production/10.1_20191031/Ubuntu18_04-x64/libcudnn7-dev_7.6.5.32-1%2Bcuda10.1_amd64.deb ``` 2. 现在完成后,运行命令`sudo apt-get install libcudnn7-dev_7.6.5.32-1+cuda10.1_amd64.deb`进行安装。 此时,已经安装好了cuda和cudnn,继续安装剩下的openmpi。 ### 安装OpenMPI 4.0.3版本 1. 下载`openmpi-4.0.3`源码包: ```bash wget https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.3.tar.gz ``` 2. 运行命令`tar -xzf openmpi-4.0.3.tar.gz`解压gmp源码包。 3. 进入到解压后的目录,执行命令`./configure`进行配置: 4. 执行以下命令安装`openmpi-4.0.3`。 ```bash make -j 12 && sudo make install -j 12 ``` 5. 安装完成后执行`whereis openmpi`查看安装结果: ```bash $ whereis openmpi openmpi: /usr/local/lib/openmpi ``` 继续安装numa和git,这两个的安装过程比较简单。 ### 安装NUMA 2.0.11 1. 使用如下命令安装: ```bash sudo apt-get install libnuma-dev ``` 2. 安装完成后执行`whereis numa`查看安装结果: ```bash $ whereis numa numa: /usr/include/numa.h /usr/share/man/man3/numa.3.gz /usr/share/man/man7/numa.7.gz ``` ### 安装git工具 1. 使用如下命令安装: ```bash sudo apt-get install git ``` 2. 安装完成后执行`whereis numa`查看安装结果: ```bash $ git --version git version 2.17.1 ``` 此时,编译MindSpore所需用到的依赖环境已经全部准备好了,接下来就要进行编译whl包,首先将MindSpore仓库克隆到本地。 ## 克隆MindSpore源码仓库 在用户目录下新建MindSporeRepo目录,克隆mindspore源码仓库到该目录内,执行以下命令: ```bash git clone https://gitee.com/mindspore/mindspore.git -b r1.1 ``` ## 编译MindSpore 进入到上步中克隆的MindSpore源码目录,在源码根目录下执行如下命令进行编译: ```bash ./build.sh -e gpu ``` - 其中: build.sh中默认的编译线程数为8,如果编译机性能较差可能会出现编译错误,可在执行中增加-j{线程数}来减少线程数量。如: ```bash ./build.sh -e gpu -j4 ``` 执行的编译过程截了几张图: ![mindspore_install_1.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/153847hfvonrjuuxd6zd3h.png) ![mindspore_install_2.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/153856cbqfhvj9aduqnanr.png) ![mindspore_install_3.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/153906wfwjfvgfr17l7feu.png) ![mindspore_install_4.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/153915gste4pyszyxuaxbx.png) ![mindspore_install_5.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/153923m1d2ipqwnodrpomr.png) ![mindspore_install_6.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/153933ukceykvmomaev8zf.png) ![mindspore_install_7.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/153942ttoxmhtl4nkfrft0.png) ![mindspore_install_8.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/153951eivvuzimvmn0mg0w.png) ![mindspore_install_9.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/153958xlalxrcfd0me5gsc.png) ![mindspore_install_10.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/154005ksk4vkxrzevfqijb.png) 完成编译后,显示如下: ![mindspore_install_11.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/154014eesdcnwv2j2jcalu.png) 编译完成后生成的MindSpore WHL安装包路径为`build/package/mindspore_gpu-1.1.1-cp37-cp37m-linux_x86_64.whl`: ```bash $ ls package akg build dist mindspore mindspore_gpu-1.1.1-cp37-cp37m-linux_x86_64.whl mindspore_gpu.egg-info ``` 至此,经过漫长的等待之后,终于完成了耗时良久的编译过程了,不过离胜利还差一步,需要验证编译的包是否可用。 ## 安装MindSpore 执行以下命令,安装编译完成后输出的WHL包: ```bash chmod +x build/package/mindspore_gpu-1.1.1-cp37-cp37m-linux_x86_64.whl pip install build/package/mindspore_gpu-1.1.1-cp37-cp37m-linux_x86_64.whl ``` 安装过程如下图所示: ![mindspore_pip_1.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/154023gdqe1n34cnoqpxko.png) 成功安装后如下图所示: ![mindspore_pip_2.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/15403197ixlgzxor31ckxp.png) ## 验证是否成功安装 在官网安装指南找到验证的以下所示代码,执行`vim check.py`,输入以下示例代码并保存: ```python import numpy as np from mindspore import Tensor import mindspore.ops as ops import mindspore.context as context context.set_context(device_target="GPU") x = Tensor(np.ones([1,3,3,4]).astype(np.float32)) y = Tensor(np.ones([1,3,3,4]).astype(np.float32)) print(ops.tensor_add(x, y)) ``` 执行`python check.py`,输出如下内容: ![mindspore_verify.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202102/24/154041fwqmpmncgois2u6m.png) 根据输出可以判断,成功安装了MindSpore GPU版本,大功告成! ## 注意事项和总结 整个编译过程有几个地方折腾了笔者不少时间,也是容易导致编译过程报错最多的地方。经过多次尝试总结了以下3个要点,在编译过程中至关重要。 - 编译安装Python之前必须要安装基础依赖,在编译安装Python的时候已经阐述过。 - 如果在编译过程中出现报错,先确认gcc、Python、cmake安装是否正确,可以尝试重新安装gcc、cmake、NVIDIA驱动解决部分报错问题。 - 最好使用runfile格式的包安装cuda,使用默认的方式安装,安装deb格式的cudnn包,这样可以确保安装正确。 在以后继续深度地学习自定义算子的过程中,肯定需要自己动手执行编译过程,经过此次编译安装MindSpore过程,为下一步的学习MindSpore高级的应用打好了基础。
  • [问题求助] 华为云桌面客户端只有s和linux版本?没有mac版本?
    华为云桌面客户端只有windows和linux版本?没有mac版本?
  • [技术干货] SDC调测用数字证书申请以及说明
    以某SDC算法包为例说明合作伙伴调测时使用的数字证书申请,好望商城上商用的数字证书不在本帖的描述内。文件目录结构名为xxx-V1.0.1-1.aarch64.tar文件中包括如下图所示的3个文件,文件后缀为rpm、pem和asc。文件说明1、rpm文件由格式为wk的模型文件和二进制算法推理文件打包而成。2、cert.pem是合作伙伴的数字证书,由合作伙伴生成数字证书请求文件后,将请求文件发送给华为签发生成cert.pem数字证书。3、signature.asc文件是rpm包的签名文件,由合作伙伴生成数字证书请求文件时对应的私钥签署生成。调测用数字证书和签名文件生成方式:方式1:通过下面地址上传rpm包和摄像机硬件ID,生成调测证书文件和对应的数字签名文件。数字证书申请地址:https://marketplace.huaweicloud.com/markets/holosensstore/usercenter/developer_algorithm_sign.html数字证书申请帮助文档:https://marketplace.huaweicloud.com/markets/holosensstore/guide.html?uid=1-2-3-1方式2:手动生成数字证书和数字签名,示例如下文描述。cert.pem生成示例1、登录SDC获得设备的硬件ID,每个SDC的硬件ID不同,查询方法见下面链接:https://bbs.huaweicloud.com/forum/thread-99759-1-1.html2、执行下面示例命令,生成私钥以及对应的数字证书请求文件app_req_key.pem,如果伙伴公司已有私钥,可用私钥生成对应的请求文件即可,不用重新生成私钥。面示例命令中CN标识的字符串“B853E5BB07435720364DFBA4FB882C40”即为硬件ID,需根据实际值替换。示例命令root@localhost:~ >openssl req -new -newkey rsa:2048 -keyout app_priv_key.pem -passout pass:0123456789 -out app_req_key.pem -subj "/DC=www.PartnerCompanyName.com/CN=B853E5BB07435720364DFBA4FB882C40"命令说明:>openssl req -new -newkey rsa:2048 -keyout <私钥文件文件名> -passout pass:<私钥文件的加密密码> -out <数字证书申请文件文件名> -subj "/DC=<伙伴公司的唯一标识,建议为公司域名>/CN=<设备硬件ID>"请求文件查看示例:# openssl req -in app_req_key.pem -noout -text数字证书查看示例:# openssl x509 -in ./3rdcert.pem -noout -textsignature.asc签名文件生成示例1、执行下面命令,使用合作伙伴生成数字证书请求文件时对应的私钥以及私钥的密码签署root@localhost:~ >openssl dgst -sign app_priv_key.pem -sha256 -out signature.asc -hex -passin pass:0123456789 Yolov3-v1.0.0-1.aarch64.rpm数字证书和数字签名的目的1、SDC加载时使用设备的根证书验证伙伴的数字证书是否有效,如有效,则从数字证书中获取伙伴的公钥。2、使用伙伴公钥对rpm签名文件和rpm包进行校验,如校验通过则说明rpm是伙伴认证过的且未经篡改的。3、SDC对rpm执行加载。
  • [其他] 【升级】某局点在elk升级前执行补充rpm包命令时,其中一个节点报upgrade error,general error
    【问题描述】某局点在elk升级前执行补充rpm包命令时,其中一个节点报upgrade error,general error【分析过程】1、查看日志/tmp/fi-preinstall.log发现,失败节点报can not find /usr/local/diskmgt/ini-plugin/conf/datenode1.conf2、查看失败节点上对应目录下的文件缺失不存在datenode1.conf3、在将datanode1.conf重命名为datenode1.conf后,重新执行补包命令成功【规避方案】将失败节点上datanode1.conf重命名为datenode1.conf后,重新执行补包命令
  • [赋能学习] MRS3.0.2版本 二次开发(2/27): HDFS调用样例在linux环境下执行出错
    1,HDFS调用样例在linux环境下执行出错,提示如下:2,windows环境已经执行成功,输出:"C:\Program Files\Java\jdk1.8.0_261\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2020.2\lib\idea_rt.jar=59295:C:\Program Files\JetBrains\IntelliJ IDEA 2020.2\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_261\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_261\jre\lib\rt.jar;D:\huaweicloud-mrs-example-mrs-3.0.2\src\hdfs-example-security\target\classes;D:\MyMaven\org\apache\hadoop\hadoop-common\3.1.1-hw-ei-302002\hadoop-common-3.1.1-hw-ei-302002.jar;D:\MyMaven\org\apache\hadoop\hadoop-annotations\3.1.1-hw-ei-302002\hadoop-annotations-3.1.1-hw-ei-302002.jar;C:\Program Files\Java\jdk1.8.0_261\lib\tools.jar;D:\MyMaven\com\google\guava\guava\11.0.2\guava-11.0.2.jar;D:\MyMaven\commons-cli\commons-cli\1.2\commons-cli-1.2.jar;D:\MyMaven\org\apache\commons\commons-math3\3.1.1\commons-math3-3.1.1.jar;D:\MyMaven\org\apache\httpcomponents\httpclient\4.5.2\httpclient-4.5.2.jar;D:\MyMaven\org\apache\httpcomponents\httpcore\4.4.4\httpcore-4.4.4.jar;D:\MyMaven\commons-codec\commons-codec\1.14\commons-codec-1.14.jar;D:\MyMaven\commons-io\commons-io\2.5\commons-io-2.5.jar;D:\MyMaven\commons-net\commons-net\3.6\commons-net-3.6.jar;D:\MyMaven\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar;D:\MyMaven\javax\servlet\javax.servlet-api\3.1.0\javax.servlet-api-3.1.0.jar;D:\MyMaven\org\eclipse\jetty\jetty-server\9.4.20.v20190813\jetty-server-9.4.20.v20190813.jar;D:\MyMaven\org\eclipse\jetty\jetty-http\9.4.20.v20190813\jetty-http-9.4.20.v20190813.jar;D:\MyMaven\org\eclipse\jetty\jetty-io\9.4.20.v20190813\jetty-io-9.4.20.v20190813.jar;D:\MyMaven\org\eclipse\jetty\jetty-util\9.4.20.v20190813\jetty-util-9.4.20.v20190813.jar;D:\MyMaven\org\eclipse\jetty\jetty-servlet\9.4.20.v20190813\jetty-servlet-9.4.20.v20190813.jar;D:\MyMaven\org\eclipse\jetty\jetty-security\9.4.20.v20190813\jetty-security-9.4.20.v20190813.jar;D:\MyMaven\org\eclipse\jetty\jetty-webapp\9.4.20.v20190813\jetty-webapp-9.4.20.v20190813.jar;D:\MyMaven\org\eclipse\jetty\jetty-xml\9.4.20.v20190813\jetty-xml-9.4.20.v20190813.jar;D:\MyMaven\javax\servlet\jsp\jsp-api\2.1\jsp-api-2.1.jar;D:\MyMaven\com\sun\jersey\jersey-core\1.19\jersey-core-1.19.jar;D:\MyMaven\javax\ws\rs\jsr311-api\1.1.1\jsr311-api-1.1.1.jar;D:\MyMaven\com\sun\jersey\jersey-servlet\1.19\jersey-servlet-1.19.jar;D:\MyMaven\com\sun\jersey\jersey-json\1.19\jersey-json-1.19.jar;D:\MyMaven\org\codehaus\jettison\jettison\1.1\jettison-1.1.jar;D:\MyMaven\com\sun\xml\bind\jaxb-impl\2.2.3-1\jaxb-impl-2.2.3-1.jar;D:\MyMaven\org\codehaus\jackson\jackson-core-asl\1.9.2\jackson-core-asl-1.9.2.jar;D:\MyMaven\org\codehaus\jackson\jackson-mapper-asl\1.9.2\jackson-mapper-asl-1.9.2.jar;D:\MyMaven\org\codehaus\jackson\jackson-jaxrs\1.9.2\jackson-jaxrs-1.9.2.jar;D:\MyMaven\org\codehaus\jackson\jackson-xc\1.9.2\jackson-xc-1.9.2.jar;D:\MyMaven\com\sun\jersey\jersey-server\1.19\jersey-server-1.19.jar;D:\MyMaven\commons-logging\commons-logging\1.1.3\commons-logging-1.1.3.jar;D:\MyMaven\log4j\log4j\1.2.17-atlassian-13\log4j-1.2.17-atlassian-13.jar;D:\MyMaven\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;D:\MyMaven\commons-beanutils\commons-beanutils\1.9.4\commons-beanutils-1.9.4.jar;D:\MyMaven\org\apache\commons\commons-configuration2\2.1.1\commons-configuration2-2.1.1.jar;D:\MyMaven\org\apache\commons\commons-lang3\3.7\commons-lang3-3.7.jar;D:\MyMaven\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;D:\MyMaven\org\slf4j\slf4j-log4j12\1.7.30\slf4j-log4j12-1.7.30.jar;D:\MyMaven\org\apache\avro\avro\1.7.7\avro-1.7.7.jar;D:\MyMaven\com\thoughtworks\paranamer\paranamer\2.3\paranamer-2.3.jar;D:\MyMaven\org\xerial\snappy\snappy-java\1.0.5\snappy-java-1.0.5.jar;D:\MyMaven\com\google\re2j\re2j\1.1\re2j-1.1.jar;D:\MyMaven\com\google\protobuf\protobuf-java\2.5.0\protobuf-java-2.5.0.jar;D:\MyMaven\com\google\code\gson\gson\2.2.4\gson-2.2.4.jar;D:\MyMaven\org\apache\hadoop\hadoop-auth\3.1.1-hw-ei-302002\hadoop-auth-3.1.1-hw-ei-302002.jar;D:\MyMaven\com\nimbusds\nimbus-jose-jwt\7.9\nimbus-jose-jwt-7.9.jar;D:\MyMaven\com\github\stephenc\jcip\jcip-annotations\1.0-1\jcip-annotations-1.0-1.jar;D:\MyMaven\net\minidev\json-smart\2.3\json-smart-2.3.jar;D:\MyMaven\net\minidev\accessors-smart\1.2\accessors-smart-1.2.jar;D:\MyMaven\org\ow2\asm\asm\5.0.4\asm-5.0.4.jar;D:\MyMaven\org\apache\curator\curator-framework\4.2.0\curator-framework-4.2.0.jar;D:\MyMaven\com\jcraft\jsch\0.1.54\jsch-0.1.54.jar;D:\MyMaven\org\apache\curator\curator-client\4.2.0\curator-client-4.2.0.jar;D:\MyMaven\org\apache\curator\curator-recipes\4.2.0\curator-recipes-4.2.0.jar;D:\MyMaven\com\google\code\findbugs\jsr305\3.0.0\jsr305-3.0.0.jar;D:\MyMaven\org\apache\htrace\htrace-core4\4.2.0-incubating-hw-1.0.0\htrace-core4-4.2.0-incubating-hw-1.0.0.jar;D:\MyMaven\org\apache\zookeeper\zookeeper\3.5.6-hw-ei-302002\zookeeper-3.5.6-hw-ei-302002.jar;D:\MyMaven\org\apache\zookeeper\zookeeper-jute\3.5.6-hw-ei-302002\zookeeper-jute-3.5.6-hw-ei-302002.jar;D:\MyMaven\org\apache\yetus\audience-annotations\0.5.0\audience-annotations-0.5.0.jar;D:\MyMaven\io\netty\netty-handler\4.1.48.Final\netty-handler-4.1.48.Final.jar;D:\MyMaven\io\netty\netty-common\4.1.48.Final\netty-common-4.1.48.Final.jar;D:\MyMaven\io\netty\netty-resolver\4.1.48.Final\netty-resolver-4.1.48.Final.jar;D:\MyMaven\io\netty\netty-buffer\4.1.48.Final\netty-buffer-4.1.48.Final.jar;D:\MyMaven\io\netty\netty-transport\4.1.48.Final\netty-transport-4.1.48.Final.jar;D:\MyMaven\io\netty\netty-codec\4.1.48.Final\netty-codec-4.1.48.Final.jar;D:\MyMaven\io\netty\netty-transport-native-epoll\4.1.48.Final\netty-transport-native-epoll-4.1.48.Final.jar;D:\MyMaven\io\netty\netty-transport-native-unix-common\4.1.48.Final\netty-transport-native-unix-common-4.1.48.Final.jar;D:\MyMaven\org\apache\commons\commons-compress\1.4.1\commons-compress-1.4.1.jar;D:\MyMaven\org\tukaani\xz\1.0\xz-1.0.jar;D:\MyMaven\org\apache\kerby\kerb-simplekdc\1.0.1\kerb-simplekdc-1.0.1.jar;D:\MyMaven\org\apache\kerby\kerb-client\1.0.1\kerb-client-1.0.1.jar;D:\MyMaven\org\apache\kerby\kerby-config\1.0.1\kerby-config-1.0.1.jar;D:\MyMaven\org\apache\kerby\kerb-core\1.0.1\kerb-core-1.0.1.jar;D:\MyMaven\org\apache\kerby\kerby-pkix\1.0.1\kerby-pkix-1.0.1.jar;D:\MyMaven\org\apache\kerby\kerby-asn1\1.0.1\kerby-asn1-1.0.1.jar;D:\MyMaven\org\apache\kerby\kerby-util\1.0.1\kerby-util-1.0.1.jar;D:\MyMaven\org\apache\kerby\kerb-common\1.0.1\kerb-common-1.0.1.jar;D:\MyMaven\org\apache\kerby\kerb-crypto\1.0.1\kerb-crypto-1.0.1.jar;D:\MyMaven\org\apache\kerby\kerb-util\1.0.1\kerb-util-1.0.1.jar;D:\MyMaven\org\apache\kerby\token-provider\1.0.1\token-provider-1.0.1.jar;D:\MyMaven\org\apache\kerby\kerb-admin\1.0.1\kerb-admin-1.0.1.jar;D:\MyMaven\org\apache\kerby\kerb-server\1.0.1\kerb-server-1.0.1.jar;D:\MyMaven\org\apache\kerby\kerb-identity\1.0.1\kerb-identity-1.0.1.jar;D:\MyMaven\org\apache\kerby\kerby-xdr\1.0.1\kerby-xdr-1.0.1.jar;D:\MyMaven\com\fasterxml\jackson\core\jackson-databind\2.10.3\jackson-databind-2.10.3.jar;D:\MyMaven\com\fasterxml\jackson\core\jackson-annotations\2.10.3\jackson-annotations-2.10.3.jar;D:\MyMaven\com\fasterxml\jackson\core\jackson-core\2.10.3\jackson-core-2.10.3.jar;D:\MyMaven\org\codehaus\woodstox\stax2-api\3.1.4\stax2-api-3.1.4.jar;D:\MyMaven\com\fasterxml\woodstox\woodstox-core\5.0.3\woodstox-core-5.0.3.jar;D:\MyMaven\org\apache\hadoop\hadoop-client\3.1.1-hw-ei-302002\hadoop-client-3.1.1-hw-ei-302002.jar;D:\MyMaven\org\apache\hadoop\hadoop-hdfs-client\3.1.1-hw-ei-302002\hadoop-hdfs-client-3.1.1-hw-ei-302002.jar;D:\MyMaven\com\squareup\okhttp\okhttp\2.7.5\okhttp-2.7.5.jar;D:\MyMaven\com\squareup\okio\okio\1.6.0\okio-1.6.0.jar;D:\MyMaven\org\apache\hadoop\hadoop-yarn-api\3.1.1-hw-ei-302002\hadoop-yarn-api-3.1.1-hw-ei-302002.jar;D:\MyMaven\javax\xml\bind\jaxb-api\2.2.11\jaxb-api-2.2.11.jar;D:\MyMaven\org\apache\hadoop\hadoop-yarn-client\3.1.1-hw-ei-302002\hadoop-yarn-client-3.1.1-hw-ei-302002.jar;D:\MyMaven\org\apache\hadoop\hadoop-mapreduce-client-core\3.1.1-hw-ei-302002\hadoop-mapreduce-client-core-3.1.1-hw-ei-302002.jar;D:\MyMaven\org\apache\hadoop\hadoop-yarn-common\3.1.1-hw-ei-302002\hadoop-yarn-common-3.1.1-hw-ei-302002.jar;D:\MyMaven\com\sun\jersey\jersey-client\1.19\jersey-client-1.19.jar;D:\MyMaven\com\fasterxml\jackson\module\jackson-module-jaxb-annotations\2.10.3\jackson-module-jaxb-annotations-2.10.3.jar;D:\MyMaven\jakarta\xml\bind\jakarta.xml.bind-api\2.3.2\jakarta.xml.bind-api-2.3.2.jar;D:\MyMaven\jakarta\activation\jakarta.activation-api\1.2.1\jakarta.activation-api-1.2.1.jar;D:\MyMaven\com\fasterxml\jackson\jaxrs\jackson-jaxrs-json-provider\2.10.3\jackson-jaxrs-json-provider-2.10.3.jar;D:\MyMaven\com\fasterxml\jackson\jaxrs\jackson-jaxrs-base\2.10.3\jackson-jaxrs-base-2.10.3.jar;D:\MyMaven\org\apache\hadoop\hadoop-yarn-registry\3.1.1-hw-ei-302002\hadoop-yarn-registry-3.1.1-hw-ei-302002.jar;D:\MyMaven\dnsjava\dnsjava\2.1.7\dnsjava-2.1.7.jar;D:\MyMaven\org\apache\hadoop\hadoop-mapreduce-client-jobclient\3.1.1-hw-ei-302002\hadoop-mapreduce-client-jobclient-3.1.1-hw-ei-302002.jar;D:\MyMaven\org\apache\hadoop\hadoop-mapreduce-client-common\3.1.1-hw-ei-302002\hadoop-mapreduce-client-common-3.1.1-hw-ei-302002.jar;D:\MyMaven\org\apache\hadoop\hadoop-hdfs\3.1.1-hw-ei-302002\hadoop-hdfs-3.1.1-hw-ei-302002.jar;D:\MyMaven\org\eclipse\jetty\jetty-util-ajax\9.4.20.v20190813\jetty-util-ajax-9.4.20.v20190813.jar;D:\MyMaven\commons-daemon\commons-daemon\1.0.13\commons-daemon-1.0.13.jar;D:\MyMaven\io\netty\netty\3.10.6.Final\netty-3.10.6.Final.jar;D:\MyMaven\io\netty\netty-all\4.1.48.Final\netty-all-4.1.48.Final.jar;D:\MyMaven\org\fusesource\leveldbjni\leveldbjni-all\1.8\leveldbjni-all-1.8.jar;D:\MyMaven\com\huawei\mrs\hadoop-plugins\8.0.2-302002\hadoop-plugins-8.0.2-302002.jar" com.huawei.bigdata.hdfs.examples.HdfsExample1    [main] INFO  org.apache.hadoop.security.UserGroupInformation  - Login successful for user hdfsuser using keytab file user.keytab2    [main] INFO  com.huawei.hadoop.security.LoginUtil  - Login success!!!!!!!!!!!!!!852  [main] WARN  org.apache.hadoop.hdfs.shortcircuit.DomainSocketFactory  - The short-circuit local reads feature cannot be used because UNIX Domain sockets are not available on Windows.5940 [main] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to create path /user/hdfs-examples6504 [main] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to write.9045 [main] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to append.9585 [main] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - result is : hi, I am bigdata. It is successful if you can see me.I append this content.9585 [main] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to read.9637 [main] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to delete the file /user/hdfs-examples\test.txt9702 [main] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to delete path /user/hdfs-examples9810 [hdfs_example_1] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to create path /user/hdfs-examples/hdfs_example_19820 [hdfs_example_0] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to create path /user/hdfs-examples/hdfs_example_010136 [hdfs_example_1] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to write.10166 [hdfs_example_0] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to write.12858 [hdfs_example_1] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to append.12984 [hdfs_example_0] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to append.13094 [hdfs_example_1] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - result is : hi, I am bigdata. It is successful if you can see me.I append this content.13094 [hdfs_example_1] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to read.13139 [hdfs_example_1] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to delete the file /user/hdfs-examples/hdfs_example_1\test.txt13286 [hdfs_example_1] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to delete path /user/hdfs-examples/hdfs_example_113408 [hdfs_example_0] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - result is : hi, I am bigdata. It is successful if you can see me.I append this content.13409 [hdfs_example_0] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to read.13480 [hdfs_example_0] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to delete the file /user/hdfs-examples/hdfs_example_0\test.txt13525 [hdfs_example_0] INFO  com.huawei.bigdata.hdfs.examples.HdfsExample  - success to delete path /user/hdfs-examples/hdfs_example_0Process finished with exit code 0
  • [技术讨论] 应用软件移植流程
    应用软件移植流程软件开发语言 在linux下如果是解释型语言 可以移植在linux下如果是编译型语言(c c++)a)如果是自研软件 则需要增加人力重新编译后 移植b)如果是开源软件 则需要重新编译安装 (如果源码里有汇编语句 这部分需要重写) 然后移植c)如果是商用闭源软件 则需要商业合作重新编译 然后移植   如果不愿意合作 则考虑替代软件  (考虑X86和ARM混合部署方案)如果在windows下如果没有替代软件不能运行在ARM上 则考虑X86和ARM混合部署方案在Windows上的软件 有linux下可替代的软件 则替代后 移植
  • [典型案例] 【转】解决linux mysql命令 bash: mysql: command not found 的方法
    错误:root@DB-02 ~]# mysql -u root-bash: mysql: command not found原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/local/mysql/bin/mysql,我们则可以这样执行命令:# ln -s /usr/local/mysql/bin/mysql /usr/bin以下是补充:linux下,在mysql正常运行的情况下,输入mysql提示:mysql command not found遇上-bash: mysql: command not found的情况别着急,这个是因为/usr/local/bin目录下缺失mysql导致,只需要一下方法建立软链接,即可以解决:把mysql安装目录,比如MYSQLPATH/bin/mysql,映射到/usr/local/bin目录下: # cd /usr/local/bin# ln -fs /MYSQLPATH/bin/mysql mysql还有其它常用命令mysqladmin、mysqldump等不可用时候都可按用此方法解决。注:其中MYSQLPATH是mysql的实际安装路径转自:https://www.cnblogs.com/jr1260/p/6590860.html
  • [技术干货] 【转】Linux 查看进程之PS命令
     要对进程进行检测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程运行状态。Linux 系统中我们可以使用 ps 命令查看进程。      ps 命令介绍      ps(process status) 命令是 Linux 下最常用的进程查看工具,使用该命令可以确定哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等。      注意:ps 命令工具显示的是进程的瞬间状态,并不是动态连续显示,如果想对进程状态进行实时监控应该用 top 命令。       ps 命令的基本使用1.执行任何不加选项的 ps 命令[root@VM_81_181_centos ~]# ps  PID TTY          TIME CMD22402 pts/1    00:00:00 bash22447 pts/1    00:00:00 ps直接执行不加任何选项的 ps 命令时,则只显示当前用户会话中打开的进程。第一行为列表标题,包含基本四个字段,各个字段的含义描述如下:PID:表示该进程的唯一 ID 号TTY 或 TT:启动进程的终端名。表示该进程在哪个终端上运行。不是从终端启动的进程或与终端机无关的进程则显示为 ? TIME:该进程使用 CPU 的累计时间CMD:该进程所运行的命令2.使用标准语法 (Unix 风格) 查看各个进程选项:      -e:显示系统内所有进程的信息。与 -A 选项功能相同      -f:使用完整 (full) 的格式显示进程信息,如果只有 ps -e 则输出进程信息的格式和只使用 ps 一样      各字段含义如下:      UID:启动该进程的用户的 ID 号      PPID:代表该进程的父进程的 ID 号      C:进程的 CPU 处理器利用率      STIME/START:表示进程的启动时间      注意:也可以使用 ps -eF 命令查看系统内的所有进程信息,输出的进程信息比使用 ps -ef 多三个信息分别是:SZ,RSS,PSR 关于这三个感兴趣的可以自己上网查阅一下3.使用 BSD 语法查看系统上的进程信息    3.1 显示当前终端下的所有信息 a:显示当前终端下的所有进程信息,包含其他用户的进程信息。和 x 选项结合使用可以显示系统中所有进程的信息 x:显示当前用户在所有终端下的进程信息字段描述:STAT:表示进程的当前状态R:running,运行或可运行状态(在运行队列中)。正在运行或准备运行的进程。S:interruptable sleeping,可中断睡眠(等待事件完成)。正在睡眠的进程。D:uninterruptable sleeping,不可中断的睡眠进程(通常为IO)。T:stopped,停止或被追踪的进程。由作业控制信号停止。Z:zombie,失败终止的(“僵死”)进程。s:session leader,会话层状态。代表的父进程N:低优先级进程<:高优先级进程+:前台进程。在前台进程组中l:多线程进程。3.2 以面向用户的格式显示当前终端下的所有信息u:使用以用户为主的格式输出进程信息字段描述:USER:启动该进程的用户帐号名称%CPU:表示进程的 CPU 占用率%MEM:表示进程的内存占用率VSZ:表示进程虚拟内存的大小,以 KB 为单位4. 排序      当使用 aux 选项查看进程的 CPU 或内存使用量来筛选,从而方便找出占用资源最多的进程,但是默认情况下不排序,在这里我们可以使用 --sort 命令选项排序,例如:ps aux --sort=%mem 或 ps aux --sort %mem 这两条命令是一样的,也可以使用 ps aux --sort=+%mem 或 ps aux --sort +%mem,%mem 前面默认有一个加号 + ,加不加上结果都是一样的,都表示升序排序,如果想要降序排序并且看到字段标题可以在 %mem 前面加上减号 -,如下所示:5.根据特定条件过滤     在这里介绍一下和 grep 命令结合使用     仅仅显示一个名为 sshd 的进程信息  以上就是 Linux 使用 ps 查看进程的部分比较常用的操作命令 转自:https://www.cnblogs.com/leeyongbard/p/10301206.html