linux常用命令总结

  1. 云栖社区>
  2. 博客>
  3. 正文

linux常用命令总结

技术小牛人 2017-11-08 19:30:00 浏览964
展开阅读全文

Linux基础课第三章常用基本的一些命令

文件处理命令

命令语法:命令  [-参数选项]  [文件或路径]

 

注解:1个别命令使用不遵循此格式

      2档有多个项目时,可以写在一起

      3简化选项与完整选项

      4[]代表可选

      5参数选项表示同一个命令的不同功能

 

目录处理命令:ls  选项[-ald]  [文件或目录]

显示目录文件 ls lh /etc   l详细  a所有  d属性 hkm等显示,R递归显示

 

[root@localhost ~]# ls -ld /tmp/japan/duobo

drwxr-xr-x 2 root root 4096 3月   8 15:46 /tmp/japan/duobo

 

-rw-r--r--

文件类型  -文件d目录,l软连接文件

 

rw- r-- r--

u   g   o

u所有者   g所属组  o其他人

r读  w写  x执行

 

 

创建目录命令:mkdir  -p递归创建  [目录名]

实例:mkdir -p /tmp/japan/duobo

      mkdir /tmp/japan/longze /tmp/japan/cangjing

 

Windows下的路径样式为c:\data ,而linux底下路径样式为/data,windows\,linux底下是/ .WINDOWS底下有d盘 c盘等盘符概念,而linux底下没有只有文件路径

 

 

切换目录命令:cd [目录路径]

 

记住一个概念;相对路径,绝对路径

绝对路径: Windows而言 :从头(盘符)开始的路径   linux而言:从/开始的路径

实例:H:\linux运维架构学习笔记\linux基础与系统管理总结   

[root@localhost /]# cat  /etc/sysconfig/network-scripts/ifcfg-eth0

相对路径:不从/开始的路径,不头开始的路径

实例:[root@localhost sysconfig]# cd network-scripts

 

实例:cd /tmp/japan/boduo 到指定目录

 

[root@localhost ~]# cd /tmp/japan/duobo

[root@localhost duobo]#

 

      cd ..上一级目录

[root@localhost ~]# cd /tmp/japan/duobo

[root@localhost duobo]#

 

      cd 当前主目录下

[root@localhost japan]# cd

[root@localhost ~]#

 

 

显示当前目录:pwd  打印工作目录

实例:  pwd

 

[root@localhost ~]# pwd

/root

 

删除空目录:rmdir  [目录]

实例:rmdir /tmp/janpan/boduo

 

[root@localhost duobo]# rmdir /tmp/japan/duobo

[root@localhost duobo]# ls

[root@localhost duobo]# cd ..

[root@localhost japan]# ls

[root@localhost japan]# cd

[root@localhost ~]# cd /tmp

[root@localhost tmp]# ls

can  japan  test1  test2  test3

 

创建空文件:touch  [文件名]  如果文件不存在,就建立新文件,如果存在,就改变文件的访问时间atime等时间戳信息

实例:touch japan.txt

创建有规则的多个文件

 touch beidaqinniao{1..10}

 

 

[root@localhost tmp]# ls

can  japan  test1  test2  test3

[root@localhost tmp]# touch japan.txt

[root@localhost tmp]# ls

can  japan  japan.txt  test1  test2  test3

 

 

创建有规则的多个文件

[root@localhost tmp]# touch beidaqinniao{1..10}

[root@localhost tmp]# ls

beidaqinniao1   beidaqinniao3  beidaqinniao6  beidaqinniao9  japan.txt  test3

beidaqinniao10  beidaqinniao4  beidaqinniao7  can            test1

beidaqinniao2   beidaqinniao5  beidaqinniao8  japan  

 

Echo输出命令

语法echo [选项] [输出内容]
选项 -e:  支持反斜线控制的字符转换

 

实例:


[root@localhost ~]# echo -e "ab\bc"

Ac

 

[root@localhost ~]# echo -e "a\tb\tc\nd\te\tf"

a       b       c

d       e       f

 

[root@localhost ~]#  echo -e "\e[1;33m luliechu is good boy \e[0m"     

输出颜色的命令

 

\e[1;代表开启颜色输出

\e[0m代表关键颜色输出

 


 echo -e "\e[1;33m a\t \e[1;31m b\n \e[1;32mc\t \e[1;34m d \e[0m "


 

 

标准输入输出

标准输入  0  键盘

标准输出  1   显示器

标准错误输出 2  显示器

 

输出重定向   >覆盖   >>追加

标准输出重定向  命令>文件    命令>>文件

标准错误输出重定向  错误命令 2>文件    错误命令2>>文件

 

正确输出和错误输出同时保存 命令 >> 文件 2>&1  以追加的方式,把正确的输出和错误的输出都保存到同一文件当中

                           命令&>>文件 以追加的方式,把正确的输出和错误的输出都保存到同一文件当中

 

                           命令>>文件1 2>>文件把正确的输出到文件1中,错误的输出到文件2

 

 

输入重定向:命令<文件


没有输出重定向有用,知道就行了,演示案例  wc命令

 

Wc   选项  文件名

选项  -c  统计字节数

      -w  统计单词数

      -l   统计行数

 

链接多个命令顺序执行符号

;    命令1;命令2   多个命令顺序执行,命令之间没有任何逻辑联系  ,只是简化操作,实际用于文件对拷命令  dd

实例:


Dd  if=输入文件  of=输出文件  bs=字节数  count=个数

选项  if=输入文件  指定源文件或源设备

of=输出文件   指定目标文件或目标设备

bs=字节数  把这些字节看做一个数据块

count=个数  指定输入/输出多少个数据块

 

实例:创建一个100m的文件大概需要多少时间


 

&&  命令1&&命令2  逻辑与 命令1正确才会执行命令2


||   命令1||命令2    逻辑或  命令1不正确才会执行命令2,命令1正确,就不会执行命令2

 

脚本长用&& ||结合用法,来判断条件成立与否


 

 

管道符|  将命令1的正确输出作为命令2的操作对象

命令1 |命令2

实例:监听正常连接


Grep [选项]  搜索内容  文件名

选项:

-i   忽略大小写

-n  输出行号

-v 方向查找

--color=auto 搜索出的关键字用颜色显示

 

 

 

 

复制目录或文件:cp -rp [源文件或目录] [目标目录]

                   -r递归复制整个目录树

                 -p保持源文件属性不变

                 -f强制覆盖目标同名文件或目录

                 -i需要覆盖时提醒

实例cp -r /tmp/japan/cangjing /root  将目录/tmp/japan/cangjing复制到目录/root

    cp -rp /tmp/japan/duobo /tmp/japan/longze /root   将目录/tmp/japan目录下的duobolongze复制到目录/root下,保持目录属性

 

 

 

文件移动,剪切,改名:mv  [源文件或目录][目标目录]

实例:mv test.txt  /home 将文件test.txt移动到/home 

 

删除文件:rm -fr [文件或目录]

             -r递归删除整个目录树

             -f强制删除文件或文件

             -i删除时提醒

实例:rm /tmp /yum.log  删除文件/tmp/yum.log

      rm -rf /tmp/japan/longze 删除目录/tmp/japan/longze

 

 

一次性显示文件内容:cat -n [文件名]

                -n显示行号

实例:cat /etc/issue

      cat -n /etc/services

 

 

反向显示文件内容:tac [文件名]

实例:tac /etc/issue

 

分页显示文件内容:more [文件名]

空格或f     翻页

                enter      换行

                qQ       退出

实例:more /etc/passwd

 

 

分页显示文件内容:less [文件名]  必须按q退出

实例:less /etc/passwd

 

 

显示文件前面几行 head -n [文件名]   不加行数默认是10

                -n 指定行数

实例:head -20 /etc/passwd

[root@localhost public]# head -n 2 test.txt   

test

liyao

 

显示文件后面几行  tail -n [文件名]   不加行数默认是10

                 -n 指定行数

                 -f 动态显示文件末尾内容

实例:tail -2 /etc/passwd

 

 

已知/tmp目录下已经存在text.txt文件,如果执行命令才能把/mnt/test.txt拷贝到/tmp下覆盖掉/tmp/test.txt

答案:\cp /mnt/test.txt /tmp  //覆盖文件不提示

 

 

生成软链接:ln -s [源文件] [目标文件]

               -s创建软链接

实例:ln s /etc/sysconfig/network-scripts  /a   创建软链接

      ln /etc/issue /tmp/issue.hard 创建硬链接

软链接类似:windows快捷方式

软链接文件权限都为777

文件大小只是符号链接

箭头指向原文件  /tmp/issue.soft ->/etc/issue

 

硬链接特征:

拷贝cp -p +同步更新

echo "this is a test">>/etc/motd

可通过I节点识别

不能跨分区

不能针对目录使用

 

 

改变文件或目录权限chmod [{ugoa}{=+-}{rwx}] [文件或目录]

                        [mode=421] [文件或目录]

                         -R 递归修改

权限的数字表示r=4 w=2 x=1  rwxrw-r--  等于764

实例:chmod g+w testfile  赋予文件testfile所属组写权限

 

      chmod -R 777 testdir修改目录testfile及其目录下文件为所有用户具有全部权限

文件目录权限总结

代表字符权限对文件的含义对目录的含义

  r        读可以查看文件内容可以列出目录中的内容

  w        写可以修改文件内容可以在目录中创建,删除文件

  x        执行可以执行文件可以进入目录

 

 

改变文件或目录的所有者:chown [用户][文件或目录]

实例:chown shenchao fengjie  改变文件fengjie的所有者为shenchao

 

改变文件或目录的所属组:chgrp [用户组][文件或目录]

实例:chgrp lam fengjie  改变文件fengjie的所属组为lam

 

显示,设置文件的缺省权限:umask [-S]

            -srwx形式显示新建文件缺省权限

实例:umask -S

 

 

文件搜索:find [搜索范围] [匹配条件]  五星级别命令

              -name按名称找

              -size按大小找使用+ -设置超过还是小于指定大小,单位kM,G

              -user  属于目标用户查找

              - type文件类型查找 f普通文件 d目录文件 b设备文件  c字符设备文件

实例:find  /etc -name  passwd 在目录/etc中查找文件passwd

      find  /etc -size  +2M  在目录/etc中查找大于2M的文件

      find /home -user test 搜索/home目录下由test创建的文件及目录列表

      find /etc -cmin -5  /etc下查找5分钟内被修改过的属性的文件和目录

               -amin  设置时间  access

               -cmin  文件属性  change

               -mmin  文件内容  modify         

      find /etc -size +80M -a size -100M  /etc下查找大于80M小于100M的文件

               -a两个条件同时满足

               -0两个条件满足任意一个即可

      find /etc -name inittab -exec ls -l {}\ /etc下查找inittab文件并显示其详细信息

               -exec/-ok 命令 {}\;对搜索结果执行操作

 

面试题:删除一个目录下的所有文件,但保留一个指定文件

 

解答:

假设这个目录是/xx/,里面有file1,file2,file3..file10  十个文件

[root@oldboy xx]# touch file{1..10}

[root@oldboy xx]# ls

file1  file10  file2  file3  file4  file5  file6  file7  file8  file9

 

方法一:find

[root@oldboy xx]# ls

file1  file10  file2  file3  file4  file5  file6  file7  file8  file9

[root@oldboy xx]# find /xx -type f ! -name "file10"|xargs rm -f 

[root@oldboy xx]# ls

file10

 

[root@oldboy xx]# find /xx -type f ! -name "file10" -exec rm -f {} \;     

[root@oldboy xx]# ls

file10

 

这两种一个通过xargs传参,一个通过find-exec执行命令参数来完成,都算作find

 

 find /tmp -type f  -name "*.txt" -exec          rm {} \;

     路径  类型   名字   find的结果传参  动作

 

 

Find /log -type f -name *.log -mtime +15 |xargs rm -f  //查找log目录,删15天以前修改过得文件

Find /log -type f -name *.luliechu -mtime +30 |xargs rm -fr //查找log目录,删30天以前修改过得的并且以luliechu名称结果的目录

 

[root@localhost /]# mv `find /tmp -type f -name "*.txt"` /tmp/public

[root@localhost /]# cd /tmp/public

[root@localhost public]# ls

1.txt  4.txt           luliechu1.txt  luliechu4.txt  luliechu7.txt

2.txt  5.txt           luliechu2.txt  luliechu5.txt  luliechu8.txt

3.txt  luliechu10.txt  luliechu3.txt  luliechu6.txt  luliechu9.txt

 

 

 

 

 

 

 

 

 

在文件资料库中查找文件:locate 文件名

实例:locate inittab

 

搜索命令所在目录及别名信息:which 命令

实例:which ls

 

 

搜索命令所在目录及帮助文档路径:whereis 命令名称

实例:whereis ls

 

 

在文件中搜索字符串匹配的行并输出:grep -iv [指定字串] [文件]  五星命令三剑客之一

              -i不区分大小写

              -v排除指定字串

实例:grep mysql /root/install.log

      grep root /etc/passwd

 

假设一个文本中包含luliechu,现在要求打印此文本中去除luliechu

模拟创建文本

[root@localhost public]# cat >>test.txt<<eof  //创建多行文本

> test

> liyao

> luliechu

> eof

[root@localhost public]# cat test.txt

test

liyao

luliechu

 

 

答案:

[root@localhost public]# grep -v luliechu test.txt   grep筛选过滤  -v排除

test

Liyao

 

[root@localhost public]# grep  luliechu test.txt   不加-v就是包含查找这东西

Luliechu

 

Alias查看和设置别名

[root@localhost public]# alias

alias cp='cp -i'

alias l.='ls -d .* --color=auto'

alias ll='ls -l --color=auto'

alias ls='ls --color=auto'

 

永久生效别名

[root@localhost tmp]# vi /root/.bashrc

  1 # .bashrc

  2

  3 # User specific aliases and functions

  4

  5 alias rm='rm -i'

  6 alias cp='cp -i'

  7 alias mv='mv -i'

  8 alias vi='vim'

  9 # Source global definitions

 10 if [ -f /etc/bashrc ]; then

 11         . /etc/bashrc

 12 fi

 

删除别名 unalias 别名

 

uniq去重命令  -c  计算有多少次重复的

 

实例:

创建测试数据:

[root@localhost ~]# echo 123 >test

[root@localhost ~]# echo 123 >>test

[root@localhost ~]# echo 123 >>test

[root@localhost ~]# echo 123 >>test

[root@localhost ~]# cat test

123

123

123

123

[root@localhost ~]# uniq test

123

[root@localhost ~]# uniq -c test

      4 123

 

sort对文本行进行排序

 

[root@localhost ~]# cat test

121

122

123

123

124

125

126

 

[root@localhost ~]# sort test

 

121

122

123

123

124

125

126

 

  -n数字排序   -r倒序

[root@localhost ~]# sort -rn test

126

125

124

123

123

122

121

 

  -t分隔符  -k指定第几个字段

-k3,3从第三个字段开始排序,到第三个字段结束

-k4.1,4.3 从第四个字段第1个字符开始排序,到第四个字段第3个字符结束

[root@localhost ~]# sort -t " "  -k 2 test

 

121 a

123 b

122 c

123 d

124 e

125 f

126 g

 

 

[root@localhost ~]# sort -n -t "." -k3,3 -k4,4.2 test

192.168.0.1

192.168.0.2

192.168.0.15

192.168.1.2

192.168.1.3

192.168.1.11

192.168.1.12

192.168.2.1

192.168.2.10

192.168.2.11

192.168.3.1

192.168.3.2

192.168.3.3

192.168.10.1

192.168.10.2

 

面试题:处理以下内容,并将域名取出并根据域名进行计数排序处理

 

对应:分析网络连接里,正在连接的所有ip地址,计数

      分析http服务,日志ip的访问次数,计数

 

创建测试数据

[root@localhost tmp]# cat >>test <<eof

> http://www.baidu.com/index.html

> http://www.kuparts.com/index.html

> http://post.etian.org/index.html

> http://www.baidu.com/index.html

> http://www.baidu.com/index.html

> http://www.jingdong.com/index.html

> http://kuparts.com/index.html

> eof

[root@localhost tmp]# cat test

http://www.baidu.com/index.html

http://www.kuparts.com/index.html

http://post.etian.org/index.html

http://www.baidu.com/index.html

http://www.baidu.com/index.html

http://www.jingdong.com/index.html

http://kuparts.com/index.html

 

[root@localhost tmp]# cat test |awk -F "/" '{print $3}'|uniq -c |sort -rn -k1

      2 www.baidu.com

      1 www.kuparts.com

      1 www.jingdong.com

      1 www.baidu.com

      1 post.etian.org

      1 kuparts.com

 

 

 

 

只查看ett.txt文件(100)内第2030行的内容

Seq打印序列号命令

[root@localhost public]# seq 5

1

2

3

4

5

[root@localhost public]# seq 1 3 10

1

4

7

10

 

答案:seq 100 >ett.txt   //模拟创建文件

第一种方法:head -30 ett.txt|tail -11

第二种方法:sed -n '20,30'p ett.txt

第三种方法:awk NR>19&&NR<31 ett.txt

 

 

Sed 流编辑器,用来将数据进行选取,替换,删除,新增的命令

 

root@localhost ~]# sed [选项[动作]’ 文件名   五星命令

选项:

-n: 一般sed命令会把所有数据都输出到屏幕 , 如果加入此选择,则只会把经过sed命令处 理的行输出到屏幕。

-e: 允许对输入数据应用多条sed命令编辑

-i: 用sed的修改结果直接修改读取数据的文件, 而不是由屏幕输出

 

动作:

a \: 追加,在当前行后添加一行或多行。添加多行时,除最后 一行 外,每行末尾需要用“\”代表数据未完结。

c \: 行替换,用c后面的字符串替换原数据行,替换多行时,除最 后一行外,每行末尾需用“\”代表数据未完结。

i \: 插入,在当期行前插入一行或多行。插入多行时,除最后 一行 外,每行末尾需要用“\”代表数据未完结。

d: 删除,删除指定的行。

p: 打印,输出指定的行。

s: 字串替换,用一个字符串替换另外一个字符串。格式为“行范 围s/旧字串/新字串/g”(和vim中的替换格式类似)。

 

sed -i 's##△ #g'  //sed替换

#是定意符,‘’□能用正则表达式  △不能用

 sed -i 's#wenxue#huangxiaoche#g' test2  

 

Find /public -type f -name *.sh|xagrs sed -i 's#wenxue#huangxiaoche#g' test2  

 

行数据操作

[root@localhost ~]# sed '2p' student.txt

#查看文件的第二行

[root@localhost ~]# sed -n '2p' student.txt

 

[root@localhost ~]# sed '2,4d' student.txt #删除第二行到第四行的数据,但不修改文件本身

 

[root@localhost ~]# sed '2a hello' student.txt #在第二行后追加hello [root@localhost ~]# sed '2i hello \ world' student.txt #在第二行前插入两行数据

 

# sed '2c No such person‘ student.txt

#数据替换

 

字符串替换

# sed s/旧字串/新字串/g’ 文件名

# sed '3s/74/99/g' student.txt

#在第三行中,把74换成99

#sed -i '3s/74/99/g' student.txt

#sed操作的数据直接写入文件

# sed -e 's/Li//g ; s/lin//g' student.txt

#同时把“Li”和“lin”替换为空

 

 

 

 

 

 

帮助命令:man [命令或配置文件]

实例:man ls  查看命令ls的帮助信息

      man services 查看配置文件services的帮助信息

 

 

获得sheel内置命令的帮助信息:help 命令

实例:help umask 查看umask命令的帮助信息

 

添加新用户:useradd 用户名

实例:useradd luliechu

 

设置用户密码:passwd 用户名

实例:passwd luliechu

 

查看登录用户信息:who

查看登录用户详细信息:w

 

压缩命令: gzip [文件]

Gzip压缩扩展名为.gz的文件

实例: gzip  test.txt

 

 

解压缩.gz的压缩文件:gunzip [压缩文件]

实例:gunzip boduo.gz

 

 

归档打包命令:tar 选项[-czf] [压缩后文件名] [目录]

          -c创建一个新包文件

          -x解开.tar格式的包文件

          -f使用文件归档

          -z调用gzip压缩或解压

          -j调用bzip2压缩或解压

实例:常用组合:tar  xzf       tar  xjf

Tar czvf  创建一个压缩包格式的包文件,显示执行的详细信息

Tar czf etc.tar.gz /etc  将目录/etc打包并压缩为.tar.gz文件

Tar xzvf  解开一个压缩格式的包文件,显示执行详细信息

Tar xzf etc.tar.gz –C /home

Tar tzvf  临时解开一个压缩格式的包文件,查看内部的列表

 

 

压缩文件或目录:zip 选项[-r][压缩后文件名][文件或目录]

            -r 压缩目录

实例:Zip test.zip  test.txt  Zip生成zip格式的压缩文件

zip -r japan.zip japan 压缩目录

 

 

解压缩zip格式的压缩文件:unzip [压缩文件]

Unzip test.zip –d /home

 

Bzip  压缩扩展名为.bz2    bzip  test.txt

Gzip 解压扩展名为.gz的文件  gzip d text.txt.gz

Bzip2  -d解压扩展名为.bz2的文件   bzip2 d text.txt.gzfa

 

 

给用户发信息:write <用户名>ctrl+d保存结束

实例:write luliechu

 

发送广播信息:wall [message]

实例:wall hello,word!

 

 

测试网络连通性:ping 选项 ip地址

        -c指定发送次数

实例: ping 192.168.1.1

 

 

查看网卡信息和ip地址:ifconfig 网卡名称  ip地址

实例:ifconfig eth0 192.168.1.2 设置ip地址为192.168.1.2

 

 

查看发送电子邮件:mail [用户名]

实例:mail root

 

列出目前与过去登入系统的用户信息:last

 

 

检查某特定用户上次登录时间:lastlog

实例:lastlog -u 502

 

显示数据包到主机间的路劲:traceroute

实例:traceroute www.baidu.com

 

查看网络相关信息:netstat  [选项]

    -t  :tcp协议

    -u  udp协议

    -l  :监听

    -r  :路由

    -n  :显示ip地址和端口号

实例:netstat -tlun查看本机监听的端口

      netstat -an  查看本机所有的网络连接

      netstat -rn  查看路由表

 

 

配置网络:setup

 

挂载命令:mount [-t文件系统设置文件名挂载点

实例:mount -t iso9660 /dev/cdrom /mnt/cdrom

 

关机命令:shutdown [选项时间

             -c 取消前一个关机命令

             -h  关机

             -r  重启

实例:shutdown -h now

 

其他关机命令:halt init 0poweroff

其他重启命令:reboot,innit6

 

 

Linux七种运行级别

0:关机

1:单用户模式相当于windos中安全模式

2:字符界面的多用户模式(不支持网络)

3:字符界面的多用户完整模式

4:未分配使用

5:图形界面多用户模式

6:重启

查看linux系统当前运行级别  runlevel

要修改默认的运行级别可改文件  /etc/inittabid:5:initdefault这一行的数字

 

退出登录命令:logout

 

 

 

命令于文件补全  tab

本文转自    探花无情   51CTO博客,原文链接:http://blog.51cto.com/983865387/1917731


网友评论

登录后评论
0/500
评论
技术小牛人
+ 关注