Linux 命令

# Linux 命令

# 常用

# 清楚缓存释放内存

# 清除缓存
sync && echo 3 > /proc/sys/vm/drop_caches

# 查看工具安装目录
rpm -ql xx
# 如:rpm -ql nginx

# 防火墙

# 查看防火墙状态
firewall-cmd --state

# 开启 firewalld.service服务
service firewalld start

# 重启 firewalld.service服务
service firewalld restart

# 关闭 firewalld.service服务
service firewalld stop

# 开放80端口
firewall-cmd --permanent --add-port=80/tcp

# 开放端口号5901-5905
firewall-cmd --permanent --zone=public --add-port=5901-5905/tcp

# 查询端口是否开放
firewall-cmd --query-port=8080/tcp

# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp

#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

# 查看防火墙规则
firewall-cmd --list-all

# 解除端口占用

# 查看端口是否被占用(8080 为端口号)
netstat -anp | grep 8080

# 查看端口占用进程(8080 为端口号)
fuser -v -n tcp 8080

# 结束占用端口的进程 (12345 为进程号)
kill -s 9 12345

# 通过链接下载文件

# wget http://xxx 下载文件
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.5.tgz

# 测试网速

Speedtest.net强大而知名的全球宽带网络速度测试网站,采用Flash载入界面,Alexa世界排名非常高,Speedtest.net在全球有数百个测试节点,国内有测速节点几十个。作为一款在线并且可视化的网速测试工具。使用方法简单,无需下载、安装Speedtest.net还推出了命令行下测速工具speedtest.py 就能够实时测试网速。

# 1. 下载 speedtest
wget https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py

# 2. 赋予可执行权限
chmod +x speedtest.py

# 3. 运行
./speedtest.py

# 查看 speedtest 所有命令
./speedtest.py --help

# 用户相关

# 添加用户
useradd xx
  
# 修改用户密码 不加用户名直接更改自己的密码
passwd (用户名)

# 查看当前的账户 显示的格式为:
# 登录用户名 登录终端(tty:本地登录 pts:远程终端) 登录时间 ip地址
who

# 文件相关

# 返回上一级目录
cd ..

# 返回上次所在的目录
cd -

# 显示工作路径
pwd

# 查看目录中的文件
ls

# 查看目录中的文件
ls -F

# 显示文件和目录的详细资料
ls -l

# 显示隐藏文件
ls -a

# 显示包含数字的文件名和目录名
ls *[0-9]*

# 创建文件并编辑
vi/vim xx

# 查看文件内容
cat xx

# 删除文件
rm xx

# 创建文件夹
mkdir xx

# 删除目录'
rmdir xx

# 强制删除文件/文件夹并且不提示确认
rm -rf xx

# 创建一个目录树
mkdir -p /tmp/dir1/dir2

# 重命名/移动 一个目录
mv dir1 new_dir

# 复制一个文件
cp file1 file2

# 复制一个目录下的所有文件到当前工作目录
cp dir/* .

# 复制一个目录到当前工作目录
cp -a /tmp/dir1 .

# 复制一个目录
cp -a dir1 dir2

# 复制一个目录及子目录
cp -r dir1 dir2

# 创建一个指向文件或目录的软链接
ln -s file1 lnk1

# 创建一个指向文件或目录的物理链接
ln file1 lnk1

# 创建一个gzip格式的压缩包
tar -cvfz archive.tar.gz xxx

# 解压一个gzip格式的压缩包
tar -zxvf archive.tar.gz

# 上传下载

# 检查是否安装sz  rz
rpm -qa | grep rz   # 上传
rpm -qa | grep sz   # 下载

# 安装lrzsz软件
yum install -y lrzsz             # CentOS
apt-get install -y lrzsz         # Ubuntu

# 文件上传
rz
rz -be
# 使用rz会有两个问题: 上传中断、上传文件变化(md5不同)。解决办法如下:
# -b: 用binary的方式上传下载, 不解释字符为ASCII。
# -e: 强制escape所有控制字符, 比如Ctrl+x, DEL等。

# 文件下载
# 1. 下载一个文件
sz filename
sz xx.txt

# 2.下载多个文件
sz filename1 filename2

# 3.下载dir目录下的所有文件,不包含dir下的文件夹
sz dir/*

# 文件搜索

# 开始进入根文件系统搜索文件和目录
find / -name file1

# 搜索属于用户 'user1' 的文件和目录
find / -user user1

# 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件
find /home/user1 -name \*.bin

# 搜索在过去100天内未被使用过的执行文件
find /usr/bin -type f -atime +100

# 搜索在10天内被创建或者修改过的文件
find /usr/bin -type f -mtime -10

# 搜索以 '.rpm' 结尾的文件并定义其权限
find / -name \*.rpm -exec chmod 755 '{}' \

# 搜索以 '.rpm' 结尾的文件,忽略光驱、捷盘等可移动设备
find / -xdev -name \*.rpm

# 寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令
locate \*.ps

# 显示一个二进制文件、源码或man的位置
whereis halt

# 显示一个二进制文件或可执行文件的完整路径
which halt

# 文件的权限

使用 "+" 设置权限,使用 "-" 用于取消

# 显示权限
ls -lh

# 将终端划分成5栏显示
ls /tmp | pr -T5 -W$COLUMNS

# 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限
chmod ugo+rwx directory1

# 删除群组(g)与其他人(o)对目录的读写执行权限
chmod go-rwx directory1

# 改变一个文件的所有人属性
chown user1 file1

# 改变一个目录的所有人属性并同时改变改目录下所有文件的属性
chown -R user1 directory1

# 改变文件的群组
chgrp group1 file1

# 改变一个文件的所有人和群组属性
chown user1:group1 file1

# 把目录和下面所有文件的权限
chmod -R 777 testdir

# 系统相关

# 查看系统版本
cat /etc/redhat-release

# 查看磁盘信息
df -lh

# 显示机器的处理器架构
arch
uname -m

# 显示正在使用的内核版本
uname -r

# 显示硬件系统部件 - (SMBIOS / DMI)
dmidecode -q

# 罗列一个磁盘的架构特性
hdparm -i /dev/hda

# 在磁盘上执行测试性读取操作
hdparm -tT /dev/sda

# 显示CPU info的信息
cat /proc/cpuinfo

# 显示系统日期
date

# 显示2007年的日历表
cal 2007

# 设置日期和时间 - 月日时分年.秒
date 041217002007.00

# 将时间修改保存到 BIOS
clock -w

# 重启 now (为时间是定时 20:00) (为数字是多少分钟后)
reboot
shutdown -r now

# 进程相关

# 查看所有
ps -ef

# 查询某个进程
ps -ef |grep xx

# linux 下 取进程占用 cpu 最高的前10个进程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head

#linux 下 取进程占用内存(MEM)最高的前10个进程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head

# 杀死进程
kill -9 PID 杀死某个进程