linux命令,一天敲3个

此贴每天不断更新,linux命令每天最少敲3个,闲的蛋疼敲10个,坚持!!!

 

首先注意命令区分大小写,命令间的空格不要省略

 

.sh文件执行

/data/shell/11.sh

1

cd /data/shell

./11.sh

2.

/data/shell/11.sh

3

cd /data/shell

bash 11.sh

 

改变目录 cd

首先是最重要的命令cd

目录名字区分大小写

#cd /     进入到系统根目录

#cd .     进入当前目录
#cd ..    进入当前目录的父目录,返回上层目录

#cd /tmp  进入指定目录/tmp

#cd ~     进入当前用户的home目录

#cd       进入当前用户的home目录

#cd -     回到刚才所在的目录

 

linux中用cd /home可以进入文件夹,但当home中还有个文件夹时,比如example,用cd /example 就进不去,而用cd example就可以

/ 前面加个点号 . 就可以了,. 表示当前路径。cd ./example
直接 / 表示根目录,根目录下不存在 example 文件夹,所以就进不去了。

 

列出文件目录 dir

#dir       显示当前目录的内容(无颜色)

dir加上cd命令linux的文件目录你就可以随便出入了

 

创建目录 mkdir

最基本用法

mkdir dir1           在当前目录下创建dir子目录

 

删除目录/文件 rm

最基本用法

rm -rf direct        不用确认直接删除当前目录下的direct文件夹

rm file     不用确认直接删除当前目录下的file文件

 

删除是危险系数很高的操作,一旦误删可能会造成难以估计的损失。在 Linux 系统中这种危险尤为明显,一条简单的语句:rm –rf /* 就会把整个系统全部删除,而 Linux 并不会因为这条语句的不合理而拒绝执行。

可以重新封装rm命令,实现回收站功能

 

回收站功能在 Linux 中的实现

linux 删除当前目录下的某一类型文件

利用命令:
find . -name "*.c" | xargs rm -rf

 

根据文件大小删除文件

find /TESTDIR -size +1000000c -exec rm -f {} \;
说明:删除目录下大于1M的所有文件
/TESTDIR 要删除目录下文件的目录名
rm -f 是执行删除命令操作 换成 du -h如: 查看目录下大于1M的文件find /TESTDIR -size +1000000c -exec du -h {} \;
注:{}和;\ 中间有空格

 

显示当前所在目录 pwd

pwd       显示当前所在目录的路径

 

复制文件命令 cp

最基本方法

cp opencv2_4_9.sh /home/hj/caffe  将当前目录下的opencv2_4_9.sh拷贝到/home/hj/caffe目录下

 

远程复制scp

cp就是secure copy,一个在linux下用来进行远程拷贝文件的命令。


有时我们需要获得远程服务器上的某个文件,该服务器既没有配置ftp服务器,也没有做共享,无法通过常规途径获得文件时,只需要通过简单的scp命令便可达到目的。


一、将本机文件复制到远程服务器上


#scp /home/administrator/news.txt root@192.168.6.129:/etc/squid


/home/administrator/      本地文件的绝对路径


news.txt                          要复制到服务器上的本地文件


root                                 通过root用户登录到远程服务器(也可以使用其他拥有同等权限的用户)


192.168.6.129                远程服务器的ip地址(也可以使用域名或机器名)


/etc/squid                       将本地文件复制到位于远程服务器上的路径

 

二、将远程服务器上的文件复制到本机


#scp remote@www.abc.com:/usr/local/sin.sh /home/administrator


remote                       通过remote用户登录到远程服务器(也可以使用其他拥有同等权限的用户)


www.abc.com              远程服务器的域名(当然也可以使用该服务器ip地址)


/usr/local/sin.sh           欲复制到本机的位于远程服务器上的文件


/home/administrator  将远程文件复制到本地的绝对路径


注意两点:


1.如果远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下:


#scp -p 4588 remote@www.abc.com:/usr/local/sin.sh /home/administrator


2.使用scp要注意所使用的用户是否具有可读取远程服务器相应文件的权限。

 

 

移动文件/目录 mv

最基本用法

hj@ubuntu:~$ mv opencv2_4_9.sh /home/hj/Pictures  将当前目录下的opencv2_4_9.sh移动到/home/hj/Pictures目录下
 

可以看看是否成功

hj@ubuntu:~$ cd Pictures
hj@ubuntu:~/Pictures$ dir
opencv2_4_9.sh

 

移动文件夹的用法和上面一样

 

查看文件大小

Linux中查看各文件夹大小命令du -h --max-depth=1

linux下使用 du查看某个文件或目录占用磁盘空间的大小

du -ah --max-depth=1     这个是我想要的结果  a表示显示目录下所有的文件和文件夹(不含子目录),h表示以人类能看懂的方式,max-depth表示目录的深度。

du命令用来查看目录或文件所占用磁盘空间的大小。常用选项组合为:du -sh

du -sh

 

 

管理历史命令 history

用history查看当前用户的命令历史记录

history -c清除当前用户的命令历史记录

 

退出root权限

exit

 

退出python命令行

使用 quit(), exit(), 或者Ctrl-D退出命令行

 

 

sudo chmod 777 filename

改变文件权限

 

+ 为文件或目录增加权限
- 删除文件或目录的权限
= 设置指定的权限

 

u stands for user.
g stands for group.
o stands for others.
a stands for all.

 

 

0没有任何权限---
1执行权限--x
2写入权限-w-
3执行权限和写入权限:1 (执行) + 2 (写入) = 3-wx
4读取权限r--
5读取和执行权限:4 (读取) + 1 (执行) = 5r-x       
6读取和写入权限:4 (读取) + 2 (写入) = 6rw-
7所有权限: 4 (读取) + 2 (写入) + 1 (执行) = 7rwx

 

 

 

Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

Solution:
sudo rm /var/cache/apt/archives/lock
sudo rm var/lib/dpkg/lock

 

 

cat命令

cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。

 

1.命令格式:

cat [选项] [文件]...

2.命令功能:

cat主要有三大功能:

1.一次显示整个文件:cat filename

2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.

3.将几个文件合并为一个文件:cat file1 file2 > file

3.命令参数:

-A, --show-all           等价于 -vET

-b, --number-nonblank    对非空输出行编号

-e                       等价于 -vE

-E, --show-ends          在每行结束处显示 $

-n, --number     对输出的所有行编号,由1开始对所有输出的行数编号

-s, --squeeze-blank  有连续两行以上的空白行,就代换为一行的空白行 

-t                       与 -vT 等价

-T, --show-tabs          将跳格字符显示为 ^I

-u                       (被忽略)

-v, --show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外

4.使用实例:

实例一:把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里

命令:

cat -n log2012.log log2013.log 

输出:

[root@localhost test]# cat log2012.log 

2012-01

2012-02

======[root@localhost test]# cat log2013.log 

2013-01

2013-02

2013-03

======[root@localhost test]# cat -n log2012.log log2013.log 

     1  2012-01

     2  2012-02

     3

     4

     5  ======

     6  2013-01

     7  2013-02

     8

     9

    10  2013-03

    11  ======[root@localhost test]#

说明:

实例二:把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里。 

命令:

cat -b log2012.log log2013.log log.log

输出:

[root@localhost test]# cat -b log2012.log log2013.log log.log

     1  2012-01

     2  2012-02

     3  ======

     4  2013-01

     5  2013-02

     6  2013-03

     7  ======[root@localhost test]#

实例三:把 log2012.log 的文件内容加上行号后输入 log.log 这个文件里 

命令:

输出:

[root@localhost test]# cat log.log 

[root@localhost test]# cat -n log2012.log > log.log

[root@localhost test]# cat -n log.log 

     1  2012-01

     2  2012-02

     3

     4

     5  ======

[root@localhost test]#

实例四:使用here doc来生成文件

输出:

[root@localhost test]# cat >log.txt <<EOF

> Hello

> World

> Linux

> PWD=$(pwd)

> EOF

[root@localhost test]# ls -l log.txt 

-rw-r--r-- 1 root root 37 10-28 17:07 log.txt

[root@localhost test]# cat log.txt 

Hello

World

Linux

PWD=/opt/soft/test

[root@localhost test]#

说明:

注意粗体部分,here doc可以进行字符串替换。

备注

tac (反向列示)

命令:

tac log.txt

输出:

[root@localhost test]# tac log.txt 

PWD=/opt/soft/test

Linux

World

Hello

说明:

tac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来!

 

grep命令

 

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。
grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。
1.命令格式:
grep [option] pattern file
2.命令功能:
用于过滤/搜索的特定字符。可使用正则表达式能多种命令配合使用,使用上十分灵活。
3.命令参数:
-a   --text   #不要忽略二进制的数据。   
-A<显示行数>   --after-context=<显示行数>   #除了显示符合范本样式的那一列之外,并显示该行之后的内容。   
-b   --byte-offset   #在显示符合样式的那一行之前,标示出该行第一个字符的编号。   
-B<显示行数>   --before-context=<显示行数>   #除了显示符合样式的那一行之外,并显示该行之前的内容。   
-c    --count   #计算符合样式的列数。   
-C<显示行数>    --context=<显示行数>或-<显示行数>   #除了显示符合样式的那一行之外,并显示该行之前后的内容。   
-d <动作>      --directories=<动作>   #当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。   
-e<范本样式>  --regexp=<范本样式>   #指定字符串做为查找文件内容的样式。   
-E      --extended-regexp   #将样式为延伸的普通表示法来使用。   
-f<规则文件>  --file=<规则文件>   #指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。   
-F   --fixed-regexp   #将样式视为固定字符串的列表。   
-G   --basic-regexp   #将样式视为普通的表示法来使用。   
-h   --no-filename   #在显示符合样式的那一行之前,不标示该行所属的文件名称。   
-H   --with-filename   #在显示符合样式的那一行之前,表示该行所属的文件名称。   
-i    --ignore-case   #忽略字符大小写的差别。   
-l    --file-with-matches   #列出文件内容符合指定的样式的文件名称。   
-L   --files-without-match   #列出文件内容不符合指定的样式的文件名称。   
-n   --line-number   #在显示符合样式的那一行之前,标示出该行的列数编号。   
-q   --quiet或--silent   #不显示任何信息。   
-r   --recursive   #此参数的效果和指定“-d recurse”参数相同。   
-s   --no-messages   #不显示错误信息。   
-v   --revert-match   #显示不包含匹配文本的所有行。   
-V   --version   #显示版本信息。   
-w   --word-regexp   #只显示全字符合的列。   
-x    --line-regexp   #只显示全列符合的列。   
-y   #此参数的效果和指定“-i”参数相同。
  
4.规则表达式:
grep的规则表达式:
^  #锚定行的开始 如:'^grep'匹配所有以grep开头的行。    
$  #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。    
.  #匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。    
*  #匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。    
.*   #一起用代表任意字符。   
[]   #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。    
[^]  #匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。    
\(..\)  #标记匹配字符,如'\(love\)',love被标记为1。    
\<      #锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。    
\>      #锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。    
x\{m\}  #重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。    
x\{m,\}  #重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。    
x\{m,n\}  #重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。   
\w    #匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。   
\W    #\w的反置形式,匹配一个或多个非单词字符,如点号句号等。   
\b    #单词锁定符,如: '\bgrep\b'只匹配grep。  
POSIX字符:
为了在不同国家的字符编码中保持一至,POSIX(The Portable Operating System Interface)增加了特殊的字符类,如[:alnum:]是[A-Za-z0-9]的另一个写法。要把它们放到[]号内才能成为正则表达式,如[A- Za-z0-9]或[[:alnum:]]。在linux下的grep除fgrep外,都支持POSIX的字符类。
[:alnum:]    #文字数字字符   
[:alpha:]    #文字字符   
[:digit:]    #数字字符   
[:graph:]    #非空字符(非空格、控制字符)   
[:lower:]    #小写字符   
[:cntrl:]    #控制字符   
[:print:]    #非空字符(包括空格)   
[:punct:]    #标点符号   
[:space:]    #所有空白字符(新行,空格,制表符)   
[:upper:]    #大写字符   
[:xdigit:]   #十六进制数字(0-9,a-f,A-F)

 

grep命令

 

查找命令总结

 

Linux下各种查找命令(find, grep, which, whereis, locate)

find寻找文件 

    命令:find 
    格式:find pathname [option] expression 
    功能:在所给的路经名下寻找符合表达式相匹配的文件。 
    选项:-name     表示文件名 
          -user     用户名,选取该用户所属的文件 
          -size     按大小查找,以block为单位,一个block是512B 
          -mtime n  按最后一次修改时间查找,选取n天内被修改的文件 
  -perm     按权限查找 
          -type     按文件类型查找 
  -atime    按最后一次访问时间查找 


    例如:% find ./ -name '*abc*' -print 

 

查找文件夹

 

find / -name mysql -type d

 

Linux文件查找命令find,xargs详述

 

 

搜索文件中匹配符 
    命令:grep 
    格式:grep [option] pattern filenames 
    功能:逐行搜索所指定的文件或标准输入,并显示匹配模式的每一行。 
    选项:-i    匹配时忽略大小写 
  -v 找出模式失配的行 


    例如:% grep -i 'java*' ./test/run.sh

 

nohup命令

nohup命令及其输出文件 
     nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。 
一般都是在linux下nohup格式:
nohup command 
或者 
nohup command & 
这之间的差别是带&的命令行,即使terminal(终端)关闭,或者电脑死机程序依然运行(前提是你把程序递交到服务器上); 
它把标准输出(STDOUT)和标准错误(STDERR)结果输出到nohup.txt文件这个看似很方便,但是当输出很大的时候,nohup.txt文件会非常大,或者多个后台命令的时候大家都会输出到nohup.txt文件,不利于查找结果和调试程序。 
所以能够重定向输出会非常方便。下面要介绍标准输出,标准输入 和标准错误了。 
其实我们一直都在用,只是没有注意到,    
比如 
>./command.sh > output 
#这其中的>就是标准输出符号,其实是 1>output 的缩写 
>./command.sh 2> output 
#这里的2>就是将标准错误输出到output文件里。 
而0< 则是标准输入了。 
下面步入正题,重定向后台命令 
>nohup ./command.sh > output 2>&1 & 
解释:前面的nohup 和后面的&我想大家都能明白了把。 
 
主要是中间的 2>&1的意思 
这个意思是把标准错误(2)重定向到标准输出中(1),而标准输出又导入文件output里面,  
所以结果是标准错误和标准输出都导入文件output里面了。 
至于为什么需要将标准错误重定向到标准输出的原因,那就归结为标准错误没有缓冲区,而stdout有。 
这就会导致 >output 2>output 文件output被两次打开,而stdout和stderr将会竞争覆盖,这肯定不是我门想要的. 
 
这就是为什么有人会写成: 
nohup ./command.sh >output 2>output出错的原因了 
########################## 
最后谈一下/dev/null文件的作用 
这是一个无底洞,任何东西都可以定向到这里,但是却无法打开。 
所以一般很大的stdou和stderr当你不关心的时候可以利用stdout和stderr定向到这里>./command.sh >/dev/null 2>&1

nohup 修改输出文件名

nohup 运行的时候,一般都会把输出导到nohup.out 文件(无论前台还是后天运行nohup),有的时候想导到指定的文件(尤其是同一个目录下 会启动多个nohup的时候),怎么做呢?

做法是给nohup 指定文件重定向:
nohup cmd_to_run 2>file_2 1>file_1
这样,cmd_to_run 运行产生的本来往标准输出的内容将会被保存在文件file_1, 而本来往标准错误输出的内容则会被保存在文件file_2中。

 

Linux终端关闭后台进程也结束原因分析和nohup的使用

LINUX nohup命令输入输出深浅进出

 

df

 

du

Linux磁盘空间查看及空间满的处理

 

 

xargs

 

 

cut

linux之cut用法

 

sed

linux之sed用法

 

awk

linux之awk用法

 

 

解压缩

rar

# rar a yajiu.rar yajiu.jpg yajiu.png
这条命令是将yajiu.jpg和yajiu.png压缩成一个rar包
# rar a yajiu.rar *.jpg
这条命令是将所有.jpg的文件压缩成一个rar包
# rar a yajiu.rar yajiu
这条命令是将文件夹yajiu压缩成一个rar包
# unrar e yajiu.rar
这条命令是将yajiu.rar中的所有文件解压出来

例1:添加文件或目录到压缩档案中,使用a命令。例如把文件files1添加到abc.rar中,使用a或m命令,a命令把file1文件添加到abc.rar档案中保持原有的file1文件不变,m命令移动file1文件到file1.rar档案中(压缩完成后会删除原有的file1文件,注意:m命令只针对文件进行操作)
$rar a abc.rar file1


说明:如果此时abc.rar档案不存在,会自行创建abc.rar文档案,如果abc.rar档案已经存在,则将file1文件压缩进abc.rar档案中,若abc.rar档案中已存在一个file1文件,则会更新file1文件。并且原有的file1文件依然存在于当前目录下,若要将file1文件移动到file1.rar中请使用m命令,对于目录同样可以进行此操作。
注意:如果只输入"rar a file1.rar"命令,而没有接文件名或目录名的话,会将当前目录下所有的文件和文件夹压缩进file1.rar文档中。这点要注意一下。


例2:解压缩abc.rar档案中的内容,可以使用e或x命令,假设abc.rar目录中有一个名为file1的文件和一个名为test的目录,test目录中有一个名为file2的文件,
$rar e abc.rar


说明:使用e命令,会将abc.rar中的file1文件连同test目录下的file2文件解压到当前目录。如果想保持abc.rar目录中的目录结构请使用x命令。
$rar x abc.rar


说明:此时会将file1文件和test目录解压到当前文件夹。

 

zip

# zip yajiu.zip yajiu.jpg yajiu.png
这条命令是将yajiu.jpg和yajiu.png压缩成一个zip包
# zip yajiu.zip *.jpg
这条命令是将所有.jpg的文件压缩成一个zip包
# zip -r yajiu.zip yajiu
这条命令是将文件夹yajiu压缩成一个zip包
# unzip yajiu.zip
这条命令是将yajiu.zip中的所有文件解压出来

 

 

7zip

支持 7Z,ZIP,Zip64,CAB,RAR,ARJ,GZIP,BZIP2,TAR,CPIO,RPM,ISO,DEB 压缩文件格式


安装: sudo apt-get install p7zip p7zip-full p7zip-rar


# 7z a yajiu.7z yajiu.jpg yajiu.png
这条命令是将yajiu.jpg和yajiu.png压缩成一个7z包
# 7z a yajiu.7z *.jpg
这条命令是将所有.jpg的文件压缩成一个7z包
# 7z a yajiu.7z yajiu
这条命令是将文件夹yajiu压缩成一个7z包
# 7z e yajiu.7z
这条命令是将yajiu.7z中的所有文件解压出来,e是解压到当前路径
# 7z x yajiu.7z
这条命令是将yajiu.7z中的所有文件解压出来,x是解压到压缩包命名的目录下

 

ln 命令

ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
1.命令格式:
 ln [参数][源文件或目录][目标文件或目录]
2.命令功能:
Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
软链接:
1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
2.软链接可以 跨文件系统 ,硬链接不可以
3.软链接可以对一个不存在的文件名进行链接
4.软链接可以对目录进行链接
硬链接:
1.硬链接,以文件副本的形式存在。但不占用实际空间。
2.不允许给目录创建硬链接
3.硬链接只有在同一个文件系统中才能创建
  这里有两点要注意:
第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;
第二,ln的链接又分软链接和硬链接两种,软链接就是ln –s 源文件 目标文件,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接 ln 源文件 目标文件,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。
ln指令用在链接文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,且最后的目的地并非是一个已存在的目录,则会出现错误信息。
3.命令参数:
必要参数:
-b 删除,覆盖以前建立的链接
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接)
-v 显示详细的处理过程
选择参数:
-S “-S<字尾备份字符串> ”或 “--suffix=<字尾备份字符串>”
-V “-V<备份方式>”或“--version-control=<备份方式>”
--help 显示帮助信息
--version 显示版本信息

 

http://www.cnblogs.com/peida/archive/2012/12/11/2812294.html

 

tail命令

linux tail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端,通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新,tail会自己主动刷新,确保你看到最新的档案内容。


一、tail命令语法


tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]
参数解释:
-f 该参数用于监视File文件增长。
-c Number 从 Number 字节位置读取指定文件
-n Number 从 Number 行位置读取指定文件。
-m Number 从 Number 多字节字符位置读取指定文件,比方你的文件假设包括中文字,假设指定-c参数,可能导致截断,但使用-m则会避免该问题。
-b Number 从 Number 表示的512字节块位置读取指定文件。
-k Number 从 Number 表示的1KB块位置读取指定文件。
File 指定操作的目标文件名称
上述命令中,都涉及到number,假设不指定,默认显示10行。Number前面可使用正负号,表示该偏移从顶部还是从尾部開始计算。
tail可运行文件一般在/usr/bin/以下。


二、tail命令使用方法演示例子


1、tail -f filename
说明:监视filename文件的尾部内容(默认10行,相当于增加参数 -n 10),刷新显示在屏幕上。退出,按下CTRL+C。


2、tail -n 20 filename
说明:显示filename最后20行。


3、tail -r -n 10 filename
说明:逆序显示filename最后10行。


补充:
跟tail功能相似的命令还有:
cat 从第一行開始显示档案内容。
tac 从最后一行開始显示档案内容。
more 分页显示档案内容。
less 与 more 相似,但支持向前翻页
head 仅仅显示前面几行

 

head命令

用法参考tail命令

 

useradd

linux 添加用户、权限

 

 

 

convert

convert命令可以用来转换图像的格式,支持JPG, BMP, PCX, GIF, PNG, TIFF, XPM和XWD等类型,下面举几个例子: 
  convert  xxx.jpg  xxx.png   将jpeg转成png文件 
  convert  xxx.gif   xxx.bmp  将gif转换成bmp图像 
  convert  xxx.tiff    xxx.pcx   将tiff转换成pcx图像 

 

可以用convert命令转换图片尺寸

convert -resize 160x80! inputFileName outputFileName

在尺寸后面加上"!"(感叹号)就可以了,表示强制转换,160x768中的x是小写字母x

 

convert -sample 50%x50%  xxx.jpg  xxx1.jpg   将图像的缩减为原来的50%*50% 
旋转图像: 
convert -rotate 270 sky.jpg sky-final.jpg      将图像顺时针旋转270度 
使用-draw选项还可以在图像里面添加文字: 
convert -fill black -pointsize 60 -font helvetica -draw 'text 10,80 "Hello, World!" ‘  hello.jpg  helloworld.jpg 
在图像的10,80 位置采用60磅的全黑Helvetica字体写上 Hello, World!

 

如下脚本可以把目录下的图片批量resize

for name in /path/to/imagenet/val/*.JPEG; do 
     convert -resize 256x256\! $name $name 
done 

for img in `ls imgs/*.jpg`; do convert -resize 500x500 $img $img; done

通过命令行处理图形

 

 

whiile循环

while true
do
   bypy.py syncdown
done

 

 

查杀进程

1.查进程
    ps命令查找与进程相关的PID号:
    ps a 显示现行终端机下的所有程序,包括其他用户的程序。
    ps -A 显示所有程序。
    ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
    ps -e 此参数的效果和指定"A"参数相同。
    ps e 列出程序时,显示每个程序所使用的环境变量。
    ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
    ps -H 显示树状结构,表示程序间的相互关系。
    ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
    ps s 采用程序信号的格式显示程序状况。
    ps S 列出程序时,包括已中断的子程序资料。
    ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
    ps u 以用户为主的格式来显示程序状况。
    ps x 显示所有程序,不以终端机来区分。
   
    最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定的进程进行操作。
    ps aux | grep program_filter_word,ps -ef |grep tomcat


ps -ef|grep java|grep -v grep 显示出所有的java进程,去处掉当前的grep进程。
   
2.杀进程
   使用kill命令结束进程:kill xxx
   常用:kill -9 324
   Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:# killall -9 NAME

 

WC

wc -c filename:显示一个文件的字节数
wc -m filename:显示一个文件的字符数
wc -l filename:显示一个文件的行数
wc -L filename:显示一个文件中的最长行的长度
wc -w filename:显示一个文件的字数

 

 

 

watch

作用:周期性执行某一命令,并将输出显示

watch的基本用法是:

watch [options]  command

最常用的参数是 -n, 后面指定是每多少秒来执行一次命令。

监视显存:我们设置为每 10s 显示一次显存的情况:

watch -n 10 nvidia-smi

 

 

统计某文件夹下文件、文件夹的个数

统计某文件夹下文件的个数
ls -l |grep "^-"|wc -l


统计某文件夹下目录的个数
ls -l |grep "^d"|wc -l


统计文件夹下文件的个数,包括子文件夹里的
ls -lR|grep "^-"|wc -l


如统计/home/han目录(包含子目录)下的所有js文件则:
ls -lR /home/han|grep js|wc -l 或 ls -l "/home/han"|grep "js"|wc -l


统计文件夹下目录的个数,包括子文件夹里的
ls -lR|grep "^d"|wc -l
说明:
ls -lR
长列表输出该目录下文件信息(R代表子目录注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等)


grep "^-"
这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d


wc -l
统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数。
 
 
======================================
如果只查看文件夹
ls -d  只能显示一个.
find -type d    可以看到子文件夹
ls -lF |grep /    或 ls -l |grep '^d'  只看当前目录下的文件夹,不包括往下的文件夹

 

linux命令

 

 

vi 文本编辑器

 

(1)vi test.c  创建(如果存在就默认打开)test.c文件,并进入文本编辑器
(2):q   没有修改直接退出
(3)i    进入vi以后,键入i进入插入模式就可以输入文件
(4):wq 退出并保存修改
(5):q!   退出不保存修改
(6)dd   删除当前行
(7)yy   拷贝当前行
(8)p    粘贴
(9):w   保存修改(不退出vi)
(0)a    进入vi以后,键入a进入追加模式就可以输入文件

 

 

 

VI常用命令
_______________________________________________________
一般模式                           光标移动
__________________________________________________________
h 或 向左方向键                    光标向左移动一个字符
j 或 向下方向键                    光标向下移动一个字符
k 或 向上方向键                    光标向上移动一个字符
l 或 向右方向键                    光标向右移动一个字符
Ctrl + f                           屏幕向前翻动一页(常用)
Ctrl + b                           屏幕向后翻动一页(常用)
Ctrl + d                           屏幕向前翻动半页
Ctrl + u                           屏幕向后翻动半页
+                                  光标移动到非空格符的下一列
-                                  光标移动到非空格符的上一列
n<space>                           接下数字后再按空格键,光标会向右移动这一行的
                                   n个字符,例如20<space>,则光标会向右移动20个字符
0                                  (这是数字0) 移动到这一行的第一个字符处(常用)
$                                  移动到这一行的最后一个字符处(常用)
H                                  光标移动到这个屏幕最上方的那一行
M                                  光标移动到这个屏幕中央的那一行
L                                  光标移动到这个屏幕最下方的那一行
G                                  移动到这个文件的最后一行(常用)
nG                                 移动到这个文件的第n行.例如20G,则会移动到这个文件的
                                   第20行(可配合:set nu)
n<Enter>                           光标向下移动n行(常用)
________________________________________________________________
一般模式                           查找替换
________________________________________________________________
/word                              在光标之前查找一个名为word的字符串
?word                              在光标之前查找一个名为的word字符串
:n1,n2s/word1/word2/g 在第n1与n2行之间查找word1这个字符串,并将该字符串替换
                                   为word2(常用)
:1,$s/word1/word2/g                从第一行到最后一行查找word1字符串,并将该字符串替换
                                   为word2(常用)
:1,$s/word1/word2/ge               从第一行到最后一行查找word1字符串,并将该字符串替换
                                   为word2,且在替换前显示提示符让用户确认(confirm)(常用)
__________________________________________________________________
一般模式                           删除 复制与粘贴
__________________________________________________________________
x,X                                x为向后删除一个字符,X为向前删除一个字符(常用)
nx                                 向后删除n个字符
dd                                 删除光标所在的那一整行(常用)
ndd                                删除光标所在行的向下n行,例如,20dd则是删除20行(常用)
d1G                                删除光标所在行到第一行的所有数据
dG                                 删除光标所在行到最后一行的所有数据
yy                                 复制光标所在行(常用)
nyy                                复制光标所在行的向下n行,例如,20yy则是复制20行(常用)
y1G                                复制光标所在行到第一行的所有数据
yG                                 复制光标所在行到最后一行的所有数据
p,P                                p为复制的数据粘贴在光标下一行,P则为粘贴在光标上一行(常用)
J                                  将光标所在行与下一行的数据结合成一行
u                                  恢复前一个动作(常用)
____________________________________________________________________
编辑模式                          
___________________________________________________________________
i,I                                插入:在当前光标所在处插入输入的文字,已存在的字符会向后
                                   退(常用)
a,A                                添加:由当前光标所在处的下一个字符开始输入,已存在的字符
                                   会向后退(常用)
o,O                                插入新的一行:从光标所在处的下一行行首开始输入字符(常用)
r,R                                替换:r会替换光标所指的那一个字符:R会一直替换光标所指的
                                   文字,直到按下Esc为止(常用)
Esc                                退出编辑模式,回到一般模式(常用)
___________________________________________________________________
命令行模式                          
___________________________________________________________________
:w                                 将编辑的数据写入硬盘文件中(常用)
:w!                                若文件属性为只读,强制写入该文件
:q                                 退出vi(常用)
:q!                                若曾修改过文件,又不想保存,使用!为强制退出不保存文件
:wq                                保存后退出,若为:wq!,则为强制保存后退出(常用)
:w [filename]                      将编辑数据保存为另一个文件(类似另存新文档)
:r [filename]                      在编辑的数据中,读入另一个论据的数据,亦即将filename这
                                   个文件内容加到光标所在行的后面
:set nu                            显示行号,设定之后,会在每一行的前面显示该行的行号
:set nonu                          与set nu相反,为取消行号
n1,n2 w [filename]                 将n1到n2的内容保存为filename 这个文件

 

 

用vi命令打开文件时,如何直接跳到最后一行?

 

用vi命令打开文件直接跳到最后一行的方法如下:
  :$ 跳到文件最后一行
:0或:1 跳到文件第一行
  或 另外一组命令:
  gg 跳到文件第一行
Shift + g 跳到文件最后一行

 

linux下vim命令详解

 

 

 

gcc编译器

 

(1)       gcc test.c 编译test.c,并生成默认a.out的可执行文件
(2)       ./a.out 执行程序a.out
(3)       gcc –c test.c 将test.c编译成目标文件test.o
(4)       gcc –o test test.o 将目标文件生成可执行文件test
(5)       gcc test.c –o test 编译test.c,并直接生成test可执行文件

 

 

 

makefile

Linux 如何写makefile文件

 

 

 

 

scipy安装

 

fedora&centos
sudo yum install numpy scipy python-matplotlib ipython python-pandas sympy python-nose

 

debian&ubuntu

 

sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose

 

matplotlib安装

 

 

  • Debian / Ubuntu : sudoapt-getinstallpython-matplotlib
  • Fedora / Redhat : sudoyuminstallpython-matplotlib

 

 

sklearn安装

if you have Python 2 you can install all these requirements by issuing:


sudo apt-get install build-essential python-dev python-setuptools \
                     python-numpy python-scipy \
                     libatlas-dev libatlas3gf-base
If you have Python 3:


sudo apt-get install build-essential python3-dev python3-setuptools \
                     python3-numpy python3-scipy \
                     libatlas-dev libatlas3gf-base
On recent Debian and Ubuntu (e.g. Ubuntu 13.04 or later) make sure that ATLAS is used to provide the implementation of the BLAS and LAPACK linear algebra routines:


sudo update-alternatives --set libblas.so.3 \
    /usr/lib/atlas-base/atlas/libblas.so.3
sudo update-alternatives --set liblapack.so.3 \
    /usr/lib/atlas-base/atlas/liblapack.so.3
Note   In order to build the documentation and run the example code contains in this documentation you will need matplotlib:


sudo apt-get install python-matplotlib


2.pip install --user --install-option="--prefix=" -U scikit-learn
或者 sudo apt-get install python-sklearn

 

 

Linux文件系统分析

 

设置Linux环境变量的方法和区别_Ubuntu

 

/etc/profile:此文件为系统的为每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d 目录的配置文件中搜集shell的设置.
/etc/bashrc :为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
~/.bash_profile :每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
~/.bashrc :该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取.
~/.bash_logout :当每次退出系统(退出bash shell)时,执行该文件. 


bash_profile 、.bashrc 、和.bash_logout
上面这三个文件是bash shell的用户环境配置文件,位于用户的主目录下。
.bash_profile是最重要的一个配置文件,它在用户每次登录系统时被读取,里面的所有 命令都会被bash执行。.profile(由Bourne Shell和Korn Shell使用)和.login(由C Shell使用)两个文件是.bash_profile的同义词,目的是为了兼容其它Shell。 在Debian中使用.profile文件代 替.bash_profile文件。
.bashrc 文件会在bash shell调用另一个bash shell时读取,也就是在shell中再键入bash命令启动一个新shell时就会去读该文件。这样可有效分离登录和子shell所需的环境。但一般 来说都会在.bash_profile里调用.bashrc脚本以便统一配置用户环境。
.bash_logout 在退出shell时被读取。所以我们可把一些清理工作的命令放到这文件中。


登录Linux时,首先启动 /etc/profile 文件,然后再启动用户目录下的 ~/.bash_profile、 ~/.bash_login或 ~/.profile文件中的其中一个(根据不同的linux操作系统的不同,命名不一样),执行的顺序为:~/.bash_profile、 ~/.bash_login、 ~/.profile。
如果 ~/.bash_profile文件存在的话,一般还会执行 ~/.bashrc文件

 

管道

管道实际上是一种固定大小的缓冲区,管道对于管道两端的进程而言,就是一个文
件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在于内存中。它类似于通信中半双工信道的进程通信机制,一个管道可以实现双向 的数据传输,而同一个时刻只能最多有一个方向的传输,不能两个方向同时进行。管道的容 量大小通常为内存上的一页,它的大小并不是受磁盘容量大小的限制。当管道满时,进程在 写管道会被阻塞,而当管道空时,进程读管道会被阻塞。

 

硬链接/软链接

( 1 )软连接可以跨文件系统,硬连接不可以
( 2 )硬连接不管有多少个,都指向的是同一个 I 节点,会把结点连接数增加,只要结点的连接数不是 0 ,文件就一直存在不管你删除的是源文件还是连接的文件。只要有一个存在文件就存在。 当你修改源文件或者连接文件任何一个的时候,其他的文件都会做同步的修改。软链接不直接使用 i 节点号作为文件指针 , 而是使用文件路径名作为指针。所以删除连接文件对源文件无影响,但是删除源文件,连接文件就会找不到要指向的文件。软链接有自己的 i 节点 , 并在磁盘上有一小片空间存放路径名。
( 3 )软连接可以对一个不存在的文件名进行连接 。
( 4 )软连接可以对目录进行连接。

Linux软连接和硬链接

 

安装zlib

 

在ubuntu软件源里zlib和zlib-devel叫做zlib1g zlib1g.dev
        $ sudo apt-get install zlib1g
        $ sudo apt-get install zlib1g.dev
       直接输入上述命令后还是不能安装。这就要求我们先装ruby.
       在ubuntu里,zlib叫zlib1g,相应的zlib-devel叫zlib1g.dev。默认的安装源里没有zlib1g.dev。要在packages.ubuntu.com上找。
       $sudo apt-get install ruby
       然后再装zlib1g-dev就可以了
       $sudo apt-get install zlib1g-devapt-get install zlib1g
        $ sudo apt-get install zlib1g.dev
       直接输入上述命令后还是不能安装。这就要求我们先装ruby.
       在ubuntu里,zlib叫zlib1g,相应的zlib-devel叫zlib1g.dev。默认的安装源里没有zlib1g.dev。要在packages.ubuntu.com上找。
       $sudo apt-get install ruby
       然后再装zlib1g-dev就可以了
       $sudo apt-get install zlib1g-dev

 

 

 

安装libiconv

 

编译 libiconv出错了

 

 

 

dcmtk安装

 

fedora上的dcmtk3.6.1编译

 

 

 

 

 

挂载硬盘没有执行脚本的权限

 

 

 

cmake使用教程

 

CMake入门教程

cmake处理多源文件目录的方法

 

 

 

 

gdb使用教程

如何使用gdb调试C程序 

常用gdb调试技巧整理

使用gdb调试程序完全教程

 

linux链接库

Linux链接库使用

 

shell脚本

 

shell编程初步学习

shell中for循环总结

shell算数运算

Syntax error: Bad for loop variable解决办法

 

 

深入探讨:linux中遍历文件夹下的所有文件

 

http://blog.csdn.net/gatieme/article/category/3054607

 

 

Ubuntu的apt-get代理设置

 

 

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值