1643 字
约 8 分钟阅读
Linux常用命令
参考内容
文件 / 文件夹管理
回上一次所在的目录
cd -查找路径所在范围内满足字符串匹配的文件和目录
find 路径 -name 字符串统计当前目录中的文件数
find . -mindepth 1 -maxdepth 1 -type f | wc -l统计当前目录中的子目录数
find . -mindepth 1 -maxdepth 1 -type d | wc -l查看某个文件被哪些应用程序读写
lsof 文件路径将当前目录下最近 30 天访问过的文件移动到上级 back 目录
find . -type f -atime -30 -exec mv {} ../back \;查找当前目录下,最近 2 到 8 小时内修改过的文件,并用 more 逐个打开查看内容。
find . -mmin +120 -mmin -480 -exec more {} \;Ubuntu Terminal 文件夹是绿色高亮
一般是因为该目录的权限为 drwxrwxrwx,任何人都可以对该目录进行写入操作。系统默认这是一个高风险目录,所以将它显示为醒目的绿色背景。
解决办法很简单:
sudo chmod o-w 文件夹系统管理
查看系统内核
uname -a查看系统版本
cat /etc/issue查看 CPU 信息
lscpu查看内核加载的模块
lsmod显示当前硬件信息
lshw查看 PCI 设备
lspci查看 USB 设备
lsusb查看网卡 eth0 状态
sudo ethtool eth0sudo fdisk -l # 查看系统分区信息sudo fdisk /dev/sdb # 为一块新的 SCSI 硬盘 (/dev/sdb) 进行分区sudo groupadd 组名 # 创建一个新的组sudo useradd -m -g 组名 用户名 # 创建用户并指定主用户组sudo passwd 用户名 # 为用户设置密码sudo passwd -d 用户名 # 删除用户密码,谨慎使用sudo passwd -S 用户名 # 查询账号密码状态sudo usermod -l 新用户名 老用户名 # 为用户改名sudo userdel -r 用户名 # 删除用户及其主目录service [servicename] start/stop/restart # 系统服务控制操作/etc/init.d/[servicename] start/stop/restart # 系统服务控制操作
sudo update-rc.d 服务名 defaults 99 # 添加一个服务sudo update-rc.d 服务名 remove # 删除一个服务/etc/init.d/服务名 restart # 临时重启一个服务/etc/init.d/服务名 stop # 临时关闭一个服务/etc/init.d/服务名 start # 临时启动一个服务df -h # 查看硬盘剩余空间free -m # 查看当前的内存使用情况ps -A # 查看当前有哪些进程kill 进程号 # 杀死一个进程killall 进程名 # 杀死一个进程kill -9 进程号 # 强制杀死一个进程sudo reboot # 重启 Linux 系统sudo halt # 关闭 Linux 系统打包 / 解压
tar -cvf benet.tar /home/benet # 把 /home/benet 目录打包tar -zcvf benet.tar.gz /mnt # 把目录打包并压缩tar -zxvf benet.tar.gz # 压缩包的文件解压恢复tar -jxvf benet.tar.bz2 # 解压缩包管理命令
apt-cache search package # 搜索包apt-cache show package # 获取包的相关信息,如说明、大小、版本等apt-cache depends package # 了解使用依赖apt-cache rdepends package # 查看哪些包依赖该包重新安装包
sudo apt-get install package --reinstall修复安装
sudo apt-get -f installsudo apt-get remove package # 删除包sudo apt-get remove package --purge # 删除包,包括删除配置文件等sudo apt-get update # 更新源sudo apt-get upgrade # 更新已安装的包sudo apt-get dist-upgrade # 激进更新已安装的包,可能安装新依赖包,也可能删除一些不再需要的旧包sudo apt-get dselect-upgrade # 使用 dselect 升级apt-get source package # 下载该包的源代码sudo apt-get clean && sudo apt-get autoclean # 清理无用的包sudo apt-get autoremove # 删除系统不再使用的孤立软件sudo apt-get check # 检查是否有损坏的依赖sudo apt-get clean # 清理所有软件缓存(即缓存在 /var/cache/apt/archives 目录里的 deb 包)dpkg -L 软件包名称 # 查看软件包安装内容dpkg -S filename # 查找已安装文件属于哪个包apt-file search filename # 在软件源中查找文件属于哪个包dpkg -l | awk '/^rc/ {print $2}' | xargs -r sudo dpkg --purge # 清除已删除软件包的残余配置文件sudo auto-apt run ./configure # 编译时缺少 h 文件的自动处理dpkg --get-selections | grep -v deinstall > ~/somefile # 备份当前系统安装的所有包的列表sudo dpkg --set-selections < ~/somefile # 恢复软件包的选择状态sudo apt-get dselect-upgrade # 按选择状态安装或删除软件包硬盘
sudo hdparm -i /dev/hda # 查看 IDE 硬盘信息sudo hdparm -I /dev/sda # 查看 SATA 硬盘信息
sudo pppoeconf ADSL # 配置 ADSLsudo pon dsl-provider # ADSL 手工拨号sudo /etc/ppp/pppoe_on_boot # 激活 ADSLsudo poff # 断开 ADSL
sudo plog # 查看拨号日志网络
根据 IP 查网卡地址
arping IP地址查看当前 IP 地址
ifconfig eth0 | awk '/inet/ {split($2,x,":");print x[2]}'# 查看当前外网的 IP 地址w3m -no-cookie -dump www.edu.cn | grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}'w3m -no-cookie -dump www.xju.edu.cn | grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}'w3m -no-cookie -dump ip.loveroot.com | grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}'查看当前监听 80 端口的程序
lsof -i :80查看当前网卡的 MAC 地址
ifconfig eth0 | grep ether | awk '{print $2}'立即让网络支持 NAT
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward > /dev/nullsudo iptables -t nat -I POSTROUTING -j MASQUERADE查看路由信息
netstat -rnsudo route -n手工增加删除一条路由
sudo route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1sudo route del -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1# 修改网卡 MAC 地址的方法sudo ifconfig eth0 down # 关闭网卡sudo ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE # 然后改地址sudo ifconfig eth0 up # 然后启动网卡# 统计当前 TCP 连接的个数netstat -na | grep ESTABLISHED | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -r -nnetstat -na | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -r -n
# 统计当前 20000 个 IP 包中大于 100 个 IP 包的 IP 地址sudo tcpdump -tnn -c 20000 -i eth0 | awk -F "." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr | awk '$1 > 100'
# 屏蔽 IPv6echo "blacklist ipv6" | sudo tee /etc/modprobe.d/blacklist-ipv6日期和时间
sudo date -s mm/dd/yy # 设置日期sudo date -s HH:MM # 设置时间sudo hwclock --systohc # 将系统时间写入硬件时钟sudo hwclock --hctosys # 从硬件时钟读取系统时间sudo ntpdate time.nist.gov # 从服务器上同步时间sudo ntpdate time.windows.com # 从服务器上同步时间数据库
从 MySQL 中导出和导入数据
mysqldump 数据库名 > 文件名 # 导出数据库mysqladmin create 数据库名 # 建立数据库mysql 数据库名 < 文件名 # 导入数据库忘了 MySQL 的 root 口令怎么办
sudo /etc/init.d/mysql stopsudo mysqld_safe --skip-grant-tablessudo mysqladmin -u user password 新密码sudo mysqladmin flush-privileges