@日常命令
| cd .. |
| cd - |
| cd或cd ~ |
| cd / |
| |
| pwd |
| ls |
| ls localrepo/ |
| ll |
| la |
| tree |
| tree mydir |
| touch hello.py |
| |
| mkdir mydir |
| mkdir -p a/b/c |
| mkdir -p a/{b,c}/{d,e} |
| |
| cp hello.py ~/hello2.py |
| cp hello.py -i hello2.py |
| cp hello.py -f hello2.py |
| cp hello.py -n hello2.py |
| |
| mv hello2.py hellocp.py |
| mv hello.py ~/Desktop |
| rm hellocp.py |
| rm -rf localrepo/ |
| |
| find ~/Desktop/ -name '*.py' |
| whereis python |
| which python |
| |
| ln -s /usr/bin/python ./mypylink |
| alias rrm='rm -rf' |
| history |
| clear |
@命令速查
| rm --help // 查看rm命令帮助 |
| man rm // 查看rm命令的手册解释 |
| info rm // 查看rm命令详细信息 |
@日常查找
| find ~/ -name '*.py' -exec rm {} \; 查找家目录下所有的py文件并删除,{}与exec结合匹配所有文件 |
| find ~/ -name '*.py' -exec chown wife {} \; 查找家目录下所有py文件并将所有权转让给wife用户 |
| find ~/ -name '*.py' -exec cat {} \;> record.txt 查找文件并将全部内容拼接并写入文件中 |
| find ~/ -name '*.py' -exec cp {} mydir \; 查找文件并拷贝到指定目录 |
| |
| grep 'def.*' a.py 在a.py中查找指定内容 |
| grep 'def.*' a.py b.py c.py 在多个文件中寻找指定内容 |
| grep -v 'def.*' a.py 在a.py中查找指定内容以外的内容 |
| grep -i "HELLO" a.py 在a.py中查找指定内容并忽略大小写 |
| grep -E "[1-9]+" a.py 在a.py中查找正则表达式匹配的内容(匹配1到多个数字) |
| grep -F "[1-9]+" a.py 在a.py中查找纯文本内容(严格匹配字符串"[1-9]+") |
| grep -e "def.*" -e "class.*" a.py 在a.py中查找多个内容 |
| grep "text" ./ -r -n 在当前目录下递归查找内容 |
@系统管理
| poweroff 关机 |
| reboot 重启 |
| shutdown -h 12:00 定时关机 |
| shutdown -h now 立刻关机 |
| shutdown -c 取消定时关机 |
| |
| |
| |
| top 显示所有系统任务 |
| |
| free -m 查看内存占用,以M为单位 |
| uname -a 打印操作系统信息 |
| uptime -p 查看系统运行时间 |
| echo $PATH 查看环境变量 |
| export PATH=$PATH:/home/sirouyang/Desktop/ 追加环境变量 |
| lsof | head -n 10 查看进程打开的文件(一切皆文件,数据文件、网络连接、硬件设备) |
| lscpu 查看CPU信息 |
| |
| time lsof 统计命令执行时间 |
| cal/date 查看日历和时间 |
| date +%y-%m-%d-%H-%M-%S 格式化地查看时间 |
| |
| |
| runlevel 显示当前运行级别 |
| init 6 切换运行级别 |
| |
@软件安装
| |
| sudo apt update |
| sudo apt search xxx |
| sudo apt install net-tools |
| sudo apt remove --purge net-tools |
| |
| |
| wget "http://...........xxx.tar.gz" |
| tar -zxvf xxx.tar.gz |
| make clean 清除编译的垃圾 |
| make 执行编译 |
| make install 安装 |
| make uninstall 卸载 |
| |
| 可选:./configure 如果源码包中自带配置程序则执行之 |
| 可选:sudo apt search libxxx |
| 可选:sudo apt install libxxx-dev |
@文本命令
| cat hello.py |
| gedit hello.py |
| head -n 10 hello.py |
| tail -n 10 hello.py |
| less hello.py |
| vim hello.py |
@管道与重定向
| sort hello.py | uniq -c // 排序后统计次数 |
| sort hello.py | uniq -d // 排序后找出重复的行 |
| cat /proc/cpuinfo | grep -c processor // 显示CPU核心数 |
| echo 'newline' > hello.py // 将结果写入文件(覆盖) |
| echo 'newline' >> hello.py // 将结果追加到文件 |
| cat < ~/proc/cpuinfo //将指定的文件作为cat的输入 |
@压缩和解压
| tar -cvf /home/abc.tar /home/abc 只打包,不压缩(c=创建压缩包,v=打印信息,f=指定文件名) |
| tar -zcvf /home/abc.tar.gz /home/abc 打包,并用gzip压缩 |
| tar -jcvf /home/abc.tar.bz2 /home/abc 打包,并用bzip2压缩 |
| |
| tar -xvf abc.tar 解压普通tar包(x=解压缩) |
| tar -zxvf abc.tar.gz 解压gz压缩包 |
| tar -jxvf abc.tar.bz2 解压bz2压缩包 |
| |
| zip -r xxx.zip abc/* fuck/* temp/* 递归压缩多个文件夹到xxx.zip |
| unzip xxx.zip |
@磁盘管理
| df -h / 查看磁盘使用情况 |
| sudo du -h ~ 查看用户目录的磁盘使用情况 |
| du -sh 当前目录的总体占用情况 |
| du abc.tar.gz abc.tar 查看文件和目录的磁盘占用 |
| dd if=/dev/zero of=temp.txt bs=1K count=1024 写入一个充满0的文件,每块1K,共1024块,总大小1M |
| time dd if=/dev/zero of=temp.txt bs=1M count=1024 测试写入1G文件的时间(以此衡量磁盘的读写效率) |
@登录日志
| last 查看用户近期登陆情况 |
| last -2 最近登陆的两个用户 |
| last -2 root 查看root用户最近两次登陆情况 |
| |
| id 显示用户及其群组信息 |
| groups 查看当前用户所加入的组 |
| whoami 显示当前用户名称 |
@用户与权限
| groups |
| whoami |
| |
| sudo useradd -m wife |
| sudo useradd -d /home/myson -m son |
| sudo useradd -g guests -G root,adm -m him |
| sudo useradd -G guests,sudo -m -s /bin/bash mywife |
| userdel rose 删除rose 账号 |
| userdel -r rose 删除用户及相关目录下的文件(/etc/passwd, /etc/shadow, /etc/group等) |
| usermod -s /bin/ksh -d /home/z –g developer him |
| sudo passwd |
| sudo passwd mywife |
| sudo su mywife |
| sudo su |
| |
| sudo groupadd guests |
| sudo groupadd -g 101 group1 |
| groupdel group1 |
| groupmod –g 10000 -n group3 group2 |
| gpasswd -a u1 g1 将u1 加入到 g1 组 |
| gpasswd -d u1 g1 将u1 退出 g1 组 |
| gpasswd -A u1 g1 将g1 组的管理员指派给u1 |
| |
| chmod 421 hello.py |
| chmod a+r,u+wx,g+x,o-wx hello.py |
/etc/passwd文件说明:
- 是用户管理工作涉及的最重要的一个文件
- 内容包含7个字段,例如 him:x:200:50:Sam san:/usr/sam:/bin/sh
- 含义分别为 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
@网络管理
| sudo apt install net-tools 安装网络工具 |
| ifconfig |
| ping 192.168.59.129 |
| wget "http://download.redis.io/releases/redis-4.0.9.tar.gz" |
| sudo apt install traceroute 安装路径追踪工具 |
| traceroute -m 100 www.sina.com 追踪路由信息,最大100跳 |
| |
| netstat -t 列出所有TCP端口 |
| netstat -r 显示路由表 |
| netstat -i 显示接口(网卡)列表 |
| netstat -tpnl 查看已连接的TCP端口和程序名 |
| netstat -anp | grep 3306 -c 查看MySQL的连接数 |
@远程登录
| //安装并启动ssh服务 |
| sudo apt install openssh-server 安装openssh-server |
| sudo ps -ef | grep ssh 查看SSH服务是否启动,还可以netstat -tl | grep 22或systemctl status ssh |
| sudo systemctl start ssh 如果没有启动则启动SSH服务 |
| |
| //访问远程主机(前提:对方开启了ssh服务,且你知道对方的密码,或对方持有你的ssh公钥) |
| ssh root@127.0.0.1 访问远程主机 |
| exit 退出远程访问 |
| |
| //执行远程拷贝 |
| scp -r sirouyang@192.168.158.129:/abc /home/wife/Desktop/ 从远程主机拷贝内容到本地 |
| scp -r /abc sirouyang@192.168.158.129:/home/sirouyang/Desktop/ 从本地拷贝内容弄到远程主机(对方没有本地的公钥时需要密码认证) |
| |
| |
| ssh-keygen -t rsa 生成ssh秘钥对 |
| scp ~/.ssh/id_rsa.pub sirouyang@192.168.158.129:/home/sirouyang/.ssh/ 上传公钥给远程主机 |
| ssh sirouyang@192.168.158.129 ssh登录远程主机 |
| cat Desktop/id_rsa.pub >> ~/.ssh/authorized_keys 操作远程主机添加公钥认证(今后远程对本地ssh免密) |
| |
| //一站式让远程持有自己的公钥 |
| ssh-copy-id sirouyang@192.168.158.128 让远程持有自己的公钥(对方不必添加公钥到authorized_keys) |
如果远程持有自己的公钥后依然无法免密登录,需要修改配置文件,请参考: blog.csdn.net/b_x_p/artic…
@进程管理
| ps -ef |
| ps -aux |
| ps -ef | grep redis |
| kill -9 77157 |
| kill -15 77157 |
@服务管理
| |
| apt-get install sysv-rc-conf 安装chkconfig服务 |
| cp /usr/sbin/sysv-rc-conf /usr/sbin/chkconfig 重命名一下可执行程序 |
| chkconfig --list 查看所有服务的开机启动状态 |
| chkconfig --list mysqld 查看mysql的开机启动状态 |
| chkconfig mysqld on 设置mysql开机启动 |
| chkconfig mysqld off 禁止mysql开机启动 |
| sudo apt install firewalld 安装firewalld |
| firewall-cmd --state 查看防火墙状态 |
| |
| |
| systemctl status firewalld 查看服务状态 |
| systemctl start firewalld 启动服务 |
| systemctl stop firewalld 停止服务 |
| systemctl restart firewalld 重启服务 |
| systemctl is-enabled firewalld 查看是否开机启动 |
| systemctl enable firewalld 设置服务开机自启 |
| systemctl disable firewalld 禁止服务开机自启 |
| systemctl daemon-reload 重新加载某个服务的配置文件 |
| |
| |
| service mysql start 启动mysql |
| service mysql stop 停止mysql |
| service mysql restart 重启mysql |
| |
| |
| /etc/init.d/mysql start 启动mysql |
| /etc/init.d/mysql stop 停止mysql |
| /etc/init.d/mysql restart 重启mysql |
@其它命令
| ls -i /usr/bin/python //查看文件的inode |
| ln /usr/bin/python ./phln // 创建硬链接(共享文件入口)(硬链接不能跨磁盘) |
| source ~/.bashrc // 使修改后的bashrc生效 |
@附录
一键安装Ubuntu常用库
| sudo apt install man gcc make sudo lsof ssh openssl tree vim dnsutils iputils‑ping net‑ |
| tools psmisc sysstat curl telnet traceroute wget libbz2‑dev libpcre3 libpcre3‑dev |
| libreadline‑dev libsqlite3‑dev libssl‑dev zlib1g‑dev git mysql‑server mysql‑client zip |
| p7zip golang-go libncurses5-dev libmysqlclient-dev |
一键安装CentOS7常用工具
| |
| sudo yum update -y |
| |
| |
| sudo yum groupinstall "Development Tools" -y |
| |
| |
| sudo yum install -y net-tools |
| |
| |
| sudo yum install -y vim-enhanced |
| |
| |
| sudo yum install -y git |
| |
| |
| sudo yum install -y wget curl |
| |
| |
| sudo yum install -y unzip zip |
| |
| |
| sudo yum install -y nmap |
| |
| |
| sudo yum install -y htop |
| |
| |
| sudo yum install -y openssh-server openssh-clients |
| |
| |
| sudo yum install -y python java |
| |
| |
| sudo yum install -y mysql-server |
| |
| |
| sudo yum install -y httpd |
| |
| |
| sudo yum install -y rsync |
| |
| |
| sudo yum install -y gawk sed |
| |
| |
| sudo yum install -y systemd |
| |
| |
| sudo yum install -y procps-ng |
| |
| |
| sudo yum install -y findutils |
这些命令会安装大部分的标配日常工具,包括开发工具、网络工具、文本编辑器、版本控制系统、文件下载工具、压缩/解压工具、网络监控工具、系统监控工具、安全工具、编程语言环境、数据库管理系统、网络服务工具、文件传输工具、文本处理工具、系统服务管理工具、进程查看工具和文件查找工具等。