Linux

linux 常用命令

ls -a           # 查看当前目录下的所有目录和文件(包括隐藏的文件)

pwd             # 查看当前目录路径

mkdir aaa       # 在当前目录下创建一个名为aaa的目录

rm -rf aaa      # 递归删除当前目录下的aaa目录(不询问)

mv 当前目录 新目录 # 重命名 或 移动

cp -r 目录名称 目录拷贝的目标位置   # -r代表递归 拷贝文件和压缩包时不用写-r递归

scp -r 源文件 root@192.168.x.x:目标路径   # -r代表递归  上传文件
scp -r root@192.168.x.x:源路径 本机目标路径  # 下载文件

touch  aa.txt   # 在当前目录创建一个名为aa.txt的文件

more sudo.conf  # 使用more查看/etc/sudo.conf文件,可以显示百分比,回车可以向下一行,空格可以向下一页,q可以退出查看

ln -s /usr/local/mysql/bin/mysql /usr/bin # 建立软连接

tar -xvf node-v12.16.1-linux-x64.tar.xz   # 解压到当前目录
tar -cvzf archive.tar.gz file1 file2 # 压缩 file1 file2 到 archive
tar -xvzf archive.tar.gz # 解压缩到当前目录
tar -xvzf archive.tar.gz -C /home # -C 解压缩到指定目录 
tar -rvf archive.tar file3 directory2 # 向名为archive.tar的tar归档文件中添加file3和directory2
tar -uvf archive.tar new_file # 在名为archive.tar的归档中添加名为new_file的新文件。如果归档中已经包含了该文件,则会更新该文件
tar -tvf archive.tar # 显示名为archive.tar的tar归档文件中的内容

-z 调用 gzip 执行压缩和解压缩
-x 解开 tar
-f 指定文件名
-v 打印处理过程

ifconfig eth0    # 查看ip, 看 inet 后的 ip

netstat -tlnp | grep 8080 # 查看端口号占用情况
netstat -nat | grep 8080  # 查看端口号占用情况
ps -ef | grep firefox     # 查找特定字符串的进程
pgrep firefox             # 同上
kill -9 pid               # 强制杀死进程 pid是进程号

查看 linux 信息

uname -a # 查看系统内核
cat /proc/version # 版本信息
cat /etc/issue # 查看发行版本信息,例如:Ubuntu 20.04.1 LTS
lsb_release -a # 查看发行版本信息

用户管理

#查看所有用户
cut -d':' -f 1 /etc/passwd

#查看所有用户组(每个用户在被创建的时候都会自动创建一个同名的组)
cut -d':' -f 1 /etc/group

# 创建用户 注意与 useradd 的区别
adduser wdd

# 修改用户密码
passwd wdd

# 删除用户 [-r 同时删除家目录]
userdel -r wdd

#创建用户组
groupadd dev

# 关联用户和用户组
adduser wdd dev
adduser wdd sudo     # 用户 wdd 添加到 sudo 组
gpasswd -a wdd sudo  # 用户 wdd 添加到 sudo 组
gpasswd -d wdd sudo  # 从 sudo 组中移除用户
newgrp [groupname]   # 更新用户组
getent group sudo    # 列出 sudo 组成员
groups               # 查看当前用户所属组
groups wdd           # 查看指定用户所属组

sudo usermod -aG [groupname] $USER # 当前用户加入 groupname 组

# 切换用户
su - wdd
su - #切换到 root

给某个用户 root 权限,一般移入 sudo 组即可。

文件权限

Linux表示八进制表示说明
r—4只读
-w-2只写
—x1可执行
r-x5可读可执行
rw-6可读可写
rwx7可读可写可执行
chmod 755 test.sh # 将755换算成字符形式,为rwxr-xr-x,文件拥有者|所属群组|其他用户

chmod u+x test.sh  # 只给拥有者加上可执行权限
chmod g+x test.sh  # 只给群组身份加上可执行权限
chmod o+x test.sh  # 只给其他人身份加上可执行权限
chmod +x test.sh    # 所有人加上可执行权限
chmod -x test.sh    # 所有人删除可执行权限

chmod -R 777 dir    # 文件夹递归

chown wdd file.txt  # 将 file.txt 的所有者换成 wdd  -R 递归
chgrp lab file.txt  # 将 file.txt 的所属组换成 lab  -R 递归

配置上下键快速查找历史命令

  • bash:
if [[ $- == *i* ]]
then
  bind '"\e[A": history-search-backward'
  bind '"\e[B": history-search-forward'
fi
  • zsh:
bindkey "^[[A" history-beginning-search-backward
bindkey "^[[B" history-beginning-search-forward

ubuntu 使用

安装 nginx

apt-get install nginx
# 配置文件路径 /etc/nginx/nginx.conf
# www 路径 /var/www
# 日志文件路径 /var/log/nginx

安装 node

wget https://npm.taobao.org/mirrors/node/v12.16.1/node-v12.16.1-linux-x64.tar.xz  # 下载到服务器根目录
tar -xvf node-v12.16.1-linux-x64.tar.xz  # 解压到当前目录
# 为了方便后续的操作我们先把node文件夹重新命名
mv node-v12.16.1-linux-x64 node   # mv 旧文件名 新文件名
rm -f node-v12.16.1-linux-x64.tar.xz   # 此时可以删除下载的压缩包了
cd node/bin  # cd 到 node 执行目录
./node -v  # 打印出node版本则安装正确
 
# 建立软连接
ln -s /node/bin/node /usr/bin  # 此时在所有路径下都可以直接运行node了
 
# 为npm建立软连接
ln -s /node/bin/npm /usr/bin
 
# 设置镜像源 
npm config set registry https://registry.npm.taobao.org

安装其他工具

apt update
apt install jq 
apt install tree
apt install vim
apt remove vim # 卸载

检查内存占用脚本

#!/bin/bash
if [ $# -eq 0 ]; then
  echo "input your process"
  exit 1
fi

process_name="$1"
pids=$(pgrep -f "$process_name")
total_memory=0

for pid in $pids; do
    memory=$(pmap -x $pid | tail -n 1 | awk '{print $4}')
    total_memory=$((total_memory + memory))
done

total_memory_mb=$((total_memory / 1024))
echo "process_name:$process_name ${total_memory_mb}MB"

centOS 使用

cat /etc/centos-release

yum

yum的一切信息都存储在一个叫yum.reops.d目录下的配置文件中,通常位于/etc/yum.reops.d目录下

# 配置文件  /etc/yum.conf
# 网络源配置文件 /etc/yum.repos.d/CentOS-Base.repo

yum clean packages # 清除缓存目录下的软件包,清空的是(/var/cache/yum)下的缓存
yum clean headers # 清除缓存目录下的 headers
yum clean oldheaders # 清除缓存目录下旧的 headers
yum clean  # yum clean all (= yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的headers

yum list # 显示所有可以安装的程序包,包含已安装和未安装的
yum list installed # 显示已经安装的包
yum list xxx  # 是否安装某个包
yum info xxx # 显示安装包的详细信息

yum -y install xxx   # 安装
yum remove xxx   # 卸载
yum deplist xxx # 查看安装包依赖情况 
yum check-update # 检查可更新的程序
yum update # 全部更新,升级所有包
yum update xxx  # 更新指定程序包