Linux 常用操作
基础命令
ls -lhd
ls *.gif
cp a.txt b.txt
cp -r a b
cat a.txt
cat -n a.txt
ln a.txt link-a.txt # 创建硬链接, 类似于 cp 但是会同步更新
ln -s a.txt link-a.txt # 创建软链接, 类似于一个快捷方式, 源文件删除后软链接会失效
which ls # 查找命令安装路径
whereis ls # 查找命令的二进制文件、源码和帮助页文件
find *.txt
find /var/lib/docker/ -name 'test.file' -type f
grep aaa a.txt -n
tar -ztf a.tar.gz # 查看压缩文件内容
tar -zcf a.tar.gz a/ # 创建压缩文件
tar -zxf a.tar.gz # 解压文件
adduser/useradd # 添加用户
su xtyuns # 切换登录用户
userdel [-r] <username> # 删除指定用户
groupadd <groupname> # 添加用户组
groupdel <groupname> # 删除用户组
groups # 查看当前用户所属的用户组列表
usermod -g <newGroupName> <userName> # 修改用户所属组
chmod <target>[+-=]<auth> <file> # 修改文件权限
chmod a+r a.txt
# r => 4, w => 2, x => 1
chown <user> <file> # 修改文件所属者
chgrp <group> <file> # 修改文件所属组
ps -aux # 查看进程列表
ps -ef | grep java
top # 以活动方式查看进程
kill -9 <pid> # 强制结束进程
# 查看 ip 信息
ip addr
ifconfig
hostname -i
# > 输出重定向
# < 输入重定向
# >> 输出追加
# << 输入追加
echo hello > a.txt
echo world >> a.txt
cat <<EOF > a.txt
hello
newline
EOF
unzip
-v / -l # 插件压缩包内容
-d # 解压到指定目录下
netstar -tunlp # 查看端口占用情况
firewall-cmd --list-ports # 查看已开放端口
firewall-cmd --state # 查看防火墙状态
systemctl stop firewalld.service # 关闭防火墙
将解压缩安装的软件加入到环境变量中
vim /etc/profile
# xtyuns: add software bin dir
for i in /usr/local/lib/*; do
if [ -d $i/bin/ ]; then
PATH=$i/bin/:$PATH
fi
done
在没有编辑器的情况下替换 Debian 软件源
sed -i.bak 's;http://\(deb\|security\).debian.org;https://mirrors.tuna.tsinghua.edu.cn;g' /etc/apt/sources.list
注意:
-i
后边的内容将作为原文件的后缀进行文件备份s
表示进行内容替换;
是内容替换的分隔符, 这个符号可以自定义任意字符, 最好选一个匹配模式中没有的字符, 否则还需要对匹配模式中出现的该字符进行转义- sed 中的匹配模式需要对正则元字符进行转义, 而对于
/
、.
之类的普通字符不需要转义(和普通的正则匹配转义规则完全相反)
磁盘占用情况分析
查看磁盘使用率
df -h
查找大文件
du -hs /* | sort -hr | head -n 5
重复执行上一条命令
apt update
sudo !!
终端快捷键
以下快捷键的本质是向终端输入控制字符或发送信号
Ctrl+C
:通常用于中断进程或操作
Ctrl+Z
:通常用于挂起一个进程使其处于暂停状态
Ctrl+D
:表示文本的结束或退出当前终端
Ctrl+H
:表示退格键(Backspace)
Ctrl+W
:表示删除光标前的一个单词
Ctrl+M
:表示回车键(Carriage Return)
Ctrl+A
:表示将光标移动到文本的开头
Ctrl+E
:表示将光标移动到文本的末尾
Ctrl+B
:表示光标左移一个字符
Ctrl+F
:表示光标右移一个字符
Ctrl+K
:表示清除到行末
Ctrl+U
:表示清除到行首
Ctrl+P
:表示上一行输入
Ctrl+N
:表示下一行输入
Ctrl+L
:表示清屏或刷新屏幕
在 Ubuntu 18.04 LTS 中安装 MySQL 5.7
# 移除已有的软件包
sudo apt purge mysql*
# 更新软件仓库列表
apt update
# 查询仓库中存在的 mysql 软件包
apt search ^mysql
# 安装 MySQL
sudo apt install -y mysql-server mysql-client
# 初始化信息(在 MySQL 5.7 中这里设置的密码不会生效)
sudo mysql_secure_installation
# 本地直接登录 MySQL, 因为默认的 root 用户使用 auth_socket 认证, 无需密码
sudo mysql -uroot
# 在 MySQL 中修改本地 root 用户密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
# 创建一个用于远程登录的用户
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
FLUSH PRIVILEGES;
# 修改 MySQL 配置文件, 开启远程登录
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 将 bind 127.0.0.1 注释掉, 并保存退出
# 重启 MySQL 服务即可生效
systemctl restart mysql