Linux实用命令

时间:2019-01-10 17:18:26 来源:互联网 作者: 神秘的大神 字体:

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" "c",只能查找字符

 

 

 

 

 

变量赋值

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

 

 

 

 

 

 

 

let

 

操作变量(脚本常用)

 

ftp

 

连接FTP

 

let

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

 

 

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

 

显示环境变量

 

-f

显示函数

 

 

常用用法

set

 

-r

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

 

 

 

 

 

-x

声明环境变量,同export

 

 

 

 

 

-i

声明整数型变量

 

 

 

 

 

-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

显示套件的相关信息

 

 

 

 

 

-v

显示指令执行过程

 

 

 

 

 

-h

显示安装进度

 

 

 

 

 

--force

忽略报错,强制安装

 

 

 

 

 

常用用法

rpm -ivh packageName  安装软件包

 

 

 

 

 

 

 

passwd

 

设置用户密码

 

time

 

测量指令执行消耗的时间

 

常用用法

passwd testuser

 

 

常用用法

time cd /tmp

 

 

 

 

 

 

 

env

 

显示环境变量

 

unset

 

删除环境变量

 

常用用法

env

 

 

常用用法

unset test

 

 

 

 

 

 

 

chkconfig

 

显示系统服务

 

service

 

管理系统服务

 

 

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

 

 

常用用法

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

 

常用用法

chkconfig

 

 

 

 

 

 

 

 

 

 

 

gzip

 

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

 

gunzip

 

解压gz文件

 

-c

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

 

 

-c

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

 

 

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文件

 

unzip

 

解压zip文件

 

-r

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

 

 

常用用法

unzip test.zip

 

常用用法

zip test.zip ab.java

 

 

 

 

 

 

 

 

 

 

 

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,显示文件内容

 

 

 

 

 

 

 

 

 

 

 

b