常用Linux(CentOS 7)命令 - 持续更新

更多可访问:Linux 命令大全

查找

find
  • 查找名字为aaa的文件或目录
#精确查询
find ./ -name aaa
  • 查找名字包含aaa的文件或目录
#模糊查询用*号
find ./ -name *aaa*
whereis
  • 查找
whereis aaa

列出文件(目录)

ls
  • 显示当前目录下的文件
ls
  • 显示当前目录下的文件部分属性信息
ls -l

参考资料:
Linux ls -l 命令图解
linux ls -l 命令详解(权限,大小,时间等)

  • 显示当前目录下的所有文件,包含隐藏文件
ls -a
  • 显示当前目录下的子文件
ls -r
  • 显示当前目录下匹配正则表达式pattern的文件部分属性信息
ls -l pattern
  • 显示当前目录下的普通文件类型的文件部分属性信息
ls -l | grep "^-"
  • 显示当前目录下的目录文件类型的文件部分属性信息
ls -l | grep "^d"
  • 显示当前目录下的连接文件类型文件部分属性信息
ls -l | grep "^l"
  • 统计当前目录下文件个数
ls | wc -l
  • 统计当前目录下文件个数(结果是文件个数+1)
ls -l | wc -l
  • 统计当前目录下的普通文件类型的文件个数
ls -l | grep "^-" | wc -l
  • 统计当前目录下的目录文件类型的文件个数
ls -l | grep "^d" | wc -l
  • 统计当前目录下匹配正则表达式pattern的文件个数
ls -l pattern | wc -l
  • 统计当前目录下匹配正则表达式pattern的普通文件类型的文件个数
ls -l pattern | grep "^-" | wc -l
du
  • 查看当前目录和子目录文件夹/文件大小情况
du -sh *

创建文件

touch
  • 创建名为aaa.txt文件
touch aaa.txt

编辑文件

vim
  • 编辑名为aaa文件
vim aaa
  • 在上述文件编辑过程中命令模式下查找字符abc
/abc	#先输入“/”在输入要查找的字符abc
N	#按“N”查找下一处
  • 在上述文件编辑过程中命令模式下显示行号
:set nu
sed

查看文件内容

tail
  • 查看名字为aaa的文件最后10行
tail aaa
  • 查看名字为aaa的文件最后10行并监视文件增长
tail -f aaa
  • 查看名字为aaa的文件最后n行
tail -n aaa
#	-f 循环读取
#	-n<行数> 显示行数
#	-q 不显示处理信息
#	-v 显示详细的处理信息
#	-c<数目> 显示的字节数
#	--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束. 
#	-q, --quiet, --silent 从不输出给出文件名的首部 
#	-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒 
head
  • 查看文件内容的前面10行。
head aaa
  • 查看文件内容的前面n行
head -n aaa
cat
  • 查看名字为aaa的文件
cat aaa
nl
  • 查看名字为aaa的文件,并显示行号
nl aaa
less
  • 查看名字为aaa的文件,一次只会显示一个页面的文件内容。可以通过 j、k 两个按键进行上、下浏览文件内容,使用 q 可以随时退出。
less aaa
more
  • 查看名字为aaa的文件,按页查看。空格键向下翻页;Enter键向下翻行;=键输出当前行的行号。
more aaa
  • 查看名字为aaa的文件,按页查看。空格键向下翻页;Enter键向下翻行;=键输出当前行的行号。
more aaa
  • 查看名字为aaa的文件,按页查看,从第n行开始显示
more +n aaa
  • 查看名字为aaa的文件,按页查看,设定每屏显示n行
more -n aaa
  • 从名字为aaa的文件中查找第一个出现"abc"字符串的行,并从该处前两行开始显示输出
more +/abc aaa
grep
  • 从名字为aaa的文件中查找出现"abc"字符串的所有行
grep abc aaa
  • 从名字为aaa的文件中查找出现"abc"字符串或"def"字符串的所有行
grep 'abc\|def' aaa
grep -E 'abc|def' aaa
  • 从名字为aaa的文件中查找同时出现"abc"字符串和"def"字符串的所有行
grep abc aaa | grep def

对比文件

diff
  • 对比2个文件内容
diff file1 file2

安全日志

secure文件
  • 查看安全日志
tail -f  /var/log/secure

定时任务相关

cron文件
  • 查看定时任务执行状态
service crond status
  • 查看定时任务执行日志
tail -f /var/log/cron
#或者看全部
cat /var/log/cron
crontab
  • 查看定时任务
crontab -l
  • 编辑定时任务
crontab -e
  • 重新载入配置
service crond reload
  • 重启定时任务
service crond restart

防火墙相关

firewall
  • 查看防火墙状态
firewall-cmd --state
  • 查看已经开放的端口
firewall-cmd --list-ports
  • 开启端口
firewall-cmd --add-port=3690/tcp --permanent
#(其中--permanent表示永久开启)
  • 删除端口
firewall-cmd --zone=public --remove-port=3306/tcp --permanent
  • 启动防火墙
systemctl start firewalld
  • 关闭防火墙
systemctl stop firewalld
  • 重启防火墙
systemctl restart firewalld
iptables

IP 信息包过滤和防火墙配置
参考:Linux安装Iptables

SVN相关

  • 安装svn服务
yum -y install subversion
  • 查看svn安装位置
rpm -ql subversion
svnserve
  • 启动svn服务
svnserve -d -r /data/svn
#(其中/data/svn为版本库的根目录)
  • 查找svn进程
ps aux | grep svn

#如果打印如下信息,证明已开启svn,否则未开启
root      1078  0.0  0.0 166316   676 ?        Ss   10:29   0:00 svnserve -d -r /data/svn
root      1080  0.0  0.0 112648   948 pts/0    R+   10:29   0:00 grep --color=auto svn
  • 关闭SVN服务
kill -s 9 1078

Mysql相关

  • 下载MySQL安装包
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
  • 安装MySQL安装包
yum -y install mysql57-community-release-el7-10.noarch.rpm
  • 安装MySQL服务器
yum -y install mysql-community-server

如果报错: GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

  • 1、确认你有使用 root 权限或者有 sudo 权限。

  • 2、下载 MySQL 的 GPG 密钥:

    wget https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
    
  • 3、导入密钥:

    rpm --import RPM-GPG-KEY-mysql-2022
    
  • 启动MySQL

systemctl start mysqld.service
  • 查看MySQL运行状态
systemctl status mysqld.service
  • 修改端口
vi /etc/my.cnf
#添加下面这行后,保存退出
port=6608
  • 进入mysql
mysql -u root -p
#或者指定host登录
mysql -u root -h 127.0.0.1 -p

#再输入密码,回车

#注:用如下命令获取MySQL的临时密码
grep 'temporary password' /var/log/mysqld.log

  • 首次登录如果提示“You must reset your password using ALTER USER statement before executing this statement.”,执行如下命令
ALTER USER USER() IDENTIFIED BY '12345678';
  • 如果修改密码提示“Your password does not satisfy the current policy requirements”,执行如下命令再修改
set global validate_password_policy=0;
  • mysql命令下,查看数据库端口
show global variables like 'port';
  • mysql命令下,查看数据库
show databases;
  • mysql命令下,选择数据库“mysql”
use mysql;
  • mysql命令下,给所有root用户设置密码
UPDATE user SET Password = PASSWORD('newpassword') WHERE user = 'root';
FLUSH PRIVILEGES;

上面SQL不行就下面这条SQL

update mysql.user set authentication_string=PASSWORD('123456') where User='root';
flush privileges;
  • mysql命令下,给root用户设置远程访问
UPDATE user SET host='%' WHERE user='root' and host='localhost';
  • mysql命令下,给远程访问的root用户设置所有权限
GRANT ALL PRIVILEGES ON *.* TO "root"@"%" IDENTIFIED BY "root";
FLUSH PRIVILEGES;
  • mysql命令下,创建用户abc
create user 'abc'@'%' identified by 'newpassword';
  • mysql命令下,给abc用户设置部分权限
grant select,insert,update,delete,create on *.* to abc;
flush privileges;
create user dumper@'%';
grant select on *.* to dumper@'%';
grant show view on *.* to dumper@'%';
grant lock tables on *.* to dumper@'%';
grant trigger on *.* to dumper@'%';

补充一点,新版本的MYSQL增加了一个PROCESS privilege权限:

grant process on *.* to dumper@'%';
  • mysql命令下,收回权限
revoke select, update on *.* from abc;
  • 重启mysql
service mysql restart
如果报“ailed to restart mysql.service: Unit not found.”错误提示,则执行下面一条命令
service mysqld restart
  • mysql命令下,运行aaa.sql文件
#注:前提一定要先选好数据库
source /home/sqlfiles/aaa.sql

查看机器配置

  • 查看机器配置
ifconfig
  • 查看磁盘空间的大小
df -hl 
  • 查看系统内存大小的详细信息
cat /proc/meminfo

查看网络配置

  • 查看IP
ip addr

文件及目录操作

  • 创建目录快捷方式
ln -s 源目录 目标目录
  • 对fileName文件/目录授权
#chmod abc fileName
#数字a、b、c分别表示文件所有者、群组、其它的权限,可以是4(读r)、2(写w)、1(执行x)
#或者是他们组合7(读+写+执行)、6(读+写)、5(读+执行)、3(写+执行)、0(无任何权限)
#如
chmod 771 fileName

#或者
chmod ug=rwx,o=x fileName #和上面chmod 771 fileName效果相同
#u、g、o分别表示文件所有者、群组、其它的权限,可以是r、w、x、rwx、rx、rw、wx
  • 对fileName文件/目录增加某一授权
chmod o+x fileName
  • 对fileName文件/目录删除某一授权
chmod g-r fileName
  • 复制 AAA目录下aaa文件 到 BBB目录
cp /AAA/aaa /BBB
  • 复制 AAA目录下所有子目录和子文件 到 BBB目录
cp -rf /AAA/* /BBB
  • 移动 AAA目录下aaa文件 到 BBB目录
mv /AAA/aaa /BBB
  • 移动 AAA目录下所有子目录和子文件 到 BBB目录
mv -f /AAA/* /BBB
  • 删除 AAA目录下aaa文件
rm -f /AAA/aaa
  • 删除 AAA目录及其下所有子目录和子文件
rm -rf /AAA
  • 删除 AAA目录下所有子目录和子文件
rm -rf /AAA/*
  • 将名字为AAA的目录重命名为BBB
mv AAA BBB
  • 将名字为aaa的文件重命名为bbb
mv aaa bbb
  • 本地文件上传到服务器
# 输入rz命令,看是否已经安装了lrzsz,如果没有安装则执行如下命令
yum -y install lrzsz

# 安装成功后,输入rpm命令确认是否正确安装
rpm -qa lrzsz

# 使用 rz 命令进行文件上传
rz
# 如果要求存在同名文件时覆盖,使用 rz -y 命令进行文件上传
rz -y
  • 服务器下载文件到本地
# 输入rz命令,看是否已经安装了lrzsz,如果没有安装则执行如下命令
yum -y install lrzsz

# 安装成功后,输入rpm命令确认是否正确安装
rpm -qa lrzsz

# 使用 sz 文件名 命令进行文件下载
sz aaa

压缩与解压缩

  • 解压到当前目录
tar -zxvf apache-activemq-5.15.9-bin.tar.gzip

# v 输出日志
  • 解压到指定目录/usr/local/activemq/下
tar -zxvf apache-activemq-5.15.9-bin.tar.gzip -C /usr/local/activemq/

更多参考
Linux下的tar压缩解压缩命令详解
Linux安装rar
unrar命令

端口相关

  • 显示某端口的网络状态
netstat -lntp | grep 80

# -a 显示所有socket,包括正处于Listen(监听)状态的
# -l 仅显示处于Listen(监听)状态的
# -n 以数字形式显示地址和端口号,不显示别名,能显示数字的全部转换为数字
# -t 仅显示和tcp相关的
# -u 仅显示和udp相关的
# -p 显示建立这些连接的程序名

#会显示如下信息
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1131/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      1131/java           
tcp6       0      0 :::80                   :::*                    LISTEN      1131/java           
tcp6       0      0 :::8080                 :::*                    LISTEN      1131/java  
  • 显示tcp和udp的端口和进程等网络状态
netstat -lntup | grep 8080

#会显示如下信息
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1131/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      1131/java           
tcp6       0      0 :::80                   :::*                    LISTEN      1131/java           
tcp6       0      0 :::8080                 :::*                    LISTEN      1131/java           
udp6       0      0 fe80::5054:ff:fef8::123 :::*                                558/ntpd  

更多参考:Netstat

  • 显示tcp,udp的端口和进程等Socket相关情况
ss -tunlp | grep 8080

#会显示如下信息
tcp    LISTEN     0      128      :::8080                 :::*                   users:(("java",pid=6680,fd=49))

# -l 仅显示处于Listen(监听)状态的  -a 显示所有信息 
# -n 不显示别名,能显示数字的全部转换为数字
# -t 仅显示和tcp相关的  -u 仅显示和udp相关的
# -p 显示建立这些连接的程序名

更多参考:ss命令

  • 查看某一端口的占用情况
lsof -i:8080

#会显示如下信息
COMMAND  PID USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
java    1373 root   49u  IPv6 355189907      0t0  TCP *:webcache (LISTEN)

# COMMAND:进程的名称或者进程开启的方式
# PID:进程id
# USER:进程所有者
# FD:文件描述符
# TYPE:协议类型
# DEVICE:端口号
# SIZE/OFF:偏移
# NODE:协议名
# NAME:节点名

查找进程和端口

  • 显示tomcat进程的状态
ps -ef | grep tomcat

#如果打印如下信息,表示查找到tomcat进程号为25855
root     25855     1  6 14:38 pts/0    00:00:29 /usr/java/jdk1.8.0_171/jre/bin/java -Djava.util.logging.config.file=/apache-tomcat-7.0.88/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Dignore.endorsed.dirs= -classpath /apache-tomcat-7.0.88/bin/bootstrap.jar:/apache-tomcat-7.0.88/bin/tomcat-juli.jar -Dcatalina.base=/apache-tomcat-7.0.88 -Dcatalina.home=/apache-tomcat-7.0.88 -Djava.io.tmpdir=/apache-tomcat-7.0.88/temp org.apache.catalina.startup.Bootstrap start
root     26616 23678  0 14:46 pts/0    00:00:00 grep --color=auto tomcat
  • 显示进程号对应的端口号等网络状态
netstat -anop | grep 25855

#如果打印如下信息,表示tomcat进程占用了8005、8009、8080等端口
tcp        0      0 0.0.0.0:8009            0.0.0.0:*               LISTEN      25855/java           off (0.00/0/0)
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      25855/java           off (0.00/0/0)
tcp        0      0 127.0.0.1:8005          0.0.0.0:*               LISTEN      25855/java           off (0.00/0/0)
unix  2      [ ]         STREAM     CONNECTED     11510487 25855/java
  • 查看Socket进程
ss -p | grep java
  • 查看Socket端口
ss -lp | grep 6608

参考:linux 查看端口连接数

安装包

  • 搜索指定rpm包是否安装
rpm -qa | grep vim

用户管理

  • 添加用户
adduser newusername
  • 修改用户密码
passwd newusername

时间

date "+%Y-%m-%d %H:%M:%S"

jdk安装

参考:Linux安装jdk的详细步骤

帮助相关

  • 查看各种命令、函数和配置文件的手册页面
man xxx
  • 查看 ls 命令的手册页面
man ls
  • 查看 pthread_create 函数定义以及使用方法
man pthread_create
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值