Linux 究级基础入门命令整理

Linux 究级基础入门命令整理

条条框框,三三两两,怎讷个这么多,哈哈!no zuo no die.
纯粹个人菜鸟笔记,望大神笑纳!
后续,未完!!

查看系统信息

  • uname -a - 查看内核/操作系统/CPU信息
  • head -n 1 /etc/issue - 查看操作系统版本
  • free -m - 查看内存使用量和交换区使用量
  • df -h - 查看各分区使用情况
  • du -sh <目录名> - 查看指定目录的大小
  • du -sh * 查看当前目录下各个目录及文件所占用磁盘空间大小
  • grep MemTotal /proc/meminfo - 查看内存总量
  • grep MemFree /proc/meminfo - 查看空闲内存量
  • iptables -L - 查看防火墙设置
  • ps -ef - 查看所有进程
  • lsof -i:端口号
  • netstat -tunlp|grep 端口号

文件传输

  • rsync文件增量传输
    rsync -avzu --progress  ~/Desktop/hh/images/  root@112.213.122.123:/www/wwwroot/hh/images/
    
  • find xargs
    #find 查找需要解压的zip文件
    #xargs 依次执行unzip
    find . -name '*.zip' | xrags -n1 unzip
    
  • 字符串拼接
    cat data1.txt | tr -d "\r" |sed "s/.*/'&',/"
    

linux下 ls 排序

  • 按文件名升序(这是ls的默认输出方式)

    ls -l | sort -k9     
    
  • 按大小降序排列

    ls -lS     
    
  • 按大小升序

    ls -l | sort -n -k5    
    
  • 按时间降序

    ls -ltn
    
  • 按时间升序

    ls -ltr
    
  • 按文件名降序

    ls -lr
    
  • 按文件名降序

    ls -l | sort -rk9
    
  • 只显示目录

    ls -l -d */
    
  • 只显示文件

    ls -l |grep -v "^d"
    
  • 拷贝文件,想拷贝目录里面的内容而不是目录本身,就用斜杠加个星号"cp –R src/* target"; 想拷贝目录本身,就啥也不带"cp –R src target"就行了

  • 检测服务器端口号是否放开

    nc -v -z -w 3  A.B.C.D 22 8888 443
    

vim编辑

  • Vim 中如何去掉 ^M 字符 ==> vim下 :%s/^M//g 或者 :1,$s/^M//g 均可 [^M是使用 "CTRL-V CTRL-M" 而不是字面上的 ^M]
  • grep -rl '^M' ./havetatami | xargs sed -i 's/^M//g'
  • 查看配置文件有效配置
    egrep -v '^$|^#' /etc/vsftpd/vsftpd.conf | less
    
  • Linux crontab 查看所有用户的crontab任务
    cat /etc/passwd | cut -f 1 -d : |xargs -I {} crontab -l -u {}
    sudo cat /etc/passwd | cut -f 1 -d : |xargs -I {} sudo crontab -l -u {}
    
    for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l; done
    for user in $(cut -f1 -d: /etc/passwd); do echo $user; sudo crontab -u $user -l; done
    

如何查找大文件

  • 对查找结果按照文件大小做一个排序
    find . -type f -size +800M  -print0 | xargs -0 du -h | sort -nr
    
  • 文件夹
    du -hm --max-depth=2 | sort -nr | head -12
    

crontab文件

  • 文件:/etc/cron.deny 该文件中所列用户不允许使用crontab命令
  • 文件:/etc/cron.allow 该文件中所列用户允许使用crontab命令
  • 文件:/var/spool/cron 所有用户crontab文件存放的目录,以用户名命名

磁盘挂载

  • 系统盘的扩容安全无影响
  • 数据磁盘的挂载需要选择全新的无文件的空目录,或者先把目录下的文件移至其它位置
  • 一个目录下面只能挂载一个数据磁盘,数据磁盘支持像系统盘一样的扩容操作
  • 必要时执行umount 挂载目录ls -la 挂载目录可能有一些帮助
  • 温馨提示重要文件请备份,科学绿色环保无公害
  • 华为云文档参考
  • 阿里云文档参考

mysql操作

  • 创建数据库 CREATE DATABASE IF NOT EXISTS local_test DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;
  • 导出数据库 mysqldump -uroot -p --add_drop_database database_name > database.sql
  • --no-create-db,-n 将不创建数据库,不与 --databases 或者 --all-databases 搭配使用
    +【-B, --databases】导出指定数据库数据,包括数据库和表的创建脚本
  • 相反使用 -n, --no-create-db
    mysqldump -uroot -p -B test dbname2
    mysqldump -uroot -p -n test
    
  • --lock-all-tables,-x 在开始导出之前,提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭
  • 导出指定表的数据
    mysqldump -t database -u username -ppassword --tables table_name1 table_name2 > database.sql
    
  • 导出存储过程和自定义函数 --routines,-R
    mysqldump -uroot -R -n test -p > database.sql
    
  • 只导出存储过程和函数(不导出结构和数据)
    mysqldump -uroot -R -ndt dbname1 -p > xxx.sql
    
  • 导出单库所有数据
    mysqldump -hhostname -uusername -ppassword --single-transaction --triggers --routines --events --no-create-db databasename > database_`date +%F_%H_%M_%S`.sql;
    
  • 导出所有数据库数据脚本
    #!/bin/bash
    
    timestamp=$(date +"%Y%m%d_%H%M%S")
    
    DBS=$(mysql -u root -p123456 -e 'show databases' -s --skip-column-names)
    
    for db in $DBS; do
        echo ${db}_${timestamp}.sql
        mysqldump -u root -p123456 --single-transaction --triggers --routines --events --no-create-db $db > ${db}_${timestamp}.sql
    done
    
  • 导出单库的表结构
    mysqldump -uroot -p123456 -d --add-drop-table dbname > dbname.sql
    
  • 导出单库所有数据
    mysqldump -uroot -p123456 -t dbname > dbname.sql
    
  • sql.gz数据备份与恢复
    mysqldump -hhostname -uusername -ppassword --no-create-db -x databasename | gzip > sqlback.sql.gz
    
    gunzip < sqlback.sql.gz | mysql -uusername -ppassword databasename
    
  • 杂项
    连接服务器保持不掉线(ubantu)
    ssh -o serveraliveinterval=60 root@ip
    
    连接服务器保持不掉线(centos编辑/etc/ssh/sshd_config文件设置心跳,保持连接)
    ClientAliveInterval 600      
    ClientAliveCountMax 10
    
    #配置生效
    systemctl restart sshd
    
    Too many authentication failures
    -o IdentitiesOnly=yes 
    
  • 显示进程间的关系
    pstree -apnh
    
  • 查看系统所有环境变量
    env | grep -i proxy
    unset proxy
    
  • 常用
    mysqldump -uroot -p -n test > /file/test.sql;
    
  • 导入mysqldump文件 mysql>source /home/xxxx/database .sql; 或 mysql -uroot -p < database.sql
  • 创建数据库 CREATE DATABASE IF NOT EXISTS yourdbname DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci
  • 测试脚本是否有语法错误
    bash -n filetest.sh
    
  • 把脚本中的每条命令的执行情况打印出来
    bash -x filetest.sh
    

记一次由于软件更新未成功导致ubantu桌面进不去[进入高级recovery模式]

sudo apt-get update
sudo apt-get upgrade

sudo apt-get remove lightdm
sudo install lightdm

systemctl enable lightdm.service
systemctl start lightdm.service

参考链接

posted @ 2019-07-11 23:04  绝技小嗨皮  阅读(390)  评论(0编辑  收藏  举报
Title