mysterin / question_and_answer

1 stars 0 forks source link

linux 命令 #46

Open mysterin opened 6 years ago

mysterin commented 6 years ago

查看硬盘容量

df -h

查看目录容量

du -sh /usr/local

统计目录文件数量

ls -l | grep '^-' | wc -l

删除指定天数之前的文件

find /usr/local -mtime +30 -type f -name '*.png' | xargs rm -rf

每月定时任务

crontab -e 0 0 1 * * ls -l

mysterin commented 6 years ago

切换到 root 用户( root 有密码)

su - 输入 root 密码

切换到 root 用户( root 没有密码)

sudo su 输入普通用户密码

修改用户密码

passwd 用户

mysterin commented 6 years ago

解压 zip

unzip xx.zip

mysterin commented 6 years ago

centos7 允许端口

  1. 增加允许端口规则 firewall-cmd --zone=public --add-port=80/tcp --permanent
  2. 重启防火墙 firewall-cmd --reload
  3. 查看 firewall-cmd --list-all
mysterin commented 6 years ago

查看系统版本

lsb_release -a 或者 cat /etc/redhat-release

查看内核版本

uname -a

mysterin commented 6 years ago

修改时区

  1. cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  2. hwclock
  3. date
mysterin commented 6 years ago

光标移动

移到最前面: ctrl+a 移动最后面: ctrl+e 删除前面内容: ctrl+u 删除后面内容: ctrl+k 恢复: ctrl+y

mysterin commented 6 years ago

自动找到对应进程 id 杀死

以 mysql 为例: ps -ef | grep mysql | grep -v grep | awk '{print $2}' | xargs kill -9

mysterin commented 6 years ago

netstat 展示端口数字

使用 netstat -tpl 默认是不显示端口数字的, 而是别名代替, 要想看具体端口, 可以用 netstat -tpln 来查看.

mysterin commented 6 years ago

查看进程占用端口情况

sudo netstat -tpl

查看端口情况

比如查看 mysql 端口连接情况: sudo lsof -i:3306 或者 sudo netstat -atpln | grep 3306

mysterin commented 5 years ago

抓指定 ip 和端口的包

tcpdump tcp port 10003 and host 10.195.175.81 -s 0 -w socket.pcap

mysterin commented 5 years ago

shell 命令后台执行不输出到控制台

命令 >/dev/null 2>&1 & 其中: >/dev/null 表示输出到回收站 2>&1 表示错误输出重定向到标准输出 & 表示后台执行 注意: 2> 中间不能空格

mysterin commented 5 years ago

查看桌面版本

echo $DESKTOP_SESSION

mysterin commented 5 years ago

制作 U 盘启动

dd if=xxx.iso of=/dev/sdc

mysterin commented 5 years ago

manjaro 排列源

sudo pacman-mirrors -i -c China -m rank

manjaro 增加 AUR 中文社区源

/etc/pacman.conf 末尾增加

[archlinuxcn]
SigLevel = Optional TrustedOnly
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch

接着导入 archlinuxcn-keyring sudo pacman -Syy && sudo pacman -S archlinuxcn-keyring

manjaro 更新系统

sudo pacman -Syyu

manjaro 更新 archlinuxcn-keyring

sudo pacman -S archlinuxcn-keyring

manjaro 安装 yaourt 以及 pacaur

sudo pacman -S yaourt pacaur

manjaro 安装 chrome

sudo pacman -S google-chrome

manjaro 安装搜狗拼音

sudo pacman -S fcitx-im
sudo pacman -S fcitx-configtool
sudo pacman -S fcitx-sogoupinyin

再配置 ~/.xprofile 文件

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

代理启动 chrome

google-chrome --proxy-server="SOCKS5://127.0.0.1:1080"

终端翻墙

安装 proxychains sudo pacman -S proxychains 再配置 /etc/proxychains.conf socks4 127.0.0.1 9095 改成 socks5 127.0.0.1 1080 接着在要代理的命令前加 proxychains4, 比如: proxychains4 wget http://xxx.com/xxx.zip

安装 gnome-tweak-tool

sudo pacman -S gnome-tweak-tool

mysterin commented 5 years ago

docker 启动命令

sudo systemctl start docker

docker 拉取 mysql 镜像

sudo docker pull mysql:5.7

docker 查看镜像

sudo docker images

docker 使用镜像

sudo docker run -p 3306:3306 --name mysql5.7 -v $PWD/conf:/etc/mysql -v $PWD/logs:/var/log/mysql -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

查看 docker 执行情况

sudo docker ps

查看 docker 全部容器

sudo docker ps -a

启动容器

sudo docker start name

停止容器

sudo docker stop name

强制停止容器

sudo docker kill name

删除容器

sudo docker rm name

进入容器

sudo docker exec -it mysql5.7 /bin/bash

容器保存为镜像

sudo docker commit mysql5.7 仓库名:标签名

查看容器地址

sudo docker inspect mysql5.7 | grep IPAddress

后台运行系统

sudo docker run -itd --hostname centos7 --name centos7 centos:7

mysterin commented 5 years ago

ssh 秘钥登录

ssh root@117.131.216.212 -p2222 -i ~/.ssh/tj_id_rsa

mysterin commented 5 years ago

ssh 关闭后继续执行程序

比如: nohup gradle appstart >/dev/null 2>&1 &

mysterin commented 5 years ago

查询 10 天内修改过的文件

find ./ -mtime -10 -type f

查询 10 天前修改过的文件

find ./ -mtime +10 -type f

查询 10 天前 20 天内修改过的文件

find ./ -mtime -20 -mtime +10 -type f

mysterin commented 5 years ago

对行操作命令 awk

输出第一列和第三列: ls -l | awk '{print $1, $3}' 输出第二列为 2 和第九列等于 cap 的行: ls -l | awk '$2==2 && $9=="cap"' 输出第一行: ls -l | awk 'NR==1' 修改默认空格分割为其他分割: awk -F, '{print $1, $2}' ./test

mysterin commented 5 years ago

获取指定 pid 进程信息

比如获取 pid 为 1 的进程信息:

ps aux | awk 'NR==1 || $2==1'

或者

ps -u --pid 1
mysterin commented 5 years ago

查看发行版本信息

lsb_release -a
cat /etc/os-release
cat /etc/redhat-release 或 cat /etc/issue

查看内核信息

uname -a
cat /proc/version
mysterin commented 5 years ago

ubuntu 开放端口

sudo ufw allow 12123
mysterin commented 5 years ago

vim 配置

编辑 ~/.vimrc

set nu
set ts=4
set expandtab
set autoindent
set list
set listchars=tab:>-,trail:-
syntax enable
syntax on
set background=dark
mysterin commented 5 years ago

查看进程开始时间和运行时间

ps -p 22897 -o lstart,etime
mysterin commented 5 years ago

rpm 安装软件

rpm -ivh xxx.rpm

rpm 升级软件

rpm -Uvh xxx.rpm

rpm 查看已安装软件

rpm -qa

rpm 删除软件

rpm -e xxx
mysterin commented 5 years ago

arch 安装 rabbitmq

sudo pacman -S rabbitmq

arch 启动 rabbitmq 管理器

sudo rabbitmq-plugins enable rabbitmq_management

arch 重启 rabbitmq

sudo systemctl restart rabbitmq

/var/lib/rabbitmq/.erlang.cookie 权限报错

sudo chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
mysterin commented 5 years ago

解压 war 包

unzip xxx.war -d xxx
mysterin commented 5 years ago

查看用户所属组

id linxb

已存在用户添加到已存在组

usermod -aG docker linxb

创建组

groupadd docker
mysterin commented 5 years ago

centos7 换源

  1. 备份原来源
    sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
  2. 下载阿里云源
    sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  3. 添加 EPEL 源
    sudo wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo
  4. 清理缓存
    sudo yum clean all 
  5. 生成缓存
    sudo yum makecache 
mysterin commented 5 years ago

ubuntu 换源

  1. 备份源
    cp /etc/apt/source.list /etc/apt/source.list.bak
  2. 修改原来文件为阿里云 内容如下:
    #aliyun
    deb-src http://archive.ubuntu.com/ubuntu xenial main restricted
    deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe
    deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe
    deb http://mirrors.aliyun.com/ubuntu/ xenial universe
    deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
    deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
    deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
    deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
    deb http://archive.canonical.com/ubuntu xenial partner
    deb-src http://archive.canonical.com/ubuntu xenial partner
    deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe
    deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
    deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
  3. 更新
    apt update
mysterin commented 5 years ago

vbox 硬盘扩容

  1. 查询 UUID
    VBoxManage list hdds
  2. 扩容, 单位 MB
    VBoxManage modifyhd 9ae906db-8006-456f-a5ac-94e443f60672 --resize 50000
mysterin commented 5 years ago

dns 查询

cat /etc/resolv.conf

修改 dns

修改 /etc/resolv.conf, 增加:

nameserver 8.8.8.8
mysterin commented 5 years ago

查看文件标志

lsattr /etc/resolv.conf

删除写保护标志

sudo chattr -i /etc/resolv.conf
mysterin commented 5 years ago

zsh 出现 zsh: command not found: rvm-prompt

解决方法:在 .zshrc 文件末尾添加 [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

mysterin commented 5 years ago

离线安装 python3

  1. 安装 zlib-devel 和 libffi-devel, 可以在 这里 搜索下载
  2. 这里 下载 python3 源码
  3. 解压, 到源码目录下执行:
    ./configuration --prefix=/usr/local/python3 --enable-optimizations
    make
    make install

python3 离线安装模块

  1. 下载模块包
  2. 解压, 在模块包目录下执行: python3 setup.py install
mysterin commented 5 years ago

文件分割

split -b 2m srcfile dstfile

文件合并

cat dstfile* > srcfile
mysterin commented 5 years ago

centos7 安装 ftp 服务

  1. 下载 vsftpd 的rpm 包安装或者在线安装 yum -y install vsftpd
  2. 修改 /etc/vsftpd/vsftpd.conf
    
    #修改
    anonymous_enable=NO    #禁止匿名访问

使ftp用户始终在项目部署的根目录范围内,禁止访问系统其它文件

chroot_local_user=YES #打开注释 chroot_list_enable=YES #打开注释 chroot_list_file=/etc/vsftpd/chroot_list #打开注释 allow_writeable_chroot=YES #添加

3. 创建 `/etc/vsftpd/chroot_list`, 不需要写内容
4. 允许端口
```shell
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload
  1. 默认使用 ftp 用户无密码登录, 需要增加有密码登录:
    useradd -d /mydata2/ftpuser -s /sbin/nologin ftpuser
    passwd ftpuser
mysterin commented 5 years ago

每 5 秒执行任务

*/5 * * * * /bin/shxx
mysterin commented 5 years ago

定时任务找不到命令

例子: 使用 crontab 创建定时执行 shell 脚本, 脚本里面使用tcpdump抓包, 结果发现输出错误: 找不到tcpdump命令. 解决方式: tcpdump 命令需要写完整路径/usr/sbin/tcpdump这样.

mysterin commented 5 years ago

cpu 信息查看

mysterin commented 5 years ago

使用 firewalld 转发端口

格式:

firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口>:proto=<协议>:toport=<目标端口>:toaddr=<目标ip>

例子:

# firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.10.10
# firewall-cmd --reload
mysterin commented 5 years ago

su 和 su - 区别

su切换用户, 环境变量还是原来的用户. su -切换用户, 环境变量是新的用户.

mysterin commented 5 years ago

指定 ip 访问指定端口

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.198.104.246" port protocol="tcp" port="3306" accept"
firewall-cmd --reload
mysterin commented 5 years ago

ubuntu 设置自启动

编辑/etc/rc.local, 加入执行的命令, 要用&结尾, 这样不会阻塞命令.

mysterin commented 5 years ago

后台运行

  1. 可以使用&后缀;
  2. 可以用ctrl+z;

    查看后台进程

    jobs -l

    恢复后台进程

    fg %工作号

    恢复后台进程后台执行

    bg %工作号
mysterin commented 5 years ago

ubuntu 查看已安装包

dpkg -l
或
apt list --installed
mysterin commented 5 years ago

查看中间行

比如查看第 10 行到第 30 行:

tail -n +10 log.log | head -n 20

tail -n +10 log.log是查询第 10 行到末尾; head -n 20 log.log是查询第 1 行到第 20 行.

mysterin commented 5 years ago

mysqld 和 mysqld_safe 区别

mysqld是 mysql 服务的启动程序, 一般在/usr/sbin/mysqld. mysqld_safe是脚本文件, 一般在/usr/bin/mysqld_safe, 也是调用mysqld来启动服务, 只不过可以在mysqld挂了之后重新拉起.

mysterin commented 4 years ago

Centos7 使用 iptables

#配置好yum源以后安装iptables-service
# yum install -y iptables-services
#停止firewalld
# systemctl stop firewalld
#禁止firewalld自动启动
# systemctl disable firewalld
#启动iptables
# systemctl start iptables
#将iptables设置为开机自动启动,以后即可通过iptables-service控制iptables服务
# systemctl enable iptables