Linux命令总结

Linux命令总结

http://www.92csz.com/study/linux/

pwd  打印出当前所在目录

su test 切换到test用户,当前目录不变

su - test 切换用户后则到了test的家目录/home/test

su 后不加用户,表示切换到root用户

./ 指的是当前目录

../ 指的是当前目录的上一级目录。

mkdir -p /tmp/test/123/   在temp/test下创建123目录(-p参数的作用了,就是递归创建目录,即使上级目录不存在。还有一种情况就是如果你想要创建的目录存在的话,会提示报错,然后你加上-p参数后,就不会报错了)

rmdir -p d1/d2/d3 只能删除目录不能删除文件,删除了d1,d1/d2, d1/d2/d3

rm -f /tmp/111  强制删除不存在的文件时加-f

rm -r /tmp/test  递归删除目录时需加-r,否则报错

rm -i  删除前询问

echo $PATH  打印path环境变量。

ls -a 列出全部目录和文件,包括隐藏的。linux文件系统中同样也有隐藏文件。这些隐藏文件的文件名是以.开头的。例如.test, /root/.123, /root/.ssh 等等,隐藏文件可以是目录也可以是普通文件。

ls -l 或者 ll  :详细列出文件的属性信息,包括大小、创建日期、所属主所属组等等

Ls -d 列出目录,而不是文件。

ln -s test test1 把test和test1建立连接

cp test1 test2

Cp -i 覆盖前询问

Cp -p 连同文件属性一起复制,而非使用默认属性。用于备份文件。

cp -d test1 test2   拷贝软连接,不拷贝文件本身

cp -r 递归拷贝目录

cat 命令则是读一个文件并显示在屏幕

cat -n 把行号也显示在屏幕

>  在linux中这叫做重定向,即把前面产生的输出写入到后面的文件中,如果后面文件有内容会删除文件中的内容。

>> 即把前面产生的输出追加到到文件最后面

touch 命令,看字面意思就是摸一下,没错,如果有这个文件,则会改变文件的访问时间,如果没有这个文件就会创建这个文件

mv aa cc  如果cc存在,则把aa移到cc下面;如果cc不存在,则把aa重命名cc。

mv -f 强制覆盖

more 也是用来查看一个文件的内容。在 more 这个程序的运行过程中,你有几个按键可以按的:

 

 

  • 空g格键 (space):代表向下翻一页;
  • Enter         :代表向下翻『一行』;
  • /字串         :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
  • :f            :立刻显示出档名以及目前显示的行数;
  • q             :代表立刻离开 more ,不再显示该文件内容。
  • b [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。

 

less 作用跟more一样。less运行时可以输入的命令有:

 

  • 空白键    :向下翻动一页;
  • [pagedown]:向下翻动一页;
  • [pageup]  :向上翻动一页;
  • /字串     :向下搜寻『字串』的功能;
  • ?字串     :向上搜寻『字串』的功能;
  • n         :重复前一个搜寻 (/ ? 有关!)
  • N         :反向的重复前一个搜寻 (/ ? 有关!)
  • q         :离开 less 这个程序;

 

head  head后直接跟文件名,则显示文件的前十行。如果加 –n 选项则显示文件前n行

head -n 5 /etc/passwd 显示前5行

tail 显示文件的后十行。如果加 –n 选项则显示文件后n行

通过alias把一个常用的并且很长的指令别名一个简洁易记的指令。如果不想用了,还可以用unalias解除别名功能。直接敲alias会看到目前系统预设的alias :

 

在bash下,可以使用*来匹配零个或多个字符,而用?匹配一个字符。

管道符”|”,就是把前面的命令运行的结果丢给后面的命令

env命令即可全部列出系统预设的全部系统变量

command1 ; command2  分号,用于多条命令间的分隔符

command1 && command2   只有command1执行成功后,command2才会执行

command1 || command2    command1执行成功后command2 不执行,否则去执行command2

[ ] :中括号,中间为字符组合,代表中间字符中的任意一个。

[0-9] 表示0~9的字符组合,[15]表示只含有1或5

”^”表示行的开始,”$”表示行的结尾,那么空行则表示”^$”,如果你只想筛选出非空行,则可以使用 “grep -v ‘^$’ filename”得到你想要的结果

grep -n ‘root’ /etc/passwd 过滤出带有关键字root的行,并输出行号

grep -v 过滤出不带有关键字的行

grep ‘^c’ /etc/passwd 过滤出c字符开头的行

grep ‘h$’ /etc/passwd 过滤出h字符结尾的行

grep ‘^$’ /etc/passwd 过滤出空行

grep ‘^[^a-zA-Z]’ /etc/passwd 过滤出不以字母开头的行

grep 'r..t' /etc/passwd  “.”表示任意一个字符,就是把符合r与o之间有两个任意字符的行过滤出来。

 “*”表示零个或多个前面的字符。 ‘.*’表示零个或多个任意字符,空行也包含在内。

 sed -n ‘1,4’p test.txt  打印1到4行,打印整个文档用 -n ‘1,$’p

sed -n ‘/^a/’p test.txt 打印a开头的行

sed -n ‘/root/’p test.txt 打印包含root的行

ps -a | less  查看所有进程,可以结合less命令来查看

ps -u username  根据用户过滤进程

ps -f   查看格式化的信息列表

ps -e 显示所有进程信息

ps -ef | grep 1000  查找进程id为1000的信息

ps -aux|grep 服务名    用于查看服务是否启动

ps -aux --sort -pcpu | less  根据 CPU 使用来降序排序

ps -aux --sort -pmem | less  根据 内存 使用来降序排序

ps -aux --sort -pcpu,+pmem | head -n 10  显示前十的cpu、内存使用率的进程

watch -n 1 'ps -aux --sort -pmem | head -n 10'    实时监控进程前10的内存使用率进程

netstat -nltp   查看启动了哪些端口

-a 所有端口 

-t  tcp端口

-u udp端口

 -p 显示进程id

-n  不显示主机,端口和用户名

-l  只显示linsten端口

netstat -an | grep 80  检测80端口是否在监听

netstat -ap | grep ssh   找出ssh进程的端口

tail -100f /APP/web/logs/log.log   实时查看某个服务的日志

vim test.txt 进入一般模式,按i,I,a,A,o,O,r,R进入编辑模式,屏幕最下一行出现INSERT。按ESC退出编辑模式。然后按:进入命令模式,最后输入wq保存退出。

 

                     一般模式下移动光标

h或向左方向键

光标向左移动一个字符

j或者向下方向键

光标向下移动一个字符

K或者向上方向键

光标向上移动一个字符

l或者向右方向键

光标向右移动一个字符

Ctrl + f 或者pageUP键

屏幕向前移动一页

Ctrl + b 或者pageDOWN键

屏幕向后移动一页

0(数字0)或者Shift+6

移动到本行行首

Shift+4

即’$’移动到本行行尾

H

 光标移动屏幕顶行

M

光标移动到当前屏幕的*那一行

L

光标移动到当前屏幕的最底行

G

光标移动到文本的最末行

nG(n是数字)

移动到该文本的第n行

gg

移动带该文本的首行

 

                  一般模式下查找与替换

/word

向光标之后寻找一个字符串名为word的字符串,当找到第一个word后,按”n”继续搜后一个

?word

想光标之前寻找一个字符串名为word的字符串,当找到第一个word后,按”n”继续搜前一个

:n1,n2s/word1/word2/g

在n1和n2行间查找word1这个字符串并替换为word2,你也可以把”/”换成”#”

:1,$s/word1/word2/g

从第一行到最末行,查找word1并替换成word2

:s/r1/r2/    替换当前行第一个 r2为 r1

:s/r2/r1/g   替换当前行所有 r2为 r1

                   一般模式下删除、复制粘贴

x,X

x为向后删除一个字符,X为向前删除一个字符

nx(n为数字)

向后删除n个字符

dd

删除光标所在的那一行

ndd(n为数字)

删除光标所在的向下n行

d1G

删除光标所在行到第一行的所有数据

dG

删除光标所在行到末行的所有数据

yy

复制光标所在的那行

nyy

复制从光标所在行起向下n行

p,P

p复制的数据从光标下一行粘贴,P则从光标上一行粘贴

进入编辑模式

 

i

在当前字符前插入字符

I

在当前行行首插入字符

a

在当前字符后插入字符

A

在当前行行末插入字符

o

在当前行下插入新的一行

O

在当前行上插入新的一行

命令模式

 

:w

将编辑过的文本保存

:w!

若文本属性为只读时,强制保存

:q

退出vim

:q!

不管编辑或未编辑都不保存退出

:wq

保存,退出

:e!

将文档还原成最原始状态

ZZ

若文档没有改动,则不储存离开,若文档改动过,则储存后离开,等同于:wq

:w [filename]

编辑后的文档另存为filename

:r [filename]

在当前光标所在行的下面读入filename文档的内容

:set nu

在每行的行首显示行号

:set nonu

取消行号

 Linux命令总结

 

 

gzip 压缩文件,不能压缩目录,bzip2用法相似  

gzip -d 解压缩,  bzip2用法相似

tar [-zjxcvfpP] filename

-z :是否同时用gzip压缩

-j :是否同时用bzip2压缩

-x :解包或者解压缩

-t :查看tar包里面的文件

-c :建立一个tar包或者压缩文件包

-v :可视化

-f :后面跟文件名,压缩时跟-f文件名,意思是压缩后的文件名为filename,解压时跟-f文件名,意思是解压filename。请注意,如果是多个参数组合的情况下带有-f,请把f写到最后面。

rpm  filename :安装一个rpm包

-i :安装      --force :强制安装,覆盖其他包的文件

-v :可视化    -h :显示进度

--nodeps :当安装包的依赖其他包时,即使其他包没有安装,也要安装这个包

rpm -Uvh filename -U :升级rpm包

rpm -e filename :卸载rpm包

rpm -q 包名  :查询一个包是否安装

yum list 列出所有可用的rpm包   

yum list |grep vim 搜索vim的可用包

yum search vim  搜索vim的rpm包

yum install [-y] [rpm包名]   安装包,不加-y选项,则会以与用户交互的方式安装

yum remove [-y] [rpm包名]  卸载包,不加-y选项,则会以与用户交互的方式卸载

yum update [-y] [rpm包]   升级一个rpm包 

chgrp [-R] 属组名文件名    递归更改目录下的所有文件的属组名

chown [–R] 属主名 文件名    更改文件属主

chown [-R] 属主名:属组名 文件名   更改文件属主和属组

chmod [-R] test    修改test文件或目录权限

每种身份(user/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:

  • user = rwx = 4+2+1 = 7  
  • group = rwx = 4+2+1 = 7
  • others= --- = 0+0+0 = 0

chmod

u
g
o
a

+(加入)
-(除去)
=(设定)

r
w
x

文件或目录

a表示all

chmod  a-x test   拿掉全部人对test的可执行权限。

df -h /etc     查看etc下的磁盘占用

wc 统计指定文件中的字节数、字数、行数,并将统计结果显示输出

-c 统计字节数。

-l 统计行数。

-m 统计字符数。这个标志不能与 -c 标志一起使用。

-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。

-L 打印最长行的长度。

 more 以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。

+n      从笫n行开始显示
-n       定义屏幕大小为n行
+/string  在每个档案显示前搜寻该字串,然后从该字串前两行之后开始显示

 常用操作命令:

Enter    向下n行,需要定义。默认为1行

空格键  向下滚动一屏

b  返回上一屏

=     输出当前行的行号

:f     输出文件名和当前行的行号

v    调用vi编辑器

!命令   调用Shell,并执行命令 

q       退出more

find 查找指定目录或文件

Linux命令总结   列出当前目录及子目录下所有文件和文件夹

Linux命令总结/home目录下查找以.txt结尾的文件名

Linux命令总结找出/home下不是以.txt结尾的文件

find  /home -mtime +7     找出7天前修改的

借助-exec选项与其他命令结合使用

 Linux命令总结找出当前目录下所有root的文件,并把所有权更改为用户tom

 Linux命令总结查找当前目录下所有.txt文件并把他们拼接起来写入到all.txt文件中

top  实时显示 process 的动态。


往linux服务器上传/下载各种安装包,安装rz/sz一步搞定,执行命令

yum install lrzsz

剩下就简单了,在Xshell:

输入rz,会弹出文件选择框,上传文件到Linux

输入sz文件名,会下载文件到Windows~