Linux实用命令
Posted zhangzongjian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 [email protected]:/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 |
|
|
|
|
|
|
以上是关于Linux实用命令的主要内容,如果未能解决你的问题,请参考以下文章