Linux实用命令

日常使用中用过的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    (常用命令)

 

原文地址:https://www.cnblogs.com/ssooking/p/5880962.html