[关闭]
@CrazyHenry 2018-05-19T19:27:46.000000Z 字数 2106 阅读 1279

2.文件及目录管理

xxxxLinux命令行


创建和删除

  1. mkdir 目录名 #创建目录
  2. rm -rf file/目录 #-r递归,-f强制
  3. rm *log #删除日志,日志都是以log结尾
  4. find ./ -name "*log" -exec rm {} \; #与上条等价,注意\和;都不能省略
  5. mv file1 fileb #将file1改名为fileb
  6. mv file1 folder/ #移动到某个folder
  7. mv folder1 folder2/ #y移动目录到某个目录下
  8. cp 1.cpp 2.cpp #将1.cpp 备份一份叫2.cpp
  9. cp -r folder folder.back #备份folder为folder.back
  1. find ./ | wc -l #递归搜索当前目录下的文件个数

目录切换

  1. 切换到上一个工作目录: cd -

列出目录项

  1. ls -lrt #按时间排序,以列表的方式显示目录项
  2. ls -al #-a表示显示隐藏文件
  3. ls | cat -n #每项文件前面增加一个id编号(看上去更加整洁)
  4. ls -lh #以human可读的方式显示
  1. alias lsl='ls -lrt' #在.bashrc 中设置命令别名

查找目录及文件 find/locate

  1. find ./ -name "*cpp" | xargs file

上述命令会在当前目录下递归搜索*cpp文件,并描述文件的所属类型。

image_1cd4r1sua14ht1k1bn5k138a1dhr2p.png-18.6kB

  1. find ./ -name "*.o" #检查目标文件夹是否有 .o文件

image_1cd6rjn0f1mvjj5rlms1lgh1vt09.png-5.9kB

  1. find ./ -name "*.o" -exec rm {} \; #检查到.o文件,然后删除

locate是一种通过一个locatedb来静态查找的命令,与find不同,find是一种动态查找的指令,而locate是一种静态查找。

  1. 查找系统中某个文件:
  2. locate libopenblas

image_1cd6s3gm8ed3tpiee51kbg1t3hm.png-95.9kB

因为整个系统是静态的,所以每次安装了新的软件都要更新才能查找到:

  1. sudo updatedb

查看文件内容

  1. cat -n #显示行号
  2. cat -n 1.cpp #看1.cpp文件
  3. ls -lrth | cat -n

image_1cd6semv41d3612cbjarh7h16ml13.png-19.5kB

与cat指令不同,more指令会逐页显示一个文件的内容

  1. more 1.cpp
  2. # 按空格下一页
  3. # 按b上一页
  4. ls -lrth | more
  1. head -10 1.cpp #只看前10行
  2. head -1 1.cpp #只看前1行
  3. tail -10 1.cpp #只看尾10行
  4. diff file1 file2 #显示两个文件的区别

查找文件内容

  1. egrep 'Hello' 1.cpp #在文件1.cpp里查找 “Hello”
  2. egrep 'Hello' 1.cpp > hello.out

image_1cd6u2dvd992teqif31sflk061g.png-18.9kB

文件与目录权限修改

  1. chmod -R u+x ./ #给当前目录下的所有文件增加 user级用户的执行权限
  2. chmod a+x 1.cpp #给1.cpp文件增加 所有用户增加执行权限

给文件增加别名

  1. ln -s 1.cpp 2.cpp #给1.cpp创建一个软连接,使用2.cpp就相当于使用1.cpp了!删除源,另一个无法使用。不要给软连接再创建软连接。

image_1cd6v0j8e16oe1t6915bkcpghtu2d.png-17.5kB

管道和重定向

  1. ls -lrth && echo suss || echo failed #echo就是输出 ,cat相当于读入后输出

image_1cd6vnqto13u51mb156817ud9ri5a.png-10kB

  1. ls -lrth > out.cc #内容重定向到out.cc文件

image_1cd6vrghb1k20gls15409uavd75n.png-18.8kB

  1. :> out.cc #清空out.cc文件

image_1cd6vt6ne1397v3h11b21165le564.png-12.2kB

  1. echo aa >> a.txt #echo的重定向

image_1cd70073q1mr01ptb1k211i0n1gsq91.png-14.1kB

设置环境变量

启动帐号后自动执行的是 文件为 .profile,然后通过这个文件可设置自己的环境变量;

环境变量的运行机制还不是很懂,echo $PATH可以输出环境变量。 $xxxx就是一些路径的集合,以:分割。

  1. echo 'export PATH="/usr/local/cuda-8.0/bin:$PATH"' >> ~/.bashrc
  2. echo 'export LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH"' >> ~/.bashrc
  3. echo 'export LIBRARY_PATH="/usr/local/cuda-8.0/lib64:$LIBRARY_PATH"' >> ~/.bashrc
  4. source ~/.bashrc
  5. PATH=$APPDIR:/opt/app/soft/bin:$PATH:/usr/local/bin:$TUXDIR/bin:$ORACLE_HOME/bin;export PATH

image_1cd70r3tu10q119ol1ssfdenbr49.png-32.5kB

bash快捷输入和删除

  1. Ctl-U 删除光标到行首的所有字符,在某些设置下,删除全行
  2. Ctl-K 删除光标到行尾的字符
  3. Ctl-W 删除当前光标到前边的最近一个空格之间的字符
  4. Ctl-R 匹配指令,找到最近的指令!!!!
  5. ctr+a:移动光标到命令行开始处(紧接命令提示符号)
  6. ctr+e:移动光标到命令行行尾
  7. alt+f: 往右跳一个词
  8. alt+b: 往左跳一个词

综合使用

  1. cat -v 1.cpp | grep Hello | grep -v BBB | wc -l
  2. #查找1.cpp中包含Hello,但不包含BBB的记录的总数

image_1cd71jse61asoj8tftbclhfsim.png-23.2kB

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注