Linux 常用命令
大约 6 分钟
Linux 常用命令
在CentOS中如果找不到命令使用如下命令安装
yum install -y [命令]
# 万能命令
[命令] --help
# 搜索历史命令(快捷键)
CTRL + R
后面参数都以 [ ] 表示
一、文件和目录
# 进入目录
cd [目录名]
# 查看当前路径
pwd
# 新建文件
touch [文件名]
# 创建文件夹
mkdir [文件夹名]
# 同时创建2个目录
mkdir [dir1] [dir2]
# 创建目录树(tmp/dir1/dir2)
mkdir -p /tmp/dir1/dir2
# 文件添加权限(执行权限为例)
chmod +x [文件名]
# 递归给文件加权限(以777权限为例)
chmod -R 777 [文件名]
# 移动文件/文件夹
mv [文件名/文件夹] [路径]
# 文件/文件夹重命名
mv [旧文件名/旧文件夹名] [新文件名/新文件夹名]
# 拷贝文件
cp [文件] [拷贝后的文件名]
# 拷贝文件夹
cp -r [文件夹] [拷贝后的文件夹名]
# 拷贝某个目录下的所有文件到当前文件目录
cp dir/* .
# 远程传输文件
scp [文件] [用户名]@[IP]:[目录]
scp test.txt root@192.168.100.99:/opt
# 远程传输目录
scp -r [目录] [用户名]@[IP]:[目录]
# 递归删除文件
rm -rf [dir]
# 下载文件(不是所有机器都支持)
sz [文件名]
# 创建指向文件/目录的软链接
ln -s file1 link1
# 查找文件(在根目录查找file1文件)
find / -name file1
# 在目录/dir中搜索带有.log后缀的文件
find /dir -name *.log
# 快速定位文件
locate [关键词]
# 快速查找二进制文件/可执行文件的路径(可以用来查找系统命令的二进制文件路径)
whereis bash
whereis crontab
whereis ls
# 查看文件
cat [文件路径]
# 查看内容并标识行数
cat -n [文件路径]
# 查看一个长文件的内容
more [文件名]
# 查看文件的前两行
head -2 [文件名]
# 查看文件的后2行
tail -2 [文件名]
# 实时查看添加得到文件的内容
tail -f [文件名]
# 在文件hello.txt中查找hello
grep hello hello.txt
二、系统信息和性能查看
# 显示系统名、节点名称、操作系统的发行版号、内核版本等等
uname -a
# 查看内核版本
uname -r
# 查看处理器架构
uname -m
arch
# 查看计算机名
hostname
# 显示当前登录系统的用户名
who
# 显示登录时的用户名
who am i
# 显示当前用户名
whoami
# 查看Linux版本信息
cat /proc/version
# 查看cpu信息
cat /proc/cpuinfo
lscpu
# 查看中断 (列出当前所以系统注册的中断,记录中断号,中断发生次数,中断设备名称)
cat /proc/interrupts
# 查看系统负载
cat /proc/loadavg
# 查看系统环境
cat /etc/os-release
# 查看系统运行时间、用户数、负载
uptime
# 查看系统环境变量
env
# 查看已加载的系统模块
lsmod
# 查看内存总量
grep MemTotal /proc/meminfo
# 查看空闲内存量
grep MemFree /proc/meminfo
# 查看内存用量和交换区用量
free -m
# 显示系统时间
date
# 显示2022日历表
cal 2022
# 动态显示cpu/内存/进程等信息
top
# 采集系统状态(1秒采集一次,共采集10次)
vmstat 1 10
三、磁盘和分区
# 查看磁盘使用情况及挂载点
df -h
df -hl
# 获取节点信息
df -i
# 查看所有磁盘分区
fdisk -l
# 查看所有交换分区
swapon -s
# 查看指定某个文件的大小
du -sh [文件路径]
# 从大到小依次显示文件和目录大小
du -sh * | sort -rn
# 挂载hda2盘
mount /dev/hda2 /mnt/hda2
# 指定文件系统类型挂载(如:ntfs)
monut -t ntfs /dev/sdc1 /mnt/cdrom
# 挂载ios文件
mount -o loop xxx.ios /mnt/cdrom
四、关机/重启/注销
# 立即关机
shutdown -h now
init 0
poweroff
# 关机
telinit 0
halt
# 10分钟后关机
shutdown -h 10
# 指定时间关机(12:00关机)
shutdown -h 12:00
# 取消指定时间关机
shutdown -c
# 重启
shutdown -r now
reboot
init 6
# 10分钟后重启
shutdown -r 10
# 指定时间重启(12:00重启)
shutdown -r 12:00
# 退出登录shell
logout
区别:待补充
五、用户和用户组
# 创建用户
useradd [用户名]
# 删除用户
userdel -r [用户名]
# 查看系统所有用户
cut -d: -f1 /etc/passwd
# 查看系统用户详细信息
cat /etc/passwd
# 查看系统用户密码(只有root权限可读)
cat /etc/shadow
# 修改root密码 passwd -> 回车
passwd
# 修改用户密码,用户名 -> 回车
passwd [用户名]
# 切换用户
su [用户名]
# 查看活动用户
w
# 查看指定用户信息
id [用户名]
# 创建用户组
groupadd [用户组名]
# 删除用户组
groupdel [用户组名]
# 重命名用户组
groupmod -n [新名称] [旧名称]
# 查看系统所有用户组
cut -d: -f1 /etc/group
# 查看系统所有用户详细信息
cat /etc/group
# 修改用户的组
usermod -g [组名] [用户名]
# 将用户添加到组
usermod -aG [组名] [用户名]
# 查看用户所在的组
groups [用户名]
# 查看用户登录日志
last
六、网络和进程
# 查看网卡
ip addr
# 查看网络接口属性
ifconfig
# 查看某个网卡的配置
ifconfig [网卡名]
# 查看网卡状态
ip a | grep -A 1 "ens160:"
# 查看路由表
route -n
# 查看所有监听的端口
netstat -lntp
# 查看某个端口占用情况
netstat -ltnp | grep [端口]
# 查看已经建立的TCP连接
netstat -antp
# 查看TCP/UDP的状态信息
netstat -lutp
# 查看iptables规则
iptables -L
# 以dhcp模式启用eth0
dhclient eth0
# 配置默认网关
route add -net 0/0 gw [Gateway_IP]
# 删除静态路由
route del 0/0 gw [Gateway_IP]
# 禁用网卡 (禁用之后机器可能起不来了) 网卡名--如:ens160
ifconfig [网卡名] down
# 启用网卡
ifconfig [网卡名] up
# 查看DNS记录,查看域名是否解析正常
nslookup [域名]
# 查看所有进程
ps -ef
# 过滤需要的进程信息
ps -ef | grep [进程名]
ps aux | grep [进程名]
# 结束进程
kill -9 [进程id]
# 按进程名结束进程
pkill [进程名]
七、打包与解压
# 压缩文件为tar.gz格式
tar -czvf xxx.tar.gz [文件名]
# 压缩多个文件和目录到一个tar.gz
tar -czvf xxx.tar.gz [文件1] [文件2] [目录1]
# 忽略隐藏文件压缩
tar -czf xxx.tar.gz [文件]/*
tar -czvf file.tar.gz file/*
# 查看tar包的文件
tar -tf xxx.tar.gz
# 压缩至zip
zip xxx.zip [文件]
# 多个文件和目录一起压缩成zip
zip -r xxx.zip [文件1] [文件2] [目录1]
# 解压zip
unzip xxx.zip
八、其他
# ssh登录
ssh [用户名]@[IP]
ssh root@192.192.100.99 #回车输入密码
# 查看arp表
arp
ip neigh
# 通过 ssh 将端口代理到本机(通过192.192.100.1:9903即可访问)
ssh -L 192.192.100.1:9903:localhost:9902 root@192.192.100.1
# 通过 ssh 将端口代理到本地(通过localhost:9902即可访问)
ssh -L localhost:9902:localhost:9902 root@192.192.100.1
# 自定义命令
# eg: ll 是 ls -al,如何设置呢?如下
vim ~/.bashrc
# 加入
alias ll='ls -al'
# 刷新资源
source ~/.bashrc