Linux实用命令
关于 Linux 中单双引号的区别:
- 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
- 双引号里可以有变量,双引号里可以出现转义字符
- 反引号 param =
date
,命令替换,将命令的标准输出赋值给变量,同 *$(date)
命令返回值
- 0 :执行成功(即正常执行,并返回预期结果)
- 非0 :执行失败
- $? 代表上一个命令执行后的退出状态,也代表调用函数的返回值
- echo $? 查看返回值
列出当前目录下所有文件
find
在指定目录下查找文件
详细文件信息
-name
文件名
修改时间排序
-iname
文件名,忽略大小写
逆序排列
-type
d 文件夹、f 文件
可读的文件大小格式
常用用法
find . -name “abc”
显示隐藏文件
常用用法
ls -ltr
locate
查找符合条件的文件(查数据库)
updatedb
更新 locate 命令所必需的数据库文件
只查找文件夹
显示执行的详细过程
忽略大小写(默认不忽略)
常用用法
updatedb -v | less
注意事项
如果存在的文件查不到,updatedb
常用用法
locate abc aab (支持多关键词)
chmod
更改文件权限(读 r 写 w 执行 x )
chown
更改文件拥有者
777
rwx(r4 w2 x1)拥有者、群组、其他
子目录同样生效
子目录同样生效
user:group
使用者:群组
常用用法
chmod 777 test
常用用法
chown runoob:users file1.txt
diff
比较文件差异
创建文件同步链接,默认硬链接(自动同步的文件)
并列方式展示
创建软链接(快捷方式)
指定宽度(并列方式有效)
常用用法
ln -s a.txt b.txt
常用用法
diff a.txt b.txt -yW 50
less
浏览文件
vi/vim
编辑文件
常用用法
less a.txt
常用用法
vim a.txt
移动文件 / 文件重命名
scp
远程文件拷贝(双向)
覆盖同名文件时不提示
保留原文件的时间和权限等
常用用法
mv aaa bbb
递归复制整个目录,默认是不能复制文件夹的
常用用法
scp root@192.168.1.10:/root/a.txt /tmp/a.txt
删除文件,默认是不能删除目录
拷贝文件,默认不能拷贝目录
递归删除目录内的文件,删除目录
递归拷贝目录内的文件,拷贝目录
从不询问是否删除
从不询问是否覆盖文件
显示删除详情
保留原文件的时间和权限等(常用)
常用用法
rm -rf test
常用用法
cp aaa.txt bbb.txt
tee
把数据 打印到屏幕和文件中,类似 >
touch
刷新文件的时间属性,文件不存在则创建
追加到文件中,类似>>
常用用法
touch aa.txt
常用用法
echo abc | tee aa.log
read
标准输入(控制台输入),默认回车结束
grep
文件内查找字符串 / 筛选
输入数组,空格分割
忽略大小写,默认是不忽略
设置结束符
显示行号
输入前显示内容
递归子目录查找
限制输入长度
全词匹配
输入时不显示,像输密码那样
常用用法
find . -name “*.java” | xargs grep “main” –color
常用用法
read str
grep “main” *
sed
操作文件,增删改查(脚本常用)
expr
将表达式的值 打印到控制台
可以指定多个命令
expr $arg1 + $arg2(中间的空格是必需的,不加空格是字符串)
指定命令文件
字符串匹配
expr match “abcd” “.*bcd”,只能从头匹配,返回匹配长度
取消默认控制台输出,与p一起使用可打印指定内容
字符串长度
expr length “awefwe”,返回长度
输出到原文件,静默执行(修改原文件的意思)
字符串截取
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″,同上,有空格需要加引号
查看当前目录下的文件列表
不用let
sum=age+num,默认字符串操作,sum值为”age+num’字符串
pwd
查看当前目录的路径
切换目录
get a.txt
下载文件到当前目录(执行ftp ip的目录),自动覆盖
put a.txt b.txt
上传文件,自动覆盖
delete a.txt
删除文件
less a.txt
查看文件,同linux的less
查看各种ftp命令
显示文件系统的磁盘使用情况
显示文件夹所占空间大小
可读的文件大小格式
可读的文件大小格式
显示所有文件系统
常用用法
du -h 或者 du -h /tmp/zzj
常用用法
df -h
mkdir
创建文件夹
pwd
显示当前目录的绝对路径
父目录自动创建,用于创建多层文件夹
常用用法
pwd
常用用法
mkir -p /tmp/abc/ddd/test
stat
查看文件属性(创建时间、修改时间、权限修改时间 等)
tree
以树状图列出目录的内容 ,包括子目录里的文件
常用用法
stat test.txt
绘图字符显示树状图(推荐)
显示隐藏文件
文件类型着色,便于区分
显示完整文件路径
常用用法
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
列出当前系统打开 的文件
显示所有
指定端口筛选程序
域名转换为IP
常用用法
lsof -i:8080 查看8080端口程序
显示进程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
删除用户
创建用户主目录,默认在home目录下创建
删除用户主目录
不创建用户主目录
常用用法
userdel -r testuser
-d path
指定目录为用户主目录
创建时指定用户群组
常用用法
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
查看用户的 uid (用户唯一标识)、 gid 、所属群组
kill
关闭进程
常用用法
id testuser
-KILL
强制杀死进程
彻底杀死进程
常用用法
kill -9 PID
last
查看当前活跃连接和历史连接(类似 who )
logname
显示当前登录的用户名
常用用法
last
常用用法
logname
显示瞬间进程的状态
top
显示实时进程的状态
显示所有进程
-d 3
刷新周期,默认3秒
显示全格式列表
常用用法
top
常用用法
ps -ef 显示所有瞬间进程信息
shutdown
sudo
使用 root 用户执行命令(需要配置 /etc/sudoers 设置权限)
立刻重启(推荐)
常用用法
sudo test.sh 使用root执行脚本(需要输入当前用户密码)
立刻关机
与su区别
su root test.sh 也是使用root执行脚本(需要输入root密码)
提示关机,但不会关机
常用用法
shutdown -r now
切换用户
查看自己当前的连接
su root ./test.sh 使用指定用户执行脚本
常用用法
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中执行脚本
列出当前用户定时任务
sh test.sh 创建子shell执行脚本,普通变量不会被带到父shell
删除当前用户所有定时任务
常用用法
source /etc/profile 使修改立即生效
编辑定时任务 * * * date (分.时.日.月.星期)每分钟执行一次date命令
常用用法
crontab -l
declare
定义变量
set
显示所有变量和方法,同 declare
declare
显示所有变量和方法,同set
常用用法
set
显示函数
声明只读变量,只允许声明时赋值
声明环境变量,同export
声明整数型变量,同let
声明数组 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
显示套件的相关信息
export 显示环境变量,同env
显示指令执行过程
显示安装进度
–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 文件
将压缩后文件输出到控制台,保留原文件
不解压情况下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包也适用)
压缩文件夹 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
查看tar文件内容(vim也可以查看)
使用gzip或gunzip处理
显示执行过程
指定压缩或解压文件
指定解压目录,相当于unzip的-d,与unzip不同的是,目录要存在
常用用法
tar -cvzf test.tar.gz /tmp/zzj
tar -xvzf test.tar.gz
用于数学运算,
tail
查看文件结尾
直接执行bc,就是一个计算器,输入数学表达式运算
不断刷新
常用用法
echo ‘scale=2; (2.777 – 1.4744) / 1’ | bc 保留两位小数,输出1.30
指定显示行数
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,显示文件内容
统计行数 / 字数 / 字节数
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命令查看一次后记录消息
将后台命令调至前台执行,如果是Stopped状态则变成Running状态
常用用法
fg 15,数字对应后台命令编号
常用用法 bg 15,数字对应后台命令编号。可结合Ctrl+z使用,放到后台暂停再bg。
后台命令调至前台后,只能通过Ctrl+z再次放到后台,再bg继续执行
(普通命令后加 & 可直接后台执行,如:sh execute.sh &,同时得到后台命令编号和进程PID。后台命令可fg调到前台停止,也可以kill杀掉进程)
PID 等待同一个shell窗口的指定后台命令执行完毕,不能跨shell窗口
Original: https://www.cnblogs.com/zhangzongjian/p/10247672.html
Author: zhangzongjian
Title: Linux实用命令
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/606790/
转载文章受原作者版权保护。转载请注明原作者出处!