Linux常用命令小结

1. linux中我们要知道linux系统中基本的命令格式如下:

命令字     【命令选项】 【命令参数】

命令字就是命令的名称,在输入命令时一定要注意命令的正确性。

命令选项就是定义一条命令输出结果的参数,命令的不同命令的选项个数和内容也会不同。

命令参数就是命令要处理的对象,通常命令参数是文件名、目录名或者用户名等。

在Linux命令输入过程中一般对于新手常犯的错误就是空格的使用,命令参数之间一定要有空格分开,命令输入结束时使用回车结束命令。

2. 基础命令

2.1 路径切换 cd  

如:

   cd usr   切换到该目录下usr目录

   cd ../     切换到上一层目录

   cd /       切换到系统根目录

   cd ~     切换到用户主目录

   cd -     切换到上一个所在目录

   cd /system/bin   表示切换到/system/bin路径下。

2.2目录的操作命令(增删改查)

  2.2.1增加目录操作(增)

        命令:mkdir 目录名称

        如:在根目录 / 下 mkdir test,就会在根目录 / 下产生一个test目录

2.2.2查看目录

  ls 命令

常用参数搭配:

ls -a 列出目录所有文件,包含以.开始的隐藏文件
ls -A 列出除.及..的其它文件
ls -r 反序排列
ls -t 以文件修改时间排序
ls -S 以文件大小排序
ls -h 以易读大小显示
ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来

注意:ls -l 可以缩写成ll

常用的有: 

   ls: 列出所有的文件,包括隐藏文件夹。

   ll: 详细列出目录下文件的权限,所有者文件大小等详细信息。

2.2.3 寻找目录(查)

命令:find 目录 参数

示例:查找/home/imgs下的img文件  find /home/imgs 'img'

2.2.4修改目录的名称(改)

命令:mv 目录名称 新目录名称

示例:根目录下有一个test目录,使用mv test newTest命令修改

注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行 重命名的操作

2.2.5 移动目录的位置---剪切(改)

命令:mv 目录名称 目录的新位置

示例:在test下将newTest目录剪切到 /usr下面,使用mv newTest /usr

注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作

2.2.6 拷贝目录(改)

命令:cp -r 目录名称 目录拷贝的目标位置 -----r代表递归拷贝

示例:将/usr下的newTest拷贝到根目录下的test中,使用cp -r /usr/newTest /test

注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不用写-r递归

2.2.7 删除目录(删)

命令:rm [-rf] 目录

示例:删除/usr下的newTest,进入/usr下使用rm -r newTest

示例:删除/test下的newTest而不需要询问强制删除,在/test下使用rm -rf newTest

注意:rm不仅可以删除目录,也可以删除其他文件或压缩包。 rm -rf 一定要慎用。。。

3.  文件的操作命令(增删改查)

3.1 文件的创建(增)

命令:touch 文件名称  ----- 空文件

示例:在test目录下创建一个空文件 touch aaa.txt

3.2文件的查看(查)

命令:cat/more/less/tail 文件

示例:使用cat查看/etc/sudo.conf文件,只能显示最后一屏内容

使用more查看/etc/sudo.conf文件,可以显示百分比,回车可以向下一行, 空格可以向下一页,q可以退出查看

使用less查看/etc/sudo.conf文件,可以使用键盘上的PgUp和PgDn向上 和向下翻页,q结束查看

使用tail -10 查看/etc/sudo.conf文件的后10行,Ctrl+C结束

注意:命令 tail -f 文件 可以对某个文件进行动态监控,例如tomcat的日志文件, 会随着程序的运行,日志会变化,

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/以下。

如:

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行。

1>全屏导航

    ctrl + F - 向前移动一屏

    ctrl + B - 向后移动一屏

    ctrl + D - 向前移动半屏

    ctrl + U - 向后移动半屏

2>单行导航

    j - 向前移动一行

    k - 向后移动一行

3>其它导航

   G - 移动到最后一行

   g - 移动到第一行

   q / ZZ - 退出 less 命令

4>查找

       more, less 都具备查找功能,按/ 然后输入要找的字串,再按 Enter 即可,按 n(next) 会继续找,大写的 N 则是往回(上)找,按 q(quit)或者ZZ离开

场景

场景1:按行号查看----过出关键字附近的日志

首先:cat -n test.log | grep "测试" 得到关键日志的行号

如得到"测试" 关键字在60行,此时如果想查看关键字前后10行的日志:

cat -n test.log | tail -n +50|head -n 20

tail -n +60表示查询60行之后的日志

head -n 20 则表示在前面的查询结果里再查前20条记录

场景2:查看指定时间段内的日志

sed -n '/2017-02-26 10:00:00/,/2017-02-26 10:08:23/p' test.log 
sed -n '/2017-02-26 10:00:/,/2017-02-26 10:08:/p' test.log

这个需要注意的地方是10:00:00或者10:00必须出现过. 
如果没有任何日志出现.请先查看是否存在

grep "2017-02-26 10:00" test.log

场景3:查看日志中特定字符的匹配数目

grep "test" test.log | wc -l

场景4:实时查看日志

tail -f test.log

场景5: 查询最后20行,并查找关键字“结果”,文字标红,上下扩展两行

tail -n 20 test.log | grep '结果' --color -a2

场景6: 分页查看,使用空格翻页(使用more/less)

cat -n test.log | grep "error" | more

3.3修改文件的内容(改)

命令:vim 文件

示例:编辑/test下的aaa.txt文件,使用vim aaa.txt

但此时并不能编辑,因为此时处于命令模式,点击键盘i进入编辑模式,可以 编辑文件

编辑完成后,按下Esc,退回命令模式

此时文件虽然已经编辑完成,但是没有保存,需输入冒号:进入底行模式,在底行模 式下输入wq代表写入内容并退出,即保存;输入q!代表强制退出不保存。

总结:

vim编辑器是Linux中的强大组件,是vi编辑器的加强版,vim编辑器的命令和快捷方式有很多,但此处不一一阐述,使用vim编辑修改文件的方式基本会使用就可以了。

关于vim使用过程:

在实际开发中,使用vim编辑器主要作用就是修改配置文件

vim 文件------>进入文件----->命令模式------>按i进入编辑模式----->编辑文件 ------->按Esc进入底行模式----->输入:wq/q!

3.4 删除文件(删)

    同目录删除:熟记 rm -rf 文件 即可

3.5 备份压缩命令

3.5.1 打包并压缩文件 

Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。

而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。

命令:tar -zcvf 打包压缩后的文件名 要打包压缩的文件

其中:z:调用gzip压缩命令进行压缩

          c:打包文件

          v:显示运行过程

          f:指定文件名

3.5.2 解压

命令:tar [-xvf] 压缩文件

其中:x:代表解压

将/test下的xxx.tar.gz解压到当前目录下     tar -xvf xxx.tar.gz

将/test下的xxx.tar.gz解压到根目录/usr下   tar -xvf xxx.tar.gz -C /usr------C代表指定解压的位置

常用解压参数组合 :zxvf

常用压缩参数组合:zcvf

4. 其它命令

4.1显示当前所在的文职  pwd

4.2搜索命令  grep 要搜索的字符串 要搜索的文件

4.3管道命令  |      将前一个命令的输出作为本次目录的输入

示例:查看当前系统中所有的进程中包括system字符串的进程   ps -ef | grep system

4.4查看进程    ps -ef  一般结合管道命令运用 

     如:查看redis的进程   ps -ef | grep redis

4.5查看当前系统的网卡信息:ifconfig

    查看与某台机器的连接情况:ping

    查看当前系统的端口使用:netstat -an

4.6文件或目录的查找     

    4.6.1 find命令 

      find命令的在查找文件或目录的功能非常强大,可以根据文件的大多数属性来查找文件,它的使用形式也是多变的,基本命令格式:find [path] [expression] 
     使用这条命令最常用的是按照文件名查找,文件名表达式的格式为:-name 文件名,其中文件名可以使用*或?通配符进行表示。符合条件的将被显示出来。

如:查找test文件,可以使用find / -name test

                                                          此种查询在查找过程中它查找的速度相当慢,而且十分耗硬盘。虽功能强大但不建议使用。

 4.6.2 which命令   

 which的基本功能是通过环境变量PATH到该路径内寻找可执行文件,所以用于查找可执行文件。    

命令格式:   which 可执行文件名称         

命令参数:

      -n  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

      -p  与-n参数相同,但此处的包括了文件的路径。

      -w  指定输出时栏位的宽度。

      -V  显示版本信息

如:查看jdk的安装路径

在此写上另一种查找jdk安装路径的方法:echo $JAVA_HOME

4.6.3 whereis 命令 

whereis可以迅速的找到文件,而且还提供了这个文件的二进制可执行文件、源代码文件和使用手册页存放位置。

如:查找test文件   whereis test

4.7 Linux的权限命令 

权限是Linux中的重要概念,每个文件/目录等都具有权限,通过ls -l命令我们可以 查看某个目录下的文件或目录的权限。

第一列的内容的信息解释如下:

文件的类型:

d:代表目录

-:代表文件

l:代表链接(可以认为是window中的快捷方式)

后面的9位分为3组,每3位置一组,分别代表属主的权限,与当前用户同组的用户的权限,其他用户的权限。

r:代表权限是可读,r也可以用数字4表示

w:代表权限是可写,w也可以用数字2表示

x:代表权限是可执行,x也可以用数字1表示

修改文件/目录的权限的命令:chmod

修改/test下的aaa.txt的权限为属主有全部权限,属主所在的组有读写权限,其他用户只有读的权限

chmod u=rwx,g=rw,o=r aaa.txt

 上述示例还可以使用数字表示: chmod 764 aaa.txt

另外:

  + 代表添加权限  

 -  代表去掉某些权限   

5. Linux查看端口被哪个进程占用

       1、lsof -i:端口号

       2、netstat -tunlp|grep 端口号

都可以查看指定端口被哪个进程占用的情况

lsof -i       lsof -i 用以显示符合条件的进程情况,lsof(list open files)是一个列出当前系统打开文件的工具。

lsof -i:端口号             用于查看某一端口的占用情况,比如查看80号端口使用情况,lsof -i:80

netstat -tunlp              用于显示tcp,udp的端口和进程等相关情况

netstat -tunlp|grep 端口号            用于查看指定端口号的进程情况,如查看80端口的情况,netstat -tunlp|grep 80

netstat命令各个参数说明如下:

-a:列出所有网络状态,包括 Socket 程序;
-c秒数:指定每隔几秒刷新一次网络状态;
-n:使用 IP 地址和端口号显示,不使用域名与服务名;
-p:显示 PID 和程序名;
-t:显示使用 TCP 协议端口的连接状况;
-u:显示使用 UDP 协议端口的连接状况;
-I:仅显示监听状态的连接;
-r:显示路由表;

即可显示当前服务器上所有端口及进程服务,于grep结合可查看某个具体端口及服务情况··

netstat -ntulp |grep 80 //查看所有80端口使用情况

netstat -anp | grep 3306 //查看所有3306端口使用情况

netstat -a                 //查看已经连接的服务端口

sudo netstat -ap       //查看所有的服务端口

nmap 扫描类型 扫描参数    //查看所有的服务端口并显示对应的服务程序名

6.防火墙

iptables防火墙

1、基本操作

查看防火墙状态   service iptables status  

停止防火墙   service iptables stop  

启动防火墙   service iptables start  

重启防火墙   service iptables restart  

永久关闭防火墙  chkconfig iptables off  

永久关闭后重启   chkconfig iptables on 

2、开启80端口

vim /etc/sysconfig/iptables

 加入如下代码
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

保存退出后重启防火墙    service iptables restart

firewall防火墙

1、查看firewall服务状态

       systemctl status firewalld

出现Active: active (running)切高亮显示则表示是启动状态。

出现 Active: inactive (dead)灰色表示停止,看单词也行。

2、查看firewall的状态    firewall-cmd --state
3、开启、重启、关闭、firewalld.service服务

# 开启
service firewalld start

# 重启
service firewalld restart

# 关闭
service firewalld stop

4、查看防火墙规则

firewall-cmd --list-all

5、查询、开放、关闭端口

# 查询端口是否开放
firewall-cmd --query-port=8080/tcp

# 开放80端口
firewall-cmd --permanent --add-port=80/tcp

# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp

#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

# 参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;

firewall是centos7里面的新的防火墙命令,它底层还是使用 iptables 对内核命令动态通信包过滤的,简单理解就是firewall是centos7下管理iptables的新命令

账号管理

切换用户:su 用户名

退出当前用户:ctrl + d

添加用户:useradd [选项] 用户名

设置/更新密码:passwd [选项] 密码 (密码不能是回文,如121正反读是一样的,这种不允许)

修改用户名:usermod -l 新用户名 旧用户名

删除用户:userdel [选项] 用户名

用户组管理

创建用户组:groupadd [选项]  用户组名

修改用户组:groupmod [选项]  用户组名

查询用户所属组:groups 用户名

删除用户组:groupdel 用户组名

管理用户组内成员

gpasswd [选项] 组名 用于将一个用户添加到组或者从组中删除

-a    添加用户到组

-d    从组中删除用户

-A     指定管理员

-M    指定组成员和-A的用途差不多

-r    删除密码

-R限制用户登入组

查看进程信息

1. top 显示进程实时的状态

    top -c

    top -p PID

2.ps 显示当前正在运行的进程信息,不能实时显示

    ps -A 显示系统中所有进程的信息

    ps -ef显示系统中所有进程的信息,完整信息

    ps -u 用户名   显示指定用户的进程信息

欢迎小伙伴们留言指正。。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值