文章目录
更多可访问: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
- vim更多详见
vim命令大全
sed
- sed 相关命令详见
Linux之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;
- mysql命令下,创建dumper用户参考如下链接
MySQL–mysqldump的权限说明
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
安装包
- 搜索指定rpm包是否安装
rpm -qa | grep vim
用户管理
- 添加用户
adduser newusername
- 修改用户密码
passwd newusername
时间
date "+%Y-%m-%d %H:%M:%S"
jdk安装
帮助相关
- 查看各种命令、函数和配置文件的手册页面
man xxx
- 查看 ls 命令的手册页面
man ls
- 查看 pthread_create 函数定义以及使用方法
man pthread_create