linux学习笔记

来源:互联网 发布:知乎 武侠 编辑:程序博客网 时间:2024/06/16 21:07

一、常见指令

(每条指令敲三遍以上)

1.pwd显示当前所在位置

2.-p递归创建

mkdir -p linux/test

3.

cd 回到当前用户的家目录

cd- 进入上次操作目录

cd /linux/t  linux可识别目录补全,直接/liunx/test

4.rmkdir 删除空白目录

5.touch abc 创建空文件abc

6.rm -rf 删除文件

7.

cp 复制目录或文件

cp -r 复制目录(操作目录文件时必须加-r)

cp /test/abc -r /mytest/myabc(将test目录下的abc文件复制到mytest目录下,并将abc文件改名为myabc)

mv剪切文件

mv abc cdf 将同一目录下的abc改名为cdf

8.echo 打印,将指定内容输出到屏幕上

9.echo -e 打印固定格式的内容 \x68\t\x65

10.alias [别名] =原命令

11.~/.bashrc 环境变量配置文件

12.

control + l 清屏快捷键

control + a 将光标移动到命令行首

control + e 将光标移动到命令行尾

control + z 把命令放入后台

control + u 从光标所在位置删到行首

control + r 在历史命令中搜索命令

13.history [选项] [历史命令保存文件]

-c 清空历史命令

-w 把保存中的历史命令写入历史命令保存文件~/.bash_history

14.

!n执行第n条历史命令

 ! 字符串 执行最后一次以这个字符串开头的命令

15.ifconfig 查看当前网卡信息

16.

[命令] > 输出重定向 把命令结果保存在文件中

eg:ifconfig > test.log

[命令] >> 文件名    以追加的方式输出重定向 把命令结果保存在文件中

[命令]2>>文件名    错误输出重定向(箭头两侧不加空格)

[命令] >> 文件名 2>&1   以追加的方式把正确的输出和错误的输出保存在同一文件中

[命令] &>> 文件名   以追加的方式把正确的输出和错误的输出保存在同一文件中

[命令] >> 文件1 2>>文件2  把正确输出追加到文件1,错误输出追加到文件2

17.

wc [选项] [文件名]   统计键盘输入

-c 统计字节数

-w 统计单词数

-l 统计行数

18.多命令顺序执行

;             命令1; 命令2          多个命令顺序执行,命令之间没有逻辑关系

&&            命令1&&命令2         命令1正确执行才会执行命令2,否则不会执行命令2

||               命令1||命令2            命令1执行不正确才会执行命令2,否则不会执行命令2

19.管道符

[命令1] | [命令2]  命令1的正确输出作为命令2的操作对象

20.more 查看文件内容

21.netstat 查看linux中所有的网络连接

eg: netstat -an | grep ESTABLISHED 查看当前建立的网络连接

eg: netstat -an | grep ESTABLISHED | wc 查看服务器上连接多少人

22.

?             匹配任意字符

*             匹配0个或任意多个字符,可以匹配任何内容

[]            匹配括号中任意字符[abc]匹配

[-]           匹配括号中任意一个字符[a-z],匹配小写字母

[^]          匹配非括号中内容[^0-9],匹配非括号中的字符

$            调用变量的值

23. control + c 停止程序运行状态

24. 程序修改后重新编译:进入到build文件夹 cmake ..  make  再退回到的.sh文件所在文件夹,再执行 sh run.sh

25.

剪切(删除):

剪切其实也就顺带删除了所选择的内容,所以既可以当剪切命令用,也可以当删除命令使用。

首先,可以在命令模式下输入v进入自由选取模式,选择需要剪切的文字后,按下d就可以进行剪切了。其他命令模式下剪切命令:dd:剪切当前行ndd:n表示大于1的数字,剪切n行dw:从光标处剪切至一个单子/单词的末尾,包括空格de:从光标处剪切至一个单子/单词的末尾,不包括空格d$:从当前光标剪切到行末d0:从当前光标位置(不包括光标位置)剪切之行首d3l:从光标位置(包括光标位置)向右剪切3个字符d5G:将当前行(包括当前行)至第5行(不包括它)剪切d3B:从当前光标位置(不包括光标位置)反向剪切3个单词dH:剪切从当前行至所显示屏幕顶行的全部行dM:剪切从当前行至命令M所指定行的全部行dL:剪切从当前行至所显示屏幕底的全部行

 另外:单独按d键,是剪切2行,按下nd,是剪切n+1行,不过一般使用还是推荐使用双d(即dd)来执行。

复制:

首先,可以在命令模式下输入v进入自由选取模式,选择需要剪切的文字后,按下d就可以进行剪切了。其他命令模式下剪切命令:yy:复制当前行nyy:n表示大于1的数字,复制n行yw:从光标处复制至一个单子/单词的末尾,包括空格ye:从光标处复制至一个单子/单词的末尾,不包括空格y$:从当前光标复制到行末y0:从当前光标位置(不包括光标位置)复制之行首y3l:从光标位置(包括光标位置)向右复制3个字符y5G:将当前行(包括当前行)至第5行(不包括它)复制y3B:从当前光标位置(不包括光标位置)反向复制3个单词

单独按y是复制2行,ny是复制n+1行。

粘贴:

在需要粘贴的光标处按下p即可。

26.linux下使用cmake配置工程方法

网址链接:https://www.ibm.com/developerworks/cn/linux/l-cn-cmake/index.html

27.cmake中各指令含义

网址链接:http://blog.csdn.net/u012839187/article/details/45790491

28.u 回退

29.cmake 重新编译前在根目录执行make clean

30.ldd 查看一个可执行程序依赖的共享库

31.















二、常见问题

1.命令行输入方式切换:bash

2.外部库没有连接上


解决:

进入配置文件   vim ~/.bashrc  

修改动态链接库路径 export LD_LIBRARY_PATH=/openblas的lib路径/lib:$LD_LIBRARY_PATH

3. Cannot use GPU in CPU-only Caffe: check mode.

解决:进入到examples/mnist/lenet_solver.prototxt 文件中,将GPU改为CPU

4.make caffe中

(1)
LD -o .build_release/lib/libcaffe.so.1.0.0-rc3/usr/bin/ld: cannot find -lhdf5_hl/usr/bin/ld: cannot find -lhdf5collect2: error: ld returned 1 exit statusMakefile:566: recipe for target '.build_release/lib/libcaffe.so.1.0.0-rc3' failedmake: *** [.build_release/lib/libcaffe.so.1.0.0-rc3] Error 1
解决:

In your Makefile.config change:

INCLUDE_DIRS := $(PYTHON_INCLUDE)/usr/local/include/usr/include/hdf5/serialLIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial

Please note that the path may vary depending on your OS.

(2)

Error message:

CXX src/caffe/util/hdf5.cppin file include from src/caffe/util/hdf5.cpp:1:0:./include/caffe/util/hdf5.hpp:6:18: fatal error: hdf5.h: No such file or directorycompilation terminated Makefile:572 recipe for target '.build_release/src/caffe/util/hdf5.o'       failed Make:*** [.build_release/src/caffe/util/hdf5.o] Error 1
解决:

What is the version of your Ubuntu install? Try this. In your Makefile.config try to append /usr/include/hdf5/serial/ to INCLUDE_DIRS:

--- INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include+++ INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/

and rename hdf5_hl and hdf5 to hdf5_serial_hl and hdf5_serial in the Makefile:

--- LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5+++ LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

More about the bug fix here.