参考内容

文件 / 文件夹管理

回上一次所在的目录

1
cd -

查找路径所在范围内满足字符串匹配的文件和目录

1
find 路经 -name 字符串

统计当前文件个数

1
ls /usr/bin | wc -w

统计当前目录个数

1
ls -l /usr/bin | grep ^d | wc -l

查看某个文件被哪些应用程序读写

1
lsof 文件路径

将当前目录下最近 30 天访问过的文件移动到上级 back 目录

1
find . -type f -atime -30 -exec mv {} ../back \;

查找当前目录下,最近 2 到 8 小时内修改过的文件,并用 more 逐个打开查看内容。

1
find . -mmin +120 -mmin -480 -exec more {} \;

Ubuntu Terminal 文件夹是绿色高亮

一般是因为该目录的权限为 drwxrwxrwx,任何人都可以该目录进行写入操作。系统默认这是一个高风险目录,所以将它显示为醒目的绿色背景。

解决办法很简单:

1
sudo chmod o-w 文件夹

系统管理

查看系统内核

1
uname -a

查看系统版本

1
cat /etc/issue

查看 CPU 信息

1
lscpu

查看内核加载的模块

1
lsmod

显示当前硬件信息

1
lshw

查看 PCI 设备

1
lspci

查看 USB 设备

1
lsusb

查看网卡eth0状态

1
sudo ethtool eth0
1
2
fdisk -l # 查看系统分区信息
fdisk /dev/sdb # 为一块新的 SCSI 硬盘 (/dev/sdb) 进行分区
1
2
3
4
5
6
7
groupadd 组名 # 创建一个新的组
useradd -g root [username] # 为添加的用户指定相应的用户组
passwd [username] # 为用户创建密码
passwd -d [username] # 删除用户密码也能登陆
passwd -S [username] # 查询账号密码
usermod -l 新用户名 老用户名 # 为用户改名
userdel -r [username] # 删除用户
1
2
3
4
5
6
7
8
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 # 临时启动一个服务
1
2
df -h # 查看硬盘剩余空间
free -m # 查看当前的内存使用情况
1
2
3
4
ps -A # 查看当前有哪些进程
kill 进程号 # 杀死一个进程
killall 进程名 # 杀死一个进程
kill -9 进程号 # 强制杀死一个进程
1
2
reboot # 重启 LINUX 系统
halt # 关闭 LINUX 系统

打包 / 解压

1
2
3
4
tar –cvf benet.tar /home/benet # 把 /home/benet 目录打包
tar –zcvf benet.tar.gz /mnt # 把目录打包并压缩
tar –zxvf benet.tar.gz # 压缩包的文件解压恢复
tar –jxvf benet.tar.bz2 # 解压缩

包管理命令

1
2
3
4
apt-cache search package # 搜索包
apt-cache show package # 获取包的相关信息,如说明、大小、版本等
apt-cache depends package # 了解使用依赖
apt-cache rdepends package # 是查看该包被哪些包依赖

重新安装包

1
sudo apt-get install package --reinstall

修复安装

1
sudo apt-get -f install
1
2
sudo apt-get remove package # 删除包
sudo apt-get remove package --purge # 删除包,包括删除配置文件等
1
2
3
4
sudo apt-get update # 更新源
sudo apt-get upgrade # 更新已安装的包
sudo apt-get dist-upgrade # 激进更新已安装的包,可能安装新依赖包,也可能删除一些不再需要的旧包
sudo apt-get dselect-upgrade # 使用 dselect 升级
1
2
3
4
5
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 包)
1
2
3
dpkg -L 软件包名称 # 查看软件包安装内容
dpkg -S filename apt-file search filename # 查找文件属于哪个包
dpkg -l |grep ^rc|awk '{print $2}' |tr ["\n"] [" "]|sudo xargs dpkg -P - # 清除所以删除包的残余配置文件
1
sudo auto-apt run ./configure # 编译时缺少 h 文件的自动处理
1
2
dpkg –get-selections | grep -v deinstall > ~/somefile # 备份当前系统安装的所有包的列表
dpkg –set-selections < ~/somefile sudo dselect # 从上面备份的安装包的列表文件恢复所有包

硬盘

1
2
3
4
5
6
7
8
9
sudo hdparm -i /dev/hda # 查看 IDE 硬盘信息
sudo hdparm -I /dev/sda # 查看 STAT 硬盘信息

sudo pppoeconf ADSL # 配置 ADSL
sudo pon dsl-provider # ADSL 手工拨号
sudo /etc/ppp/pppoe_on_boot # 激活 ADSL
sudo poff # 断开 ADSL

sudo plog # 查看拨号日志

网络

根据 IP 查网卡地址

1
arping IP地址

查看当前 IP 地址

1
ifconfig eth0 | awk '/inet/ {split($2,x,":");print x[2]}'
1
2
3
4
# 查看当前外网的 IP 地址
w3m -no-cookie -dump www.edu.cn | grep -o'[0-9]\\{1,3\\}\\.[0-9]\\{1,3\\}\\.[0-9]\\{1,3\\}\\.[0-9]\\{1,3\\}'
w3m -no-cookie -dump www.xju.edu.cn | grep -o'[0-9]\\{1,3\\}\\.[0-9]\\{1,3\\}\\.[0-9]\\{1,3\\}\\.[0-9]\\{1,3\\}'
w3m -no-cookie -dump ip.loveroot.com | grep -o'[0-9]\\{1,3\\}\\.[0-9]\\{1,3\\}\\.[0-9]\\{1,3\\}\\.[0-9]\\{1,3\\}'
1
2
3
4
5
# 查看当前监听 80 端口的程序
lsof -i :80

# 查看当前网卡的物理地址
arp -a | awk '{print $ 4}' ifconfig eth0 | head -1 | awk '{print $5}'
1
2
3
# 立即让网络支持 nat
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -I POSTROUTING -j MASQUERADE
1
2
3
4
5
6
# 查看路由信息
netstat -rn sudo route -n

# 手工增加删除一条路由
sudo route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
sudo route del -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
1
2
3
4
# 修改网卡 MAC 地址的方法
sudo ifconfig eth0 down # 关闭网卡
sudo ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE # 然后改地址
sudo ifconfig eth0 up # 然后启动网卡
1
2
3
4
5
6
7
8
9
# 统计当前 TCP 连接的个数
netstat -na | grep ESTABLISHED | awk '{print $ 5}' | awk -F: '{print $1}' | sort | uniq -c | sort -r -n
netstat -na | grep SYN | awk '{print $ 5}' | awk -F: '{print $1}' | sort | uniq -c | sort -r -n

# 统计当前 20000 个 IP 包中大于 100 个 IP 包的 IP 地址
tcpdump -tnn -c 20000 -i eth0 | awk -F "." '{print $1″."$2″."$3″."$4}' | sort | uniq -c | sort -nr | awk ' $1 > 100 '

# 屏蔽 IPV6
echo "blacklist ipv6" | sudo tee /etc/modprobe.d/blacklist-ipv6

日期和时间

1
2
3
4
5
6
date -s mm/dd/yy # 设置日期
date -s HH:MM # 设置时间
hwclock –systohc # 将时间写入 CMOS
hwclock –hctosys # 读取 CMOS 时间
sudo ntpdate time.nist.gov # 从服务器上同步时间
sudo ntpdate time.windows.com # 从服务器上同步时间

数据库

从 mysql 中导出和导入数据

1
2
3
mysqldump 数据库名 > 文件名 # 导出数据库
mysqladmin create 数据库名 # 建立数据库
mysql 数据库名 < 文件名 # 导入数据库

忘了 mysql 的 root 口令怎么办

1
2
3
4
sudo /etc/init.d/mysql stop
sudo mysqld_safe –skip-grant-tables
sudo mysqladmin -u user password 新密码
sudo mysqladmin flush-privileges