参考内容

文件 / 文件夹管理

1
2
3
4
ls # 列出当前目录文件 (不包括隐含文件)
ls -a # 列出当前目录文件 (包括隐含文件)
ls -l # 列出当前目录下文件的详细信息
ls -lh # 列出当前目录下文件的详细信息, 大小可读
1
2
3
cd .. # 回当前目录的上一级目录
cd - # 回上一次所在的目录
cd ~ # 回当前用户的宿主目录
1
2
mkdir 目录名 # 创建一个目录
rmdir 空目录名 # 删除一个空目录
1
2
rm 文件名 # 删除一个文件或多个文件
rm -rf 非空目录名 # 删除一个非空目录下的一切
1
mv 文件名 新名称 # 在当前目录下重命名
1
find 路经 -name 字符串 # 查找路径所在范围内满足字符串匹配的文件和目录
1
2
3
4
5
# 统计当前文件个数
ls /usr/bin | wc -w

# 统计当前目录个数
ls -l /usr/bin | grep ^d | wc -l
1
2
3
4
5
6
7
lsof 文件路径 # 查看某个文件被哪些应用程序读写

# 将当前目录下最近 30 天访问过的文件移动到上级 back 目录
find . -type f -atime -30 -exec mv {} ../back \;

# 将当前目录下最近 2 小时到 8 小时之内的文件显示出来
find . -mmin +120 -mmin -480 -exec more {} \;

Ubuntu Terminal 文件夹是绿色高亮

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

1
sudo chmod o-w 文件夹

系统管理

1
2
3
4
5
6
7
8
9
10
uname -a # 查看内核
cat /etc/issue # 查看 Ubuntu 版本

cat /proc/cpuinfo # 查看 CPU 信息
sudo ethtool eth0 # 查看网卡状态

lsmod # 查看内核加载的模块
lspci # 查看 PCI 设备
lsusb # 查看 USB 设备
lshw # 显示当前硬件信息
1
2
fdisk -l # 查看系统分区信息
fdisk /dev/sdb # 为一块新的 SCSI 硬盘进行分区
1
2
3
4
5
6
7
groupadd 组名 # 创建一个新的组
useradd -g root 用户名 # 为添加的用户指定相应的用户组
passwd [username] # 为用户创建密码
passwd -d 用户名 # 删除用户密码也能登陆
passwd -S 用户名 # 查询账号密码
usermod -l 新用户名 老用户名 # 为用户改名
userdel -r 用户名 # 删除用户
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 # 解压缩

make 编译

1
2
make # 编译
make install # 安装编译好的源码包

包管理命令

1
2
3
4
apt-cache search package # 搜索包
apt-cache show package # 获取包的相关信息,如说明、大小、版本等
apt-cache depends package # 了解使用依赖
apt-cache rdepends package # 是查看该包被哪些包依赖
1
2
3
sudo apt-get install package # 安装包
sudo apt-get install package --reinstall # 重新安装包
sudo apt-get -f install # 修复安装 "-f = -fix-missing"
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
6
sudo apt-get build-dep package # 安装相关的编译环境
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 # 查看拨号日志

网络

1
2
3
4
5
6
7
8
9
10
# 根据 IP 查网卡地址
arping IP地址

# 查看当前 IP 地址
ifconfig eth0 | awk '/inet/ {split($2,x,":");print x[2]}'

# 查看当前外网的 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