-
Linux开发中,命令行操作可是必不可少的技能,简单便捷的操作,比图形界面操作要优雅许多,也是事半功倍,感觉用到什么去学就行了,不用刻意去学习,那现在来看看有哪些常用命令吧。一.文件和目录cd命令,用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。cd /home 进入 '/ home' 目录cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 cd - 返回上次所在的目录pwd命令,显示工作路径[root@mailvip ~]# pwd/rootls命令,查看文件与目录的命令,list之意ls 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a 列出全部文件,包含隐藏文件ls -R 连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来 ls [0-9] 显示包含数字的文件名和目录名cp命令,用于复制文件,copy之意,它还可以把多个文件一次性地复制到一个目录下-a :将文件的特性一起复制-p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份-i :若目标文件已经存在时,在覆盖时会先询问操作的进行-r :递归持续复制,用于目录的复制行为 //经常使用递归复制-u :目标文件与源文件有差异时才会复制mv命令,用于移动文件、目录或更名,move之意-f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖-i :若目标文件已经存在,就会询问是否覆盖-u :若目标文件已经存在,且比目标文件新,才会更新rm命令,用于删除文件或目录,remove之意-f :就是force的意思,忽略不存在的文件,不会出现警告消息-i :互动模式,在删除前会询问用户是否操作-r :递归删除,最常用于目录删除,它是一个非常危险的参数二、查看文件内容cat命令,用于查看文本文件的内容,后接要查看的文件名,通常可用管道与more和less一起使用cat file1 从第一个字节开始正向查看文件的内容 tac file1 从最后一行开始反向查看一个文件的内容 cat -n file1 标示文件的行数 more file1 查看一个长文件的内容 head -n 2 file1 查看一个文件的前两行 tail -n 2 file1 查看一个文件的最后两行 tail -n +1000 file1 从1000行开始显示,显示1000行以后的cat filename | head -n 3000 | tail -n +1000 显示1000行到3000行cat filename | tail -n +3000 | head -n 1000 从第3000行开始,显示1000(即显示3000~3999行)三.文件搜索find命令,用来查找系统的find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录 find / -user user1 搜索属于用户 'user1' 的文件和目录 find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件 find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件 whereis halt 显示一个二进制文件、源码或man的位置 which halt 显示一个二进制文件或可执行文件的完整路径删除大于50M的文件:find /var/mail/ -size +50M -exec rm {} \;四.文件的权限 - 使用 "+" 设置权限,使用 "-" 用于取消chmod命令,改变文件/文件夹权限ls -lh 显示权限 chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r,4 )、写(w,2)和执行(x,1)的权限 chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限chown命令,改变文件的所有者chown user1 file1 改变一个文件的所有人属性 chown -R user1 directory1 改变一个目录的所有人属性并同时改变改该目录下所有文件的属性 chown user1:group1 file1 改变一个文件的所有人和群组属性11.chgrp命令,改变文件所属用户组chgrp group1 file1 改变文件的群组五.文本处理grep命令,分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等等grep Aug /var/log/messages 在文件 '/var/log/messages'中查找关键词"Aug" grep ^Aug /var/log/messages 在文件 '/var/log/messages'中查找以"Aug"开始的词汇 grep [0-9] /var/log/messages 选择 '/var/log/messages' 文件中所有包含数字的行 grep Aug -R /var/log/* 在目录 '/var/log' 及随后的目录中搜索字符串"Aug" sed 's/stringa1/stringa2/g' example.txt 将example.txt文件中的 "string1" 替换成 "string2" sed '/^$/d' example.txt 从example.txt文件中删除所有空白行paste命令paste file1 file2 合并两个文件或两栏的内容 paste -d '+' file1 file2 合并两个文件或两栏的内容,中间用"+"区分sort命令sort file1 file2 排序两个文件的内容 sort file1 file2 | uniq 取出两个文件的并集(重复的行只保留一份) sort file1 file2 | uniq -u 删除交集,留下其他的行 sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件)comm命令comm -1 file1 file2 比较两个文件的内容只删除 'file1' 所包含的内容 comm -2 file1 file2 比较两个文件的内容只删除 'file2' 所包含的内容 comm -3 file1 file2 比较两个文件的内容只删除两个文件共有的部分六、打包和压缩文件tar命令,对文件进行打包,默认情况并不会压缩,如果指定了相应的参数,它还会调用相应的压缩程序(如gzip和bzip等)进行压缩和解压-c :新建打包文件-t :查看打包文件的内容含有哪些文件名-x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中-j :通过bzip2的支持进行压缩/解压缩-z :通过gzip的支持进行压缩/解压缩-v :在压缩/解压缩过程中,将正在处理的文件名显示出来-f filename :filename为要处理的文件-C dir :指定压缩/解压缩的目录dir压缩:tar -jcv -f filename.tar.bz2 要被处理的文件或目录名称 查询:tar -jtv -f filename.tar.bz2 解压:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件 bzip2 file1 压缩一个叫做 'file1' 的文件 gunzip file1.gz 解压一个叫做 'file1.gz'的文件 gzip file1 压缩一个叫做 'file1'的文件 gzip -9 file1 最大程度压缩 rar a file1.rar test_file 创建一个叫做 'file1.rar' 的包 rar a file1.rar file1 file2 dir1 同时压缩 'file1', 'file2' 以及目录 'dir1' rar x file1.rar 解压rar包zip file1.zip file1 创建一个zip格式的压缩包 unzip file1.zip 解压一个zip格式压缩包 zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包七.系统和关机(关机、重启和登出)shutdown -h now 关闭系统(1) init 0 关闭系统(2) telinit 0 关闭系统(3) shutdown -h hours:minutes & 按预定时间关闭系统 shutdown -c 取消按预定时间关闭系统 shutdown -r now 重启(1) reboot 重启(2) logout 注销 time 测算一个命令(即程序)的执行时间 八、进程相关的命令jps命令,显示当前系统的java进程情况,及其id号jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。ps命令,用于将某个时间点的进程运行情况选取下来并输出,process之意-A :所有的进程均显示出来-a :不与terminal有关的所有进程-u :有效用户的相关进程-x :一般与a参数一起使用,可列出较完整的信息-l :较长,较详细地将PID的信息列出ps aux # 查看系统所有的进程数据ps ax # 查看不与terminal有关的所有进程ps -lA # 查看系统所有的进程数据ps axjf # 查看连同一部分进程树状态kill命令,用于向某个工作(%jobnumber)或者是某个PID(数字)传送一个信号,它通常与ps和jobs命令一起使用命令格式 : kill[命令参数][进程id]命令参数:-l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称-a 当处理当前进程时,不限制命令名和进程号的对应关系-p 指定kill 命令只打印相关进程的进程号,而不发送任何信号-s 指定发送信号-u 指定用户实例1:列出所有信号名称 命令:kill -l 输出:[root@localhost test6]# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR213) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+439) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+843) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+1247) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-1451) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-1055) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-659) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-263) SIGRTMAX-1 64) SIGRTMAX说明:只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略。 下面是常用的信号:HUP 1 终端断线INT 2 中断(同 Ctrl + C)QUIT 3 退出(同 Ctrl + \)TERM 15 终止KILL 9 强制终止CONT 18 继续(与STOP相反, fg/bg命令)STOP 19 暂停(同 Ctrl + Z)实例2:得到指定信号的数值[root@localhost test6]# kill -l KILL[root@localhost test6]# kill -l SIGKILL[root@localhost test6]# kill -l TERM[root@localhost test6]# kill -l SIGTERM[root@localhost test6]#实例3:先用ps查找进程,然后用kill杀掉命令:kill 3268[root@localhost test6]# ps -ef|grep vim root 3268 2884 0 16:21 pts/1 00:00:00 vim install.logroot 3370 2822 0 16:21 pts/0 00:00:00 grep vim[root@localhost test6]# kill 3268 实例4:彻底杀死进程命令:kill –9 3268 // -9 强制杀掉进程killall命令,向一个命令启动的进程发送一个信号,用于杀死指定名字的进程命令格式 : killall[命令参数][进程名]命令参数:-Z 只杀死拥有scontext 的进程-e 要求匹配进程名称-I 忽略小写-g 杀死进程组而不是进程-i 交互模式,杀死进程前先询问用户-l 列出所有的已知信号名称-q 不输出警告信息-s 发送指定的信号-v 报告信号是否成功发送-w 等待进程死亡--help 显示帮助信息--version 显示版本显示示例1:杀死所有同名进程 killall nginx killall -9 bash2.向进程发送指定信号 killall -TERM ngixn 或者 killall -KILL nginxtop命令,是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。如何杀死进程:(1)图形化界面的方式(2)kill -9 pid (-9表示强制关闭)(3)killall -9 程序的名字(4)pkill 程序的名字查看进程端口号:netstat -tunlp|grep 端口号原文来自:http://r6d.cn/wnzC邮箱:tjulitianyi@163.com
-
有时候,我们希望能快速地完成多条命令的执行,省去一个一个命令去敲,去执行的麻烦,特别是我们在调试训练的过程中,显得省时省力,当然,这个可以通过bash解决,但也有其他方法,今天来介绍一下吧:在一行中运行两个或多个命令可以节省大量时间,并在Linux中提高效率。在Linux中,有三种方法可以在一行中运行多个命令。; Command 1 ; Command 2 首先运行Command1,然后运行Command2&& Command 1 && Command 2 当Command1运行成功并结束,然后运行Command2|| Command 1 || Command 2 当Command1运行失败时才运行Command2使用 ; 符号运行多条命令其中最简单的是分号(;),使用方式如下:cmd1; cmd2; cmd3cmd1将首先运行,不管cmd1运行成功还是出现错误,cmd2都会在它之后运行,当cmd2命令完成时,cmd3将会运行。[root@localhost ~]# mkdir /root/new_folder; cd /root/new_folder; touch test_file; pwd ; ls -l/root/new_foldertotal 0-rw-r--r--. 1 root root 0 Sep 2 22:01 test_file[root@localhost new_folder]#在上面命令汇总,首先mkdir创建了一个文件夹在/root目录中,cd 进入前面创建的目录,touch创建一个空文件,然后pwd显示当前位置,ls -l查看目录中的文件。分号(;)后面的空格可带可不带,但空格使命令行更容易读懂。使用 && 符号运行多条命令有时候希望确保Linux命令中,只有在前一个命令成功结束时,下一个命令才会运行。这就是逻辑和运算符&&出现的地方:cmd1 && cmd2 && cmd3如果你使用基于Centos的发行版,你一定遇到过这个使用&&概念的命令:[root@localhost ~]# yum makecache && yum -y update命令行汇总的前半部分时更新缓存,后半部分更新所有安装包。举个例子,如果new_folder已经存在,那么mkdir命令将返回错误。; 和&& 的差异可以在下面的截图中看到:当第一个命令出现错误时,&&分隔的命令会停止执行后面的命令。使用 || 符号运行多条命令可以使用逻辑操作符(||)运行命令行,但是只有在前一个命令出现错误时才运行下一个命令:cmd1 || cmd2 || cmd3如果cmd1运行失败,则运行cmd2。如果cmd2运行成功,cmd3将不会运行。在上面的截图中,创建文件夹的命令失败,因为该文件夹已经存在。因为这个命令失败了,所以下一个命令cd /root/new_folder被成功执行。这个命令已经成功运行,下一个命令pwd将不运行。合并&&和||运算符例如,可以检查文件是否存在,并相应地打印消息。[root@localhost ~]# [ -f file.txt ] && echo "File exists" || echo "File doesn't exist"在创建file.txt文件之前和之后运行上面的命令,看看区别:总结在一行中运行两个或多个命令可以节省大量时间,并在Linux中提高效率。参考:https://mp.weixin.qq.com/s/iZQdt0ruqWo3x0ZSNlk4cA 邮箱:tjulitianyi@163.com
-
为什么我安装 Ascend-Toolkit-20.0.RC1-x86_64-linux_gcc7.3.0.run 的时候,提示这个包是提供给CentOs的,而我的是ubuntu,所以不能安装,但是我明明下载的时候是选择ubuntu的(只有这个选),现在还不能成功安装,望解答!出现这个提示,然后就安装失败了,我的环境配置就只差这一步
-
本帖使用的环境均为测试环境,不涉及客户信息该节点需要修复的实例,对端所在的机器上,所有主dn实例的postgresql.conf文件不能有损坏以下图为例,如果dn6002的磁盘出现问题,需要gs_replace对linux180125节点进行修复时,对端为6001,此时就要求linux180123节点上面6001,6003的postgresql.conf文件都是正常的,而不是只要6001正常就可以gs_replace时,要考虑磁盘空间如果linux180123的data1磁盘发生故障,此时6001和6008不可用,6002会升主开始主从复制,6007也会开始主从复制在磁盘修复之前,6002和6007都会有大量的xlog积压由于6002和6007分别在两个不同的盘,所以磁盘可能压力不是很大,但是gs_replace修复时,6001和6008是在同一块盘的,这时将6002和6007的数据拷贝过来就有可能导致磁盘空间不足;所以要提前计算空间如果计算后发现空间确实不足,可以在dn6002和6007查找已经失效的主备复制槽,并删除,然后做checkpoint,这样再做gs_replace时就不会拷贝大量的积压xlog了这里手动将6001停掉,作为例子切到linux180125节点,登录到dn6002上(dn6002端口是25490,查端口号的方法不在这里赘述)执行select * from pg_get_replication_slots();可以看到主备复制槽已经失效(active为f)删掉这个主备复制槽select pg_drop_replication_slot('dn_6001_6002');连接到cn,执行多次checkpoint这时再对dn6001做全量build就可以恢复,并且不会拷贝大量的积压xlog(所有dn的复制槽都处理完之后做gs_replace也一样,gs_replace实质还是调全量build)
-
背景自从华为开源了MIndSpore深度学习框架,题主就始终惦记着要充分利用手里有且仅有的游戏本,给它加持一套高大上的支持GPU的MindSpore环境,但让人泪奔的是——MindSpore-gpu不兼容Windows!!!虽然MindSpore也能在Windows里运行,但那是CPU的安装版。可连GPU都不能用还有什么资格配叫深度学习机?那么,在Windows上运行Docker行不行呢?这个空子没法钻。那么,安装VMWare虚拟机行不行呢?这个选项大概率也走不通。对这些问题有兴趣的同学请参考这些资源:https://www.mindspore.cn/installhttps://bbs.huaweicloud.com/forum/thread-81854-1-1.htmlhttps://bbs.huaweicloud.com/forum/thread-82387-1-1.htmlhttps://www.v2ex.com/t/673666那么,装双系统行不行呢?肯定行,不过上个世纪就已经体验过两个系统来回切换的“安全方案”,那些痛苦至今还会在梦里找回来。怕了。再添一台机器总可以了吧?肯定能完美解决,但这不是本文讨论的问题,所以不差钱的朋友完全没有必要继续在本文上浪费时间了。难道说只能弃Windows转投Ubuntu的怀抱吗?可是使用习惯已经被微软悉(WU)心(QING)培(DU)养(HAI)了二十多年,又怎么可能能说改就改呢?就要有个过渡吧。为了让Windows和MindSpore-GPU和睦共处,题主启动了“金字塔”项目,前前后后折腾了近一个月,经历了各种幻想、折磨、无奈和期待,终于苦尽甘来,成功在一台Win10游戏本上让华为MindSpore-gpu版本狂奔起来。之所以名为“金字塔”,盖因层层叠叠安装了一大堆虚拟机,Docker,最后就是为了顶上的MindSpore-GPU耀眼夺目。闲话到此,以下干货。一、“金字塔”项目目标:在一台机Win10游戏本上,运行MindSpore-gpu:在Win10系统中开启WSL2,运行虚拟机虚拟机可以使用宿主机GPU资源虚拟机运行Docker运行在Docker中的MindSpore-gpu能够利用主机GPU资源进行计算加速二、系统环境:Docker镜象版本:mindspore-gpu :1.0.0Docker版本: 19.03.13, build 4484c46d9dWSL虚拟机OS版本:Ubuntu 18.04WSL版本:WSL2宿主机CUDA版本: 11.2宿主机OS版本:Windows10家庭版2004(OS内部版本 20236.1000)宿主机硬件:HP暗影精灵II, Intel HD630(集显)+Nvidia GTX1050Ti(独显)三、避大坑Windows 开发版(也就是OS内部版本)从20211到20215概率性不能启动WSL虚拟机。NVIDIA Drivers for CUDA on WSL不支持Windows开放版20211-20221。如果当前主机是这几个版本,一定想好要不要往下走。谁也不能保证微软和Nvidia未来的更新是不是完全可用,请关闭Windows自动更新,并做好全系统备份。宿主机不能安装Docker Desktop,与虚拟机Docker冲突。四、安装过程1、加入Windows Insider计划我们的目标是让WSL虚拟机使用GPU资源。其实微软的WSL2已经很友好了,目前任何发行版都可以开启并运行Linux虚拟机。不过,想要虚拟机使用GPU的资源,就必须加入Windows Insider计划,激活Winows开发版。使用Microsoft Store帐户登录Windows Insider主页https://insider.windows.com/zh-cn/,然后按照向导一步步往下走,都是常规的操作,如果网站慢就耐心多等一会。打开”设置“,选择“更新与安全”,选择“Windows预览体验计划”,选择“Dev渠道”。重新进入”更新与安全“,选择”检查更新“,系统会自动下载并安装最新开发版更新包。耐心等待升级完成。安装完成后提示重新启动,现在不想重启也没关系,等到第3步激活WSL2之后再重启。重启之后按win+R,输入"winver"可以看到版本更新了。2、安装NVIDIA Drivers for CUDA on WSL这部分是跟显卡有关系的活。根据https://developer.nvidia.com/cuda/wsl/download指南下载对应的软件包。我的显卡是GTX1050Ti,所以下载GFORCE DRIVER。下载启动时会提示用Nvidia开发者帐户登录。如果还没有的话,根着网页指南走就好了,都是常规的操作。下载文件名叫460.20_gameready_win10-dch_64bit_international.exe,一个646M的大文件,需要耐心等。下载完成后执行安装。安装完成也不必重启。下一步激活WSL2之后需要重启,就两步合一步了。AMD显卡的朋友请自行实验,我没有设备帮不上忙。3、激活WSL2WSL2已经是Window内置的特性,开启非常简单。打开”设置“,选择”应用“,选择右上角”程序和功能“(如果看不到,就最大化窗口)。在弹出的程序和功能窗口中,选择“启动或关闭Windows功能”;在弹出的Windows功能窗口中选择”Windows Subsystem for Linux“和”虚拟机平台“。重启机器去https://aka.ms/wsl2kernel,根据指南下载并安装升级的Linux内核文件wsl_update_x64.msi。WSL2运行真正的Linux内核的,想象一下在Windows上运行的是”真正的“Linux机器就有些小爽。以管理员身份,打开PowerShell窗口,输入以下命令激活WSL2ps c:\users\linux> wsl --set-default-version 24、安装Ubuntu打开Microsoft Sotre,在搜索框里输入Ubuntu,挑你喜欢的版本。最左边不带版本号的就是20.04。我最终使用了18.04。20.04老报错。选择版本,等待下载完成(系统会有提示),然后在启动菜单中可以看到“Ubuntu-18.04 LTS”。点击启动虚拟机。弹出Ubuntu终端窗口,系统自动安装,等一会安装成功,系统提示输入用户名和密码。 这里有一个错误提示,是因为宿主机的备份卷被锁了,子系统访问不到。这里展现了用WSL2的好处之一是:子系统可以把宿主机的文件夹挂在自己下面,同样的,宿主机也可 以直接访问子系统的目录,这样一来,相互之间拷贝文件简直不要太方便,不用cp,mv的敲半天。输入用户名和密码,进入子系统。5、在Ubuntu中安装Docker在Ubuntu终端窗口中输入以下命令,安装Docker。$ curl https://get.docker.com | sh 如果系统提示Docker已经存在了,果断ctrl+C终止就行了。 6、安装MindSpore Dcoker镜像根据https://gitee.com/mindspore/mindspore?_from=gitee_search上的MindSpore官方指南,下载并安装mindspore-gpu:1.0.0 Dcoker镜像。更新nvidia docker list $ DISTRIBUTION=$(. /etc/os-release; echo $ID$VERSION_ID) $ sudo curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | apt-key add - $ sudo curl -s -L https://nvidia.github.io/nvidia-docker/$DISTRIBUTION/nvidia-docker.list | tee /etc/apt/sources.list.d/nvidia-docker.list安装nvidia-container-toolkit $ sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit nvidia-docker2重启docker服务 $ sudo service docker stop $ sudo service docker startWSL2虚拟机运行在init 1状态,因此无法systemctl命令编辑docker的daemon.json文件(我感觉,这个文件已经存在了,不用再写一遍。可以先cat看一下有没有,没有再照着写好了。) $ sudo vim /etc/docker/daemon.json { "runtimes": { "nvidia": { "path": "nvidia-container-runtime", "runtimeArgs": [] } } }再次重启docker服务 $ sudo service docker stop $ sudo service docker start在Ubuntu终端窗口中输入以下命令,把mindspore-gpu:1.0.0 Dcoker镜像拉到本机来。 $ sudo docker pull mindspore/mindspore-gpu:1.0.0把MindSpore docker跑起来 sudo docker run -it --runtime=nvidia --privileged=true mindspore/mindspore-gpu:1.0.0 /bin/bash终于到了测试这一步了。在docker内,打开python窗口。在docker里,操作员获得管理员的权限,所以不用每条命令都要打sudo了。输入下面的脚本 import numpy as np import mindspore.context as context from mindspore import Tensor from mindspore.ops import functional as F context.set_context(mode=context.PYNATIVE_MODE, 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(F.tensor_add(x, y))如果得到下面的结果,就大功造成了!从资源管理器GPU1的图表上看出这段脚本消耗了GPU的资源。五、后记题主本来只是一枚Linux小白,一个月以前对Docker除了名字更是一无所知,在“金字塔”项目执行过程中真可谓真是大坑小坑不断落,大包小包满脑袋。回想着各种错误带着诚意扑面而来时的目瞪狗呆不知所措,每次一有新的开发版推出就满心欢喜地以为问题跑光光最后又一次次失望,各种在神的各种神贴的有话说七分,有时候真是把机器拍碎的心都有。话说无知无谓。就在发稿之前的一刻,题主大脑抽筋想再试一下Windows上直接跑Docker,安装了Docker Desktop,然后虚拟机里的Docker容器文件全不见了!!!以为辛苦工作的成果全都飞升了,当时真想嚎啕大哭,后来想了半天,感觉有可能是宿主机Docker Desktop把虚拟机的Docker给接管了?试着把宿主机Docker Desktop删除重启,才恢复如常了。反正为什么会出问题也不知道,问题解决了也不知道为什么。所以奉劝各位朋友,要是精神上能够受得了折磨,不妨也试着弄一弄。友情提示:开发版可以提前尝鲜新功能,代价就是不稳定,切记如果决定使用,那么一定要把可以运行的环境备份好。在一个持续变化的环境里,再怎么强调备份都不过分。当然,技术流弊的,做这点事儿自然不在话下。不太差钱的就不如多搞台机器来直接装Ubuntu。实在不差钱就干脆到华为云上租个Atlas主机更加好了。email: 57070221@qq.com
-
直播已结束 直播地址》》点击观看回放《《 直播简介如何养成在linux下看代码与编程的习惯,而不用在windows下编写代码再切换到Linux编译执行,在鲲鹏环境下,高效玩转linux下的工具与快捷键,帮助我们快速进入鲲鹏云的世界~。专家介绍参与方式1、 报名预约直播即有机会抽取华为手表GT2。(已结束)如您邀请的好友中奖,作为邀请人的您也同样享受奖励!2、 参与专家坐堂互动。在本帖下方任意回复以下一项内容,即有机会获得华为智能音箱和无线鼠标。有效参与必得500码豆。1) 观看直播后发表您的个人观点2) 观看直播后向专家提出问题3) 参与微话题互动(任选其一):讨论话题:除了VIM编辑器,大家平时在Linux下写代码或者看代码都用哪些工具,有哪些心得呢?注:发布的内容必须与本次直播话题或微话题相关,且必须包含个人思考的内容。抄袭内容一经发现将取消评选资格。回复时间截至10月28日。活动规则1、本活动结束后将从报名本场直播的用户中随机抽取一名幸运用户获得华为手表GT2,同时其邀请人也可同样中取华为手表GT2一块。如中奖的幸运用户没有邀请人,则不发放邀请人奖励。本场直播的抽奖过程和中奖的幸运用户将在10月29日公布。2、如本帖的有效回复人数大于等于20人,则由专家和华为云工作人员共同评选出3个优质回复,发布者可获得无线鼠标一个。如有效回复人数大于等于30人,则额外评选出一个最优回复,发布者可获得华为智能音箱一个。如有效回复人数小于20人,则只发放500码豆参与奖励。获奖用户将于10月29日公布,并公示至11月2日截止。3、参加专家坐堂互动的有效参与者均可获得500码豆,请您提前登录DevCloud会员中心(https://devcloud.huaweicloud.com/bonususer/home),以免无法接收码豆。4、以上实物奖励将于11月30日前完成发放,码豆奖励将于11月25日前完成发放,请您耐心等待。5、如您参与1024相关活动,为保证您顺利领取活动奖品,请您提前填写下方奖品收货信息链接,如您没有填写,视为放弃奖励填写地址请戳我>>6、本次活动抽奖将采用巨公摇号平台(https://www.jugong.wang/random-portal/),奖项评比将由专家和华为云工作人员共同完成。如您对评奖方式有异议,请勿参加本次活动。7、活动结束后三个工作日内将公布本活动获奖名单,获奖用户需在公示后的三天内填写获奖信息。更多活动:【华为云1024程序员节 · 向云而生】攻城狮们,体验最新鲲鹏课程/实验,赢FreeBuds 3 无线耳机、荣耀手环5等精美好礼【1024程序员节】“向云而生”直播盛典【1024程序员节】集卡牌 拿盲盒 赢码神锦鲤礼包
-
【问题描述】DAYU开发作业选不到数据库,所有节点提示/etc/fstab 有问题。 是警告。集群自身状态正常一般重启服务器会出现。 一般出现是所有节点都报警告。警告内容【问题分析】打开“查看帮助” 里面有明确需要看的日志。打开日志里面有提示swap启用但未在/etc/fstab配置的信息。【解决办法】: fdisk 查看swap 在哪个设备路径。现场是 /dev/sda8 。然后 swapoff /dev/sda8 等待5分钟,警告就消失了。可以在 /etc/rc.d/rc.local 里面加入 swapoff /swap的路径
-
Atlas 200 DK 连接网线后,网口灯不亮。连接网线时,对端网口是亮的,并且双向Ping不通。调试了一下,将Atlas 200 DK网口IP地址改为auto并注释掉其他项,插上网线后,使用ifocnfig命令查询网卡状态,没有找到相应网卡,初步怀疑网口和PHY芯片之间焊接有问题。请问如何解决?
-
【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
你好,请问200DK的GPIO管脚在OS下能看到的映射关系是什么?如下图是设备端 系统中的 gpio 端口信息,下面表格中有GPIO0-GPIO10共11个端口,如何知道 其在linux系统中的对应关系?【日志信息】(可选,上传日志内容或者附件)
-
从昨天到现在,反复试了重装系统,重装开发版系统,情况基本一样。连接不上,参照https://bbs.huaweicloud.com/forum/thread-76207-1-1.html提示,ubuntu18.04配置和ubuntu16.04网络配置不同,我已经成功配置,但是连接上故意断开后怎么也连接不上。当时以为是开发板系统问题,因为我是参照论坛镜像dd命令制作系统,于是我安装官方制卡脚本制作系统,结果情况一模一样。看下图,ifconfig后显示enp0s20f0u1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.223 netmask 255.0.0.0 broadcast 192.255.255.255 inet6 fe80::c062:fcff:feab:f968 prefixlen 64 scopeid 0x20<link> ether c2:62:fc:ab:f9:68 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 253 bytes 33250 (33.2 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0看起来没问题,下面是我的网路配置network: version: 2 renderer: NetworkManager ethernets: enp0s20f0u1: #配置的网卡名称,使用ifconfig -a查看得到 dhcp4: no #dhcp4关闭 addresses: [192.168.1.223/8] #设置本机IP及掩码 gateway4: 255.255.255.0 #设置网关 nameservers: addresses: [114.114.114.114]netplan apply之后第一次是可以连接上,然后reboot开发版怎么都连接不上相反,我在使用C32很少遇到连接不上的问题。此外我还发现,按照官方安装流程之后,会造成我的电脑里面部分应用程序,比如向日葵程序直接使用不了,打开显示无响应。在没有安装官方python3.7.5以及其他依赖前,向日葵是没问题的。上次也是这样安装,我以为是系统问题,又重新安装系统,结果问题还是一样,会导致系统部分应用出现问题,请官方给个具体解决方案
-
问题描述:某局点的的其中一个节点,周期性(20s)出现cpu使用率100%情况,而占用cpu的任务是同时被拉起的大量的lspci操作观察任务树发现,该任务的父进程关系非常奇怪父进程和子进程基本是八竿子打不着的关系本地排查了1、ssh -vvv以及其他尝试构造该场景,未发现2、远端通过ssh连接到本服务器,然后执行lspci3、查看om fim监控脚本,无相关lspci调用,排除。在排除了几个可疑点之后,再次观察状态树,怀疑是ssh登录后脚本导致,最终发现,该命令实际是通过登录后的/etc/profile中,拉起了lspci根因分析:由于redhat在ssh登陆时,会自动加载/etc/bashrc脚本,该脚本会将/etc/profile.d/ 目录下所有的sh脚本加载一遍,系统的qt(一个开源的桌面开发工具)自带的环境变量检查里面会调用lspci解决方案:目前qt工具在我们系统中用不上,直接将所有节点的/etc/profile.d/qt*.sh的脚本注释掉问题解析:当前Gaussdb内部的一些检测和运维的原理都是依赖于'ssh hostname cmd'这种方式来进行远程控制,因此对于ssh登陆效率和性能本身有一定的依赖,建议系统安装时采用最小方式安装,对于无关的应用,建议不要安装在服务器上
-
1、下载地址 wget http://downloads.mysql.com/archives/get/file/mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz 2、安装说明 http://dev.mysql.com/doc/refman/5.6/en/binary-installation.html3、安装步骤:shell> groupadd mysql shell> shell> useradd -r -g mysql -s /bin/false mysql shell> cd /usr/local shell> tar zxvf /path/to/mysql-VERSION-OS .tar.gz shell> ln -s full-path-to-mysql-VERSION-OS mysql shell> cd mysql shell> chown -R mysql . shell> chgrp -R mysql . shell> scripts/mysql_install_db --user=mysql shell> chown -R root . shell> chown -R mysql data shell> bin/mysqld_safe --user=mysql & # Next command is optional shell> cp support-files/mysql.server /etc/init.d/mysql.server 4、安装完成后,设置root密码(安装很多遍,一直没仔细看过这个说明)PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: ./bin/mysqladmin -u root password 'new-password' ./bin/mysqladmin -u root -h localhost.localdomain password 'new-password' Alternatively you can run: ./bin/mysql_secure_installation which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers. See the manual for more instructions. You can start the MySQL daemon with: cd . ; ./bin/mysqld_safe & You can test the MySQL daemon with mysql-test-run.pl cd mysql-test ; perl mysql-test-run.pl提示mysql命令不存在:ln -s /usr/local/mysql/bin/mysql /usr/bin 安装后,用/usr/local/mysql/bin/mysql -u root -p 进入报错 /usr/local/mysql/bin/mysql: unknown variable 'datadir=/data1/mysql/var/' 这里需要修改my.cnf 配置问题 :[client] #password = your_password port = 3306 socket = /tmp/mysql.sock datadir = /data1/mysql/var/ #把这里已到下方mysqld部分里 [mysqld] port = 3306 socket = /tmp/mysql.sock datadir = /data1/mysql/var/ #加这里
-
【功能模块】aarch64-linux-gnu-g++ 安装不上【截图信息】输入apt --fix-broken install 报错后边还有报错没有截图完
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签