Linux 常用命令


一、快捷键

Ctrl+a          #光标快速到行首,等同于Home
Ctrl+e          #光标快速移到行尾,等同于End
Ctrl+b          #光标左移一个字母
Ctrl+f          #光标右移一个字母
Ctrl+z          #把命令放入后台
Ctrl+c          #强制终止当前命令
Ctrl+d          #退出当前登录,等同于exit/logout
Ctrl+l          #清屏
Crtl+r          #根据关键字从历史中搜索命令
Ctrl+左右方向键  #跳转单词

二、cp

语法

cp [options] source dest

参数

-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。

举例

使用指令 cp 将当前目录 test/ 下的所有文件复制到新目录 newtest 下

新文件夹不存在

$ cp –r test/ newtest

新文件夹已存在

$ cp –r test/* newtest/

三、cd

  1. 跳到目前目录的上一层目录
cd \.\.
  1. 后退到上个目录
cd -
  1. 跳到自己的 home 目录
cd ~

四、ls / chmod

通过ls命令可查看文件的权限

ls -ll

对应说明如下图:
在这里插入图片描述

通过chmod命令可以更改文件的读写执行权限

chmod [-cfvR] [--help] [--version] mode file...

参数

u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他用户,a 表示这三者皆是。

+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。

r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

举例

  1. 将文件 file1.txt 设为所有人可读
chmod a+r file1.txt
  1. 将文件 file1.txt 与 file2.txt 设为该文件拥有者、与其所属同一个群体者可写入,但其他用户则不可写入
chmod ug+w,o-w file1.txt file2.txt

五、wait

使用 wait 是在等待上一批或上一个脚本执行完(即上一个的进程终止),再执行wait之后的命令。参数为进程或作业标示,即指定进程号或者作业号。

1.等待作业号或者进程号制定的进程退出,返回最后一个作业或进程的退出状态状态。如果没有制定参数,则等待所有子进程的退出,其退出状态为0

2.如果是shell中等待使用wait,则不会等待调用函数中子任务。在函数中使用wait,则只等待函数中启动的后台子任务

3.在shell中使用wait命令,相当于高级语言里的多线程同

六、sleep

sleep支持的时间单位有秒、分、时,默认的单位是秒:

sleep 1
sleep 1s
sleep 1m
sleep 1h

七、history

history命令用于查看历史的命令
history命令看到的历史记录都默认保存在~/.bash_history,如root用户在/root/.bash_history
平时使用的Linux命令都会记录在缓冲区中,包括history命令所执行的历史命令管理,而不是直接操纵.bash_history文件
退出shell时,shell进程会把历史记录缓冲区的内容写回到.bash_history

语法

# history 选项 参数

参数

-n #显示最近的n条记录
-a #将历史命令缓冲区中命令写入历史命令文件中
-c #将目前的shell中的所有 history 内容全部消除,实际为假删除
-r #将历史命令文件中的命令读入当前历史命令缓冲区
-w #将当前历史命令缓冲区命令写入历史命令文件中
-d #删除历史记录中指定的行

举例

  1. 获取最近n条历史记录
[root@localhost ~]# history 2
  342  cd
  343  history 2
  1. 删除某行历史记录
[root@localhost ~]# history -d 25
  1. 清空历史记录(仅删除缓冲区中的历史记录)
[root@localhost ~]# history -c
[root@localhost ~]# history
    1  history
  1. 将当前缓存区中的历史记录写入文件
[root@localhost ~]# history -w
  1. 执行最后一次历史命令
[root@localhost ~]# !!
history 2
  342  cd
  343  history 2
  1. !+数字,执行历史中第n条命令
[root@localhost ~]# !30
cd /etc/sysconfig/network-scripts/
  1. !+字符串,搜索历史命令中最近一个以该字符开头的命令
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost ~]# !cd
cd /etc/sysconfig/network-scripts/
  1. 使用 set 命令隐藏/恢复记录历史命令
set +o history #表示开始隐藏

set -o history #表示结束隐藏

八、last

last原本被设计来显示某个特定用户的登录历史,这条命令实际上显示的是最近几天的系统运行时间。
在Linux中有一个特别的伪用户reboot,它会在系统重启的时候立即自动登录。通过检查reboot用户的登录历史,就可以检查最后的重启时间。

# last reboot
reboot system boot 2.6.32-431.el6.i Wed Jul 30 13:44 – 21:39 (46+07:55)
reboot system boot 2.6.32-431.el6.i Sun Apr 13 14:28 – 09:27 (107+18:59)
reboot system boot 2.6.32-431.el6.i Tue Mar 25 22:27 – 14:19 (18+15:52)

九、who

who 用于查看当前所有用户

语法

who [OPTION]... [ FILE | ARG1 ARG2 ]

参数

-b #展示上一次系统启动时间
-d #打印死掉的进程
-H #打印列首
-l #打印系统登录进程
-m #仅与标准输入关联的主机名和用户
-p #打印由初始化产生的活动进程
-q #展示所有登录用户信息和用户总数
-r #打印当前的运行级别
-s #等于无选项的情况(默认)
-t #打印上次系统时钟更改
-w #增加显示用户的消息状态,+、-、?
-u #列出登录的用户名

pkill -kill -t userName #踢出指定用户

十、which / whereis

  1. which 命令可以找出相关命令是否已经在搜索路径中。which 命令不显示用户没有执行权限的文件。
  2. whereis 命令搜索更大范围的系统目录。

十一、uname

uname命令显示多个系统信息,包括Linux内核体系结构,名称版本和发行版。

  1. 显示全部信息
uname -a
  1. 显示内核版本、系统版本、cpu信息
uname -srm

在这里插入图片描述

十二、lscpu / top / free

  1. 查看 cpu 的相关信息
lscpu
  1. 查看进程运行情况
top

top命令能够清晰的展现出系统的状态,而且它是实时的监控,按q退出。

Tasks行展示了目前的进程总数及所处状态,要注意zombie,表示僵尸进程,不为0则表示有进程出现问题。

Cpu(s)行展示了当前CPU的状态,us表示用户进程占用CPU比例,sy表示内核进程占用CPU比例,id表示空闲CPU百分比,wa表示IO等待所占用的CPU时间的百分比。wa占用超过30%则表示IO压力很大。

Mem行展示了当前内存的状态,total是总的内存大小,userd是已使用的,free是剩余的,buffers是目录缓存。

Swap行同Mem行,cached表示缓存,用户已打开的文件。如果Swap的used很高,则表示系统内存不足。

在top命令下,按1,则可以展示出服务器有多少CPU,及每个CPU的使用情况。一般而言,服务器的合理负载是CPU核数*2。也就是说对于8核的CPU,负载在16以内表明机器运行很稳定流畅。如果负载超过16了,就说明服务器的运行有一定的压力了。

在top命令下,按shift + “c”,则将进程按照CPU使用率从大到小排序,按shift+“p”,则将进程按照内存使用率从大到小排序,很容易能够定位出哪些服务占用了较高的CPU和内存。

  1. 查看内存使用情况
free -m
  1. 查看IO开销
iostat -x 1 10

iostat 用于监控输入输出状态,-x表示显示所有参数信息,1表示每隔1秒监控一次,10表示共监控10次。

其中rsec/s表示读入,wsec/s表示每秒写入,这两个参数某一个特别高的时候就表示磁盘IO有很大压力,util表示IO使用率,如果接近100%,说明IO满负荷运转。

十三、> / >>

  1. 覆盖文件
    输出到文件中,如果文件存在,则原来的内容被清空;不存在则创建文件
command > out.file
  1. 追加文件
    把输出追加到文件中,如果文件存在,追加到末尾;不存在则创建文件
command >> out.file

十四、2>&1

command > out.file 2>&1

0 ,1, 2分别代表stdin标准输入,stdout标准输出,stderr标准错误。

&与1结合代表标准输出,2>&1 将标准出错重定向到标准输出。这里的标准输出已经重定向到了out.file文件,所以标准出错也会输出到out.file文件中。

十五、; / && / ||

  1. 使用 “;” 符号运行多条指令
$ cmd1 ; cmd2 ; cmd3

首先执行cmd1,然后执行cmd2,最后执行cmd3
无论输入多少条指令都会按顺序一一执行,就算有指令执行失败也会继续执行后面的指令

  1. 使用 “&&” 符号运行多条指令
$ cmd1 && cmd2 && cmd3

首先执行cmd1
cmd1执行成功之后才执行cmd2,cmd2执行成功之后再执行cmd3
前一条指令执行失败,则后面的指令都不会执行

  1. 使用 “||” 符号运行多条指令
$ cmd1 || cmd2 || cmd3

首先执行cmd1
当cmd1执行失败时执行cmd2,当cmd2失败时执行cmd3
前一条指令执行成功,则后面的指令都不会执行

十六、& / nohup

  1. &
    当在前台运行某个作业时,终端会被该作业占据,可以在命令后面加上 & 实现后台运行,作业在后台运行一样会将结果输出到屏幕上。
    需要用户交互的命令不要放在后台执行,如果放在后台运行的作业会产生大量的输出,最好把它的输出重定向到某个文件中。
    该命令的一般形式为:
command &
  1. nohup
    使用&命令后,一但把当前控制台关掉(退出账户),作业就会停止运行。
    nohup(no hang up)命令可以在退出帐户之后继续运行相应的进程。
    该命令的一般形式为:
nohup command &
  • 使用nohup命令提交作业,在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非通过重定向另外指定了输出文件。

  • 使用nohup之后有可能在当前账户非正常退出或结束的时候,命令还是会自己结束。所以在使用nohup命令后台运行后,需要使用exit正常退出当前账户,这样才能保证命令一直在后台运行。

十七、nice/renice

进程优先级的值(也称为 nice 值 / NI值),Linux 系统中每个进程都有一个介于 -20 到 19 之间的 nice 值。默认情况下,进程的 nice 值为 0。

  1. nice 命令可以给要启动的进程赋予 NI 值,但是不能修改已运行进程的 NI 值。
nice [-n NI] 命令
  1. renice 命令可以在进程运行时修改其 NI 值,从而调整优先级。
renice [NI值] PID

十八、tar

最常用的打包命令是 tar,使用 tar 程序打出来的包我们常称为 tar 包,通常以 .tar 结尾。生成 tar 包后,就可以用其它的程序来进行压缩了,也可以在打包或解包的同时调用其它的压缩程序,比如 gzip、bzip2 等。

参数
参数 -f 是必须的

-f: 指定包的文件名 

以下五个参数相互独立,可以和别的命令连用,但只能使用其中一个

-c: 建立新的压缩包 
-x:解压 
-t:查看压缩包中的所有文件 
-r:向压缩归档文件末尾追加文件 
-u:更新原压缩包中的文件

以下参数根据需要在压缩或解压档案时可选

-z:有gzip属性的 
-j:有bz2属性的 
-Z:有compress属性的 
-v:显示所有过程 
-O:将文件解开到标准输出 

举例
1.tar打包

a.将所有 .jpg 的文件打成一个名为 all.tar 的包

tar -cf all.tar *.jpg

b.将所有 .gif 的文件增加到 all.tar 的包中

tar -rf all.tar *.gif

c.更新原来 tar 包 all.tar 中的 logo.gif 文件

tar -uf all.tar logo.gif

d.列出 all.tar 包中所有文件

tar -tf all.tar

e.解出 all.tar 包中所有文件

tar -xf all.tar

2.tar调用
gzip 是 GNU 组织开发的一个压缩程序,.gz 结尾的文件就是 gzip 压缩的结果,与 gzip 相对的解压程序是 gunzip。
tar 中使用 -z 这个参数来调用gzip。

a.生成 tar 包的同时用 gzip 压缩,得到 all.tar.gz

tar -czf all.tar.gz *.jpg

b.用 gunzip 解压

tar -xzf all.tar.gz

十九、let

let命令是Linux中的一个内建命令,使用let命令可以方便地进行数值计算,并将结果保存到一个变量中。

语法格式

let expression

参数说明
expression:要进行数值运算或赋值的表达式。
let命令支持常见的数值运算符,如加法(+)、减法(-)、乘法(*)、除法(/)和求余(%)。运算表达式可以包含变量、常数和运算符,可以使用括号来改变运算的优先级。
let命令执行完数值运算后,会将结果输出到标准输出,可以通过重定向或管道将结果传递给其他命令进行处理。除了进行数值运算,let命令还可以用于赋值操作。在赋值操作中,等号左边是一个变量名,等号右边是一个数值表达式。

错误情况
如果expression中包含非法的字符或语法错误,会导致命令执行失败,并输出错误信息,let不支持字符串操作。
如果expression中的运算结果超出了Shell脚本所能表示的范围,会导致溢出错误。
如果expression中的变量未定义或为空,会导致命令执行失败,并输出错误信息。

请注意,let命令不支持带有空格的表达式,如果表达式中有空格,需要使用引号将整个表达式括起来。另外,let命令只能进行数值运算,不支持字符串操作。如果需要进行字符串操作,可以使用其他命令或工具来实现。
在进行浮点数运算时,let命令会自动截断结果,只保留整数部分。如果需要保留小数部分,可以使用其他工具或技术来实现。
在进行赋值操作时,等号左右两边不能有空格。正确的写法是:let x=5+3,而不是let x = 5 + 3。


以上内容来源于网络知识总结,如有侵权请私信联系立即删除:)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值