日常使用中用过的linux命令
用户管理
pskill -kill -t tty名称(可用w命令查看) 踢出已登录用户
useradd -m -G sudo,video,audio,cdrom -s /bin/bash 用户名 #kali添加普通账户
visudo #linux添加sudo帐号
"在root ALL=(ALL:ALL) ALL 的下方添加一个新的sudo用户例如XXX用户:XXX ALL=(ALL:ALL)"
文件管理
du -sh * 查看文件夹内所有文件大小 zip -r aa.zip aa 压缩aa目录下所有文件,生成zip文件 chgrp 用户名 -R 目录/文件名 组名 递归更改目录/文件所属用户组 chown 用户名 -R 目录/文件名 递归更改目录/文件拥有者
sed -i "s/原字符串/要替换的字符串/g" `grep "原字符串" -rl 路径` 把某路径下所有文件中某段字符串替换为我们想修改的
压缩
zip命令 压缩:zip FileName.zip DirName 解压:unzip FileName.zip tar命令 解包:tar zxvf FileName.tar 打包:tar czvf FileName.tar DirName gz命令
压缩:gzip FileName 解压1:gunzip FileName.gz 解压2:gzip -d FileName.gz .tar.gz 和 .tgz 解压:tar zxvf FileName.tar.gz 压缩:tar zcvf FileName.tar.gz DirName
压缩多个文件:tar zcvf FileName.tar.gz DirName1 DirName2 DirName3 ... bz2命令 压缩: bzip2 -z FileName 解压1:bzip2 -d FileName.bz2 解压2:bunzip2 FileName.bz2 .tar.bz2 压缩:tar jcvf FileName.tar.bz2 DirName 解压:tar jxvf FileName.tar.bz2 bz命令 解压1:bzip2 -d FileName.bz 解压2:bunzip2 FileName.bz 压缩:未知 .tar.bz 解压:tar jxvf FileName.tar.bz Z命令 压缩:compress FileName 解压:uncompress FileName.Z .tar.Z 解压:tar Zxvf FileName.tar.Z 压缩:tar Zcvf FileName.tar.Z DirName
系统备份命令:
#tar cvpzf MyBackup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys --exclude=/tmp --exclude=/media /
# tar cvpjf MyBackup.tar.bz2 --exclude=/proc --exclude=/lost+found --exclude=/backup.tar.bz2 --exclude=/mnt --exclude=/sys --exclude=/tmp --exclude=/media / (bzip2压缩率更高)
另外需要确认一下“/media”上没有挂载任何东西(例如光盘、移动硬盘),如果有挂载东西,必须把“/media”也排除在外
恢复系统:
把文件“backup.tgz”拷贝到分区的根目录下,执行恢复命令:# tar xvpfz backup.tgz -C /
把文件“backup.tar.bz2”拷贝到分区的根目录下,执行恢复命令:# tar xvpfj backup.tar.bz2 -C /
重新创建那些在备份时被排除在外的目录
# mkdir proc
# mkdir lost+found
# mkdir mnt
# mkdir sys
# mkdir tmp
用netcat进行网络备份
接收端 nc -nvv -l -p 端口 > backup.tar.bz2
备份端 tar cvpj / | nc -q 0 IP 端口
传输完毕后nc连接自动断开
事实上一个真正快的网络比写备份文件到磁盘要快.
进程管理
开启自启动
(1)直接将可执行脚本文件放在脚本放在目录 /etc/init.d/ 下
(2)在/etc/init.d/rcS 文件中添加要执行的命令或程序,如:sh /home/start.sh
以root权限自动运行脚本 在etc目录下的rc.local 文件中添加应用代码的可执行文件路径。 例: 开机启动hello应用代码,则添加一行/home/./hello 开机启动sh脚本 以root登录linux vi /etc/rc.d/rc.local 在文档末尾添加一行语句:sh /home/sun/startXX.sh
以非root权限:su 用户 -c "/home/startXX.sh" 保存rc.local即可
防火墙设置
linux防火墙被整合到内核当中,防火墙在默认开启的情况下,只有ping和ssh不会被拦截。 iptables -L 查看防火墙规则状态。 iptables -F 清除防火墙规则,重启失效。
iptables -X 清除预设表filter 中,使用者自订链中的规则
service iptables save 保存规则,CentOS专用,Debian/Ubuntu自动保存
chkconfig iptables off / service iptables stop 关闭防火墙
流量转发
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT #把网卡eth1的流量转发给网卡eth0
DNS服务
iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPT iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT
支持由本机通过SSH连接其他机器
iptables -A INPUT -i eth0 -p tcp -s 192.168.100.0/24 --dport 22 -m state --state ESTABLESHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
注:CentOS默认开启了防火墙,所以80端口是不能正常访问的) iptables -I INPUT -p tcp --dport 80 -j ACCEPT #让防火墙打开80端口给外部即可。 可以加入到开启启动当中。 开机启动,可以参考:http://www.cnblogs.com/HD/p/4011479.html 参考文章:http://www.tuicool.com/articles/UvYVbq
iptables-persistent组件
防火墙规则重启后就丢失了,为了能够规则开机自动加载,可以使用iptables-persistent组件
该组件默认会将防火墙规则保存到/etc/iptables/rules.v4中。
安装该组件: sudo apt-get install iptables-persistent 根据其提示进行初次设置(一路确认) 使用如下命令保存和读入规则: 保存现有规则: sudo service netfilter-persistent save 读取并应用先有规则: sudo service netfilter-persistent reload
设备管理
lspci ( 列举 pci 设备) lsusb ( 列举 usb 设备) lsscsi ( 列举 scsi 设备) fdisk -l ( 磁盘分区信息) dmidecode ( 列举硬件型号, 序列号, cpu, 内存等) cat /proc/cpuinfo (CPU信息) cat /proc/meminfo (内存信息)
通过控制台连接外部设备
例:Linux连接主机名为ant-fw的思科ASA5505主机
screen -L /dev/ttyUSB (-L保留会话日志)
ant-fw>enable
Password:××××××
ant-fw#show version/clock/run (常用命令)