功能描述:从当前目录里面找到 youdutech相关信息
第一种实现方法:find + exec +grep
find . -type f -exec grep -Hn --color=auto "youdutech" {} \;
第二种实现方法 find+xargs +grep
find . -type f | xargs grep -Hn --color=auto "CUDA_VERSION"
提升搜索速度的常用方式 —加上文件名过滤
find . -type f -name "*.py" | xargs grep -Hn --color=auto "CUDA_VERSION"
参数解释
find . “.” 表示当前目录
-type f 表示普通文件类型,因为find还可以查找块文件,套接字文件等类型。
-name "*.py"过滤搜索的文件名字特征。
-exec [xx] {} \; 针对发现的内容执行XX命令。其中{}表示find的内容,注意 {} 和\之间有空格,\;表示分割不同的find内容。
| xargs [xx] 把前一个命令的输出当做是xx 命令的输入。其中 ”|“表示通道。
-Hn H表示显示文件名称, n表示显示行号。
--color=auto 表示高亮显示输出。
.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
———————————————
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
———————————————
vim /etc/sysconfig/network-scripts/[网卡名]
TYPE=Ethernet
DEVICE=enp0s3 #绑定的网卡名称
ONBOOT=yes #开机启用(重要)
BOOTPROTO=static #使用静态IP
IPADDR=192.168.1.203 #IP地址
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.1.1 #网关
DNS1=192.168.1.1 #DNS
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s3
UUID=8eeba138-67e9-4532-b5da-a25c596a4354
1 开始编译[根目录]
(1) 在 .bashrc文件末尾添加:export USE_CCACHE = 1
echo export USE_CCACHE=1 >> ~/.bashrc
(2) 为了提高编译效率,设置编译器高速缓存:
prebuilts/misc/linux-x86/ccache/ccache -M 50G
1:可利用linux自带下载工具wget下载 :
wget http://www.python.org/ftp/python/3.3.0/Python-3.3.0.tgz
2:下载完成后到下载目录下,解压
tar -xzvf Python-3.3.0.tgz
3、进入解压缩后的文件夹
cd Python-3.3.0
在编译前先在/usr/local建一个文件夹python3(作为python的安装路径,以免覆盖老的版本)
./configure --prefix=/usr/local/python3 (生成Makefile)
make && make install
6、此时没有覆盖老版本,再将原来/usr/bin/python链接改为别的名字(笔者保留了两个版本的,一个python,一个python3,所以第6步笔者略过,把第7步的链接后名字改为python3,读者可按正常步骤,实现的效果相同)
mv /usr/bin/python /usr/bin/python_old2
7、再建立新版本python的链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python
8、这个时候输入
python -V
1: git init 后为一个空的仓库
2:git clone url path
3:克隆后 此时无分支,加入修改后 git add -> gitcommit -> git push --set-upstream origin master (或者其他分支)
fatal: 当前分支 master 没有对应的上游分支。
为推送当前分支并建立与远程上游的跟踪,使用git push --set-upstream origin master
用SSH客户端连接linux服务器时,经常会出现与服务器会话连接中断现象,造成这个问题的原因便是SSH服务有自己独特的会话连接机制。
解决方案:
1、设置服务器向SSH客户端连接会话发送频率和时间
#vi /etc/ssh/sshd_config,添加如下两行
ClientAliveInterval 60
ClientAliveCountMax 86400注:ClientAliveInterval选项定义了每隔多少秒给SSH客户端发送一次信号;ClientAliveCountMax选项定义了超过多少秒后断开与ssh客户端连接
2、重新启动系统SSH服务
#service sshd restart
在tar.gz文件所在的目录下建立run.sh 内容为:
#!/bin/bash for wav in ./*.tar.gz; do echo "Extracting wav from $wav" tar -zxf $wav && rm $wav done
添加执行权限
chmod +x run.sh
执行./run.sh
1
这段代码是从kaldi脚本里面抽出来的,所以不难解释为什么用的是wav变量wav 表示 xxx.tar的
如果解压的为其他格式,则稍微修改代码即可。
1.错误信息
Could not chdir to home directory /var/services/homes/gaofei: No such file or directory
对象计数中: 3, 完成.
写入对象中: 100% (3/3), 202 bytes | 0 bytes/s, 完成.
Total 3 (delta 0), reused 0 (delta 0)
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: is denied, because it will make the index and work tree inconsistent
remote: with what you pushed, and will require 'git reset --hard' to match
remote: the work tree to HEAD.
remote:
remote: You can set 'receive.denyCurrentBranch' configuration variable to
remote: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: its current branch; however, this is not recommended unless you
remote: arranged to update its work tree to match what you pushed in some
remote: other way.
remote:
remote: To squelch this message and still keep the default behaviour, set
remote: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
To ssh://[email protected]//volume1/git_prj/ecc
! [remote rejected] master -> master (branch is currently checked out)
error: 无法推送一些引用到 'ssh://[email protected]//volume1/git_prj/ecc':错误2.错误原因
其实出错信息中有提示“remote: ‘receive.denyCurrentBranch’ configuration variable to ‘refuse’.”,即使远程git拒绝了push操作
3.解决办法
修改git服务端的.git/config文件,增加push的设置,添加如下代码:
[receive] denyCurrentBranch = ignore
cat file1 file2 > file
注: 一般合并的文件基本名称都差不多 比如 xxx.tar.0 xxx.tar.1
此时 执行命令 cat xxx.tar.* > (输出的文件名.tar)
打包压缩:
tar -cvf log.tar log2012.log 仅打包,不压缩!
tar -zcvf log.tar.gz log2012.log 打包后,以 gzip 压缩
tar -jcvf log.tar.bz2 log2012.log 打包后,以 bzip2 压缩
在选项f之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
如果加z选项,则以.tar.gz或.tgz来代表gzip压缩过的tar包;
如果加j选项,则以.tar.bz2来作为tar包名。-j, --bzip2
-z, --gzip, --gunzip --ungzip
-v, --verbose
verbosely list files processed
详细列出处理过的文件
-f, --file ARCHIVE
use archive file or device ARCHIVE
使用存档文件或设备存档(指定存档文件)
切记,这个参数是最后一个参数,后面只能接档案名。
tar 命令 必须和-f命令连用
在选项f之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。 如果加z选项,则以.tar.gz或.tgz来代表gzip压缩过的tar包;如果加j选项,则以.tar.bz2来作为tar包名。
解包解压缩:
tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下 jz选项依据压缩属性需要加上 -C, --directory DIR change to directory DIR
tar -zxf XXX.tar.gz 解压tar.gz
解压.tgz:
然后首先:打开终端
1,进入下载路径下,比如我的就是进入Downloads下。
输入命令: cd Downloads
2,解压到当前文件夹
输入:tar zxvf 文件名.tgz -C ./ 比如我的是:tar zxvf simple-examples.tgz -C ./
3,解压到指定文件夹下
输入:tar zxvf 文件名.tgz -C /指定路径
比如我想解压到Home下:则变成tar zxvf simple-examples.tgz -C /Home
第一:查看当前空间大小:
#free -m
total used free shared buffers cached
Mem: 1002 977 24 0 25 638
-/+ buffers/cache: 313 688
Swap: 991 0 991创建交换分区:
第二:进入root用户 输入 sudo -i 然后输入密码,就可以了。
第三:用户在根目录下创建一个目录
mkdir /swap
第四:进入swap目录;
cd /swap
第五:输入要创建交换分区命令然后回车;
dd if=/dev/zero of=swapfile bs=1024 count=1029000
可以看到如下内容:记录了1029000+0 的读入
记录了1029000+0 的写出
1053696000字节(1.1 GB)已复制,69.0168 秒,15.3 MB/秒可以用ls -lh 可以看到一个文件。
-rw-r--r-- 1 root root 1005M 2010-01-02 14:35 swapfile第六:输入命令 mkswap swapfile 可以看到下面内容:
mkswap: swapfile: warning: don't erase bootbits sectors
on whole disk. Use -f to force.
Setting up swapspace version 1, size = 1028996 KiB
no label, UUID=82eda1f8-f20a-4ca0-ba21-a4bdce5b765a
第七:挂载交换分区:swapon swapfile
如 果想卸载的话输入:swapoff swapfile
第八:再查看空间大小:free -m
total used free shared buffers cached
Mem: 1002 980 21 0 13 738
-/+ buffers/cache: 229 773
Swap: 1899 0 1899
Ubuntu 执行:
apt-get install python-pip
~# sudo -H pip install pillow
install的时候可能会出错:
SSLError: The read operation timed out
解决办法:
增加
--default-timeout=100
,加大超时时间。如: sudo -H pip--default-timeout=100
install pillow依赖:
centos:
sudo
yum
install
python-devel
sudo
yum
install
zlib-devel
sudo
yum
install
libjpeg-turbo-devel
ubuntu
sudo
apt
install
python-dev
sudo apt install
libjpeg-dev
git diff 63af9cc0e8070a58a61642c1cf514c47f371b160 1141d56c04b11c3bdfa51e948ced5099c4f9d4eb --name-only | xargs -i cp --parents {} ../work
将新提交所做的修改,把所有涉及的文件带路径复制到需要备份的文件夹
git diff commit_ID1^..commid_ID2 --name-only | xargs -i cp --parents {} new_folder
git diff commit_ID1^..commid_ID2 --name-only 显示两个提交修改的文件
cp --parents {} new_folder 将文件带路径复制
| xargs -i 这是管道,将前面的指令的输出作为参数,后面的{} 代表前面的输出
man默认是英文的,但ubuntu的源里也有中文版的。以下是配置方法:
1) 终端输入sudo apt-get install manpages-zh
2) 安装后修改配置文件sudo gedit /etc/manpath.config
3) 将所有的/usr/share/man替换为/usr/share/man/zh_CN
4) 保存即可。
Notice file: system/extras/ext4_utils/NOTICE -- out-E8909/target/product/msm8909/obj/NOTICE_FILES/src//system/lib/libext4_utils_static.a.txt
/bin/bash: mkisofs: command not found$ sudo apt-get update $ sudo apt-get install genisoimage
为了使用C++14/17的新特性,我们难免要升级下自己的GCC版本,同时还要保证自己新安装的GCC生效,并且和原GCC共存。
安装GCC-5.0
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-5 g++-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5
其中最后一句会把当前的默认GCC版本设置为gcc-5。
安装GCC-7.0
sudo add-apt-repository ppa:jonathonf/gcc-7.1
sudo apt-get update
sudo apt-get install gcc-7 g++-7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 60 --slave /usr/bin/g++ g++ /usr/bin/g++-7
sudo apt-get update 更新源
sudo apt-get install package 安装包
sudo apt-get remove package 删除包
sudo apt-cache search package 搜索软件包
sudo apt-cache show package 获取包的相关信息,如说明、大小、版本等
sudo apt-get install package --reinstall 重新安装包
sudo apt-get -f install 修复安装
sudo apt-get remove package --purge 删除包,包括配置文件等
sudo apt-get build-dep package 安装相关的编译环境
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-cache depends package 了解使用该包依赖那些包
sudo apt-cache rdepends package 查看该包被哪些包依赖
sudo apt-get source package 下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean 清理无用的包
sudo apt-get check 检查是否有损坏的依赖---------------------------------------------------------------------------------
安装php-curl
sudo apt-get install php7.0-curl
//要选择自己已安装的php准确版本,如7.0, 5.6
执行这条命令后报错了 unable to locate package php7.0-curl
后来发现是这个源没有该curl模块,所以我们采用以下方法sudo apt-add-repository ppa:ondrej/php
//更添加这个源
sudo apt-get update
sudo apt-get install php7.0-curl
//这时成功安装php7.0-curl
错误原型:
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
remote: error:
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error:
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
To [email protected]:/var/git.server/.../web
! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to '[email protected]:/var/git.server/.../web'
解决办法:
这是由于git默认拒绝了push操作,需要进行设置,修改.git/config文件后面添加如下代码:
[receive]
denyCurrentBranch = ignore
You asked for an OpenJDK 7 build but your version is
1: oracle : 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#jdk-7u80-oth-JPR
You asked for an OpenJDK 7 build but your version is java version "1.7.0_79" Java(TM) SE Runtime Environment (build 1.7.0_79-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode).
2:openjdk
需要 apt-get update
apt-get install openjdk-7-jdk
1: git diff id1:id2 --name-only | xargs -i cp --parents {} ../../patch/
2:git diff id(此commit id之前的所有提交生成) --name-only | xargs -i cp --parents {} ../../patch/(生成源文件的路径)
假设要将下面这个文件压缩并分割成多个1.4M的文件
-r-xr-xr-x 1 root root 4.4M 2004-08-27 01:50 a.chm
可以用下面的命令:
tar -jcf - a.chm | split -b 1400k - a.chm.tar.bz2.
完成后会生产下面的文件:
-rw-r--r-- 1 root root 1433600 2004-08-27 01:55 a.chm.tar.bz2.aa
-rw-r--r-- 1 root root 1433600 2004-08-27 01:56 a.chm.tar.bz2.ab
-rw-r--r-- 1 root root 1433600 2004-08-27 01:56 a.chm.tar.bz2.ac
-rw-r--r-- 1 root root 225280 2004-08-27 01:56 a.chm.tar.bz2.ad还原文件用下面的命令:
cat a.chm.tar.bz2.a* | tar -jx
gitignore文件里面明明写好了.idea文件的忽略规则,理论上不会提交,但是每次改完代码要提交之前查看status,都会提示.idea里的某个文件有改动,需要提交,这就很烦心了,搜了下其他人的博客,解决方法如下:
原因
.gitignore只能忽略之前没有被staged(缓存)的文件,如果已经staged纳入了版本管理中,在修改.gitignore是无效的,查看了下远程的代码,确实存在.idea文件,说明它之前被提交过,已经staged过了;
下面这段话来自github: .gitignore文件不工作 因此,要想用gitignore忽略文件,必须先把它们从staged中移除解决方法
- git rm -r --cached xxx.xml(要忽略的文件名)(最好别用git rm -r --cached . 效果有点吓人)
- git add .
- git commit -m ‘update .gitignore’
上面的三行代码,就清除了这个文件的本地缓存,从staged中移除了,这样.idea文件就会按照修改之后的gitignore规则来执行了,不会在提交了;
ar (child): lbzip2: Cannot exec: No such file or directory 解决方法
今天用tar命令解压文件的时候出错了,信息如下:tar (child): lbzip2: Cannot exec: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
解决方法很简单,只要安装bzip2就行了,yum安装的命令如下:yum -y install bzip2
如果虚拟机无法联网,也可以源码安装,下载:bzip2-1.0.6.tar,安装过程如下:tar zxvf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6/
#为编译做准备,创建libbz2.so动态链接库(这一步很重要,安装python的时候如果没有这一步,python安装不上bz2模块):
make -f Makefile-libbz2_so
make && make install
安装的Ubuntu源 通过IP地址可知都在国外,下载速度一些文件或者apt install 相当的慢。
解决方法:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup #备份当前也就是默认官方的源列表
sudo gedit /etc/apt/sources.list #修改sources.list文件中源的列表,删除全部内容,替换为国内源地址。 保存编辑好的文件。
sudo apt-get update #更新源列表,换源后必须执行
提示可能的原因是dns解析的问题。需要修改nameserver,于是执行sudo vi /etc/resolv.conf进行设置。
将nameserver设置为8.8.8.8
国内源列表:
deb http://mirrors.aliyun.com/ubuntu/ trusty main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main multiverse restricted universe
2其他源
18.04# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
问题描述
在虚拟机上安装好Ubuntu16.04, 一段时间之后重新打开准备编译python程序,在安装所需包时发现,pip pip3,指向的都是python2.7;
root@ubuntu:~$ pip3.5 -V
pip 19.1.1 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)
root@ubuntu:~$ pip -V
pip 19.1.1 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)
传统安装卸载PIP:
安装pip
sudo apt-get install python3-pip升级 pip
sudo pip3 install --upgrade pip卸载
sudo apt-get remove python3-pip2
真正解决我的问题的办法:安装pip3
使用下面的语句安装,若你是想为系统自带的python3.5 配置pip3,只需执行 curl https://bootstrap.pypa.io/get-pip.py | sudo python3.6。执行后若是pip指向python3.5;我们只需再次执行 curl https://bootstrap.pypa.io/get-pip.py | sudo python2.7即可。
# 检查并安装python3.6sudo apt-get update
sudo apt-get install python3.6 curl https://bootstrap.pypa.io/get-pip.py | sudo python3.6
1.查看你系统中有哪些Python的二进制文件可供使用,
ls /usr/bin/python*
2.查看python替换版本信息:
update-alternatives --list python
会输出以下结果:
如果出现 update-alternatives:error:no alternatives for python
则表示Python 的替换版本尚未被update-alternatives 命令识别。想解决这个问题,我们需要更新一下替换版本,将Python2.7和python3.5放入其中。执行以下命令:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5 2
3.现在进入root身份,使用以下命令随时在列出的python替换版本中任意切换。
sudo su update-alternatives --config python
输出结果如下:
输入“1”,就切换到2.7版本了,相反如果之前默认版本为2.7的输入“2”则切换到3.5版本了。
现在再查一下默认Python版本:
python --version
已经成功切换到2.7版本了。
我这里网卡名为:enp2s0,同时记录下掩码地址,下面会用到这两个参数。
终端输入vi /etc/network/interfaces命令编辑配置文件,增加如下内容:
auto enp2s0
iface enp2s0 inet static
address 192.168.1.211
netmask 255.255.255.0
gateway 192.168.1.1
iface enp2s0 inet6 auto配置完成后需要重启相应网卡,使用 ifdown enp2s0 关闭网卡,使用 ifup enp2s0 启动网卡,完成网卡重启,通过 ifconfig 命令查看IP地址,此时发现IP地址已经是设定的IP地址。
xxx@root# ifdown enp2s0 && ifup enp2s0
重启网卡后正常使用IP