Linux实用命令

Linux实用命令

 

 

关于Linux中单双引号的区别:

  • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
  • 双引号里可以有变量,双引号里可以出现转义字符
  • 反引号param=`date`,命令替换,将命令的标准输出赋值给变量,同$(date)

命令返回值

  • 0 :执行成功(即正常执行,并返回预期结果)
  • 非0 :执行失败
  • $? 代表上一个命令执行后的退出状态,也代表调用函数的返回值
  • echo $?  查看返回值

ls

列出当前目录下所有文件

find

在指定目录下查找文件

-l

详细文件信息

-name

文件名

-t

修改时间排序

-iname

文件名,忽略大小写

-r

逆序排列

-type

d 文件夹、f 文件

-h

可读的文件大小格式

常用用法

find . -name "abc"

-a

显示隐藏文件

常用用法

ls -ltr

locate

查找符合条件的文件(查数据库)

updatedb

更新locate命令所必需的数据库文件

-b

只查找文件夹

-v

显示执行的详细过程

-i

忽略大小写(默认不忽略)

常用用法

updatedb -v | less

注意事项

如果存在的文件查不到,updatedb

常用用法

locate abc aab (支持多关键词)

chmod

更改文件权限(读r w 执行x

chown

更改文件拥有者

777

rwx(r4 w2 x1)拥有者、群组、其他

-R

子目录同样生效

-R

子目录同样生效

user:group

使用者:群组

常用用法

chmod 777 test

常用用法

chown runoob:users file1.txt

diff

比较文件差异

ln

创建文件同步链接,默认硬链接(自动同步的文件)

-y

并列方式展示

-s

创建软链接(快捷方式)

-W

指定宽度(并列方式有效)

常用用法

ln -s a.txt b.txt

常用用法

diff a.txt b.txt -yW 50

less

浏览文件

vi/vim

编辑文件

常用用法

less a.txt

常用用法

vim a.txt

mv

移动文件 / 文件重命名

scp

远程文件拷贝(双向)

-f

覆盖同名文件时不提示

-p

保留原文件的时间和权限等

常用用法

mv aaa bbb

-r

递归复制整个目录,默认是不能复制文件夹的

常用用法

scp root@192.168.1.10:/root/a.txt  /tmp/a.txt

rm

删除文件,默认是不能删除目录

cp

拷贝文件,默认不能拷贝目录

-r

递归删除目录内的文件,删除目录

-r

递归拷贝目录内的文件,拷贝目录

-f

从不询问是否删除

-f

从不询问是否覆盖文件

-v

显示删除详情

-p

保留原文件的时间和权限等(常用)

常用用法

rm -rf test

常用用法

cp aaa.txt bbb.txt

tee

把数据打印到屏幕和文件中,类似>

touch

刷新文件的时间属性,文件不存在则创建

-a

追加到文件中,类似>>

常用用法

touch aa.txt

常用用法

echo abc | tee aa.log

read

标准输入(控制台输入),默认回车结束

grep

文件内查找字符串 / 筛选

-a

输入数组,空格分割

-i

忽略大小写,默认是不忽略

-d

设置结束符

-n

显示行号

-p

输入前显示内容

-r

递归子目录查找

-n

限制输入长度

-w

全词匹配

-s

输入时不显示,像输密码那样

常用用法

find . -name "*.java" | xargs grep "main" --color

常用用法

read str

grep "main" *

sed

操作文件,增删改查(脚本常用)

expr

将表达式的值打印到控制台

-e

可以指定多个命令

计算

expr $arg1 + $arg2(中间的空格是必需的,不加空格是字符串)

-f

指定命令文件

字符串匹配

expr match "abcd" ".*bcd",只能从头匹配,返回匹配长度

-n

取消默认控制台输出,与p一起使用可打印指定内容

字符串长度

expr length "awefwe",返回长度

-i

输出到原文件,静默执行(修改原文件的意思)

字符串截取

expr substr "abscw" 2 3,返回bsc,下标从1开始

常用用法

sed 's/old/new/gi' test.txt

字符查找

expr index "abcd" "dc",返回3,只能单个字符,哪个字符先出现

变量赋值

param=`expr $arg1 + $arg2`  (``将标准输出赋值给变量)

let

定义整型变量

ftp

连接FTP

let

let sum=age+3,不能有空格,变量不用加$,同declare -i

ftp ip

连接ftp服务器

let

let "sum = age + 3",同上,有空格需要加引号

ls

查看当前目录下的文件列表

不用let

sum=age+num,默认字符串操作,sum值为"age+num'字符串

pwd

查看当前目录的路径

cd

切换目录

get  a.txt

下载文件到当前目录(执行ftp ip的目录),自动覆盖

put a.txt b.txt

上传文件,自动覆盖

delete a.txt

删除文件

less a.txt

查看文件,同linux的less

?

查看各种ftp命令

df

显示文件系统的磁盘使用情况

du

显示文件夹所占空间大小

-h

可读的文件大小格式

-h

可读的文件大小格式

-a

显示所有文件系统

常用用法

du -h    或者   du -h /tmp/zzj

常用用法

df -h

mkdir

创建文件夹

pwd

显示当前目录的绝对路径

-p

父目录自动创建,用于创建多层文件夹

常用用法

pwd

常用用法

mkir -p /tmp/abc/ddd/test

stat

查看文件属性(创建时间、修改时间、权限修改时间等)

tree

以树状图列出目录的内容,包括子目录里的文件

常用用法

stat test.txt

-A

绘图字符显示树状图(推荐)

-a

显示隐藏文件

-C

文件类型着色,便于区分

-f

显示完整文件路径

常用用法

tree -AC test

telnet

查看某个端口是否可以访问

ifconfig

显示或设置网络设备

常用用法

telnet  192.168.1.2  8080

常用用法

ifconfig eth0 down 关闭eth0网卡

ifconfig eth0 up 启动eth0网卡

ifconfig eth0 192.168.1.12 修改ip

netstat

显示网络状态

lsof

列出当前系统打开的文件

-a

显示所有

-i

指定端口筛选程序

-n

域名转换为IP

常用用法

lsof -i:8080   查看8080端口程序

-p

显示进程PID / 进程名

linux环境下的任何事物都以文件的形式存在,例如:进程、网络连接等等都可以列出来

常用用法

netstat -anp | grep ":8080"    查看8080端口程序

lsof | grep vim | grep .swp   能查看当前正在编辑的文件和vim进程

端口不是独立存在的,它是依附于进程的。某个进程开启,那么它对应的端口就开启了,进程关闭,则该端口也就关闭了。而不要纯粹的理解为关闭掉某个端口,不过可以禁用某个端口

wall

广播消息给所有在线用户(who命令可查看)

which

查看命令的绝对路径

常用用法

wall hello

常用用法

which ls

man

查看命令的说明手册

ping

检测主机的连通性

常用用法

man ls

常用用法

ping 192.168.1.1

who

查看当前活跃连接

write

发送消息给指定在线用户(who命令可查看)

常用用法

who /var/log/wtmp 查看历史连接

常用用法

write root pts/1

useradd

创建用户

userdel

删除用户

-m

创建用户主目录,默认在home目录下创建

-r

删除用户主目录

-M

不创建用户主目录

常用用法

userdel -r testuser

-d path

指定目录为用户主目录

-g

创建时指定用户群组

常用用法

useradd testuser

date

显示当前时间

finger

查看用户信息

-d str

显示指定字符串所描述的时间,而非当前时间

常用用法

finger root

-s str

将系统时间设为字符串中指定的时间

less /etc/passwd 能查看所有用户

-r file

显示指定文件的最后修改时间

less /etc/group 查看所有用户群组

常用用法

date

sleep

等待指定时间(s m分钟 h小时 d天,不加单位默认秒)

常用用法

sleep 5s

groupadd

创建用户群组

groupdel

删除用户群组(只能删除空群组)

常用用法

groupadd testgroup

常用用法

groupdel testgroup

groupmod

修改用户群组

usermod

修改用户

-A user

groupmod -A user testgroup 将用户加入群组

-g group

usermod -g testgroup testuser 将用户加入群组

-R user

groupmod -D user testgroup 将用户移除群组

-d path

修改用户主目录

-g gid

groupmod -g 1234 testgroup 修改群组的gid

-u uid

usermod -u 123 testuser 修改用户的uid

id

查看用户的uid(用户唯一标识)、gid、所属群组

kill

关闭进程

常用用法

id testuser

-KILL

强制杀死进程

-9

彻底杀死进程

常用用法

kill -9 PID

last

查看当前活跃连接和历史连接(类似who

logname

显示当前登录的用户名

常用用法

last

常用用法

logname

ps

显示瞬间进程的状态

top

显示实时进程的状态

-e

显示所有进程

-d 3

刷新周期,默认3秒

-f

显示全格式列表

常用用法

top

常用用法

ps -ef  显示所有瞬间进程信息

shutdown

关机

sudo

使用root用户执行命令(需要配置/etc/sudoers设置权限)

-r

立刻重启(推荐)

常用用法

sudo test.sh 使用root执行脚本(需要输入当前用户密码)

-h

立刻关机

与su区别

su root test.sh  也是使用root执行脚本(需要输入root密码)

-k

提示关机,但不会关机

常用用法

shutdown -r now

su

切换用户

w

查看自己当前的连接

su root ./test.sh  使用指定用户执行脚本

常用用法

w

su -c ./test.sh root 使用指定用户执行命令或脚本

常用用法

su - oracle

clear

清屏

alias

设置命令的别名(/etc/profile配置永久生效)

常用用法

clear

unalias lt 取消别名

alias 列出所有设置的别名

常用用法

alias lt='ls -ltr'

source

在当前shell中执行文件中的命令

crontab

定时任务(后台执行)

source test.sh 在当前shell中执行脚本

-l

列出当前用户定时任务

sh test.sh 创建子shell执行脚本,普通变量不会被带到父shell

-r

删除当前用户所有定时任务

常用用法

source /etc/profile  使修改立即生效

-e

编辑定时任务* * * * * date  (分.时.日.月.星期)每分钟执行一次date命令

常用用法

crontab -l

declare

定义变量

set

显示所有变量和方法,同declare

declare

显示所有变量和方法,同set

常用用法

set

-f

显示函数

-r

声明只读变量,只允许声明时赋值

-x

声明环境变量,同export

-i

声明整数型变量,同let

-a

声明数组 arr=("ab" "cc" [5]="ww")

常用用法

declare test=abc

type

查看命令的类型

eval

执行字符串命令

alias 别名

常用用法

eval "test args1 args2"  例如调用函数,test为函数

keyword 关键字

shell 保留字

function 函数

builtin 内建命令

常用用法

type if

export

定义环境变量

rpm

RPM软件包管理工具

常用用法

export testparam=value

-i

显示套件的相关信息

export 显示环境变量,同env

-v

显示指令执行过程

-h

显示安装进度

--force

忽略报错,强制安装

常用用法

rpm -ivh packageName  安装软件包

passwd

设置用户密码

time

测量指令执行消耗的时间

常用用法

passwd testuser

常用用法

time cd /tmp

env

显示环境变量,同export

unset

删除环境变量

常用用法

env

常用用法

unset test

chkconfig

显示系统服务

service

管理系统服务

chkconfig iptables on/off 开关防火墙,重启生效

常用用法

service iptables stop/start/statu 开关防火墙,立即生效

常用用法

chkconfig

gzip

压缩gz文件(不能压缩目录,不保留原文件)

gunzip

解压gz文件

-c

将压缩后文件输出到控制台,保留原文件

-c

不解压情况下cat压缩包中的文件,同zcat

gzip test.txt    变成test.txt.gz文件,不保留原文件

gunzip test.txt.gz   变成test.txt文件,不保留压缩文件

常用用法

gzip -c test.txt > test.txt.gz

常用用法

gunzip -c test.txt.gz > test.txt

zip

压缩zip文件(jar包也适用)

unzip

解压zip文件(jar包也适用)

-r

压缩文件夹   zip -r test.zip /tmp/zzj

常用用法

unzip test.zip

常用用法

zip test.zip ab.java  如果zip包存在,则更新zip包

 unzip test.jar META-INF/maven/* 解压指定文件或文件夹

           

unzip -p test.jar META-INF/MANIFEST.MF 不解压cat压缩包里面的文件

zipinfo

查看zip文件内容(vim也可以查看)

tar

压缩解压tar文件(可保留软链接文件)

常用用法

zipinfo test.zip

-c

压缩

-x

解压

-t

查看tar文件内容(vim也可以查看)

-z

使用gzip或gunzip处理

-v

显示执行过程

-f

指定压缩或解压文件

常用用法

tar -cvzf test.tar.gz /tmp/zzj

tar -xvzf test.tar.gz

bc

用于数学运算,

tail

查看文件结尾

直接执行bc,就是一个计算器,输入数学表达式运算

-f

不断刷新

常用用法

echo 'scale=2; (2.777 - 1.4744) / 1' | bc   保留两位小数,输出1.30

-n

指定显示行数

echo '5 != 3' | bc   数字比较,输出1

常用用法

tail -f test.log

xargs

从标准输入构建和执行命令行

yum

自动下载rpm并安装

一般和管道一起使用,"|"符号表示管道

常用用法

yum install packageName

管道:将上一条命令的标准输出,传递给下一条命令

yum remove packageName

例如:find . -name "*.java" | grep "main",从文件名中grep

例如:echo "test.txt" | less,显示字符串

管道加上xargs:将上一条命令的结果转换成标准输入,传递给下一条命令

例如:find . -name "*.java" | xargs grep "main",从文件内容中grep

例如:echo "test.txt" | xargs less,显示文件内容

wc

统计行数/字数/字节数

 jar

 javaJDK带的命令,效果同zip命令,参数用法同tar命令;打jar包zip包都可

常用用法

wc test.txt

 常用用法

 jar -cvfM test.zip /tmp/zzj,-M表示不生成META-INF/MANIFEST.MF

ls -l | wc

jar -xvf test.zip 解压到当前目录

             

Ctrl+z

 

将正在执行的命令放到后台,并且暂停。同时得到一个后台命令的编号

 

jobs

状态

查看后台命令列表,只能看同一个shell窗口的

          Terminated 停止,使用kill杀掉进程对应的状态
          Running 正在运行
          Stopped 暂停,Ctrl+z对应的状态
          Done 完成,使用jobs命令查看一次后记录消息
             

fg

 

将后台命令调至前台执行,如果是Stopped状态则变成Running状态

  bg   将后台Stopped的命令置成Running状态
  常用用法

fg 15,数字对应后台命令编号

    常用用法 bg 15,数字对应后台命令编号。可结合Ctrl+z使用,放到后台暂停再bg。
   

后台命令调至前台后,只能通过Ctrl+z再次放到后台,再bg继续执行

     

(普通命令后加 & 可直接后台执行,如:sh execute.sh &,同时得到后台命令编号和进程PID。后台命令可fg调到前台停止,也可以kill杀掉进程)

             
 wait   进入阻塞状态,等待同一个shell窗口的所有后台命令执行完毕        
   PID 等待同一个shell窗口的指定后台命令执行完毕,不能跨shell窗口        
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
原文地址:https://www.cnblogs.com/zhangzongjian/p/10247672.html