linux常用命令
1,删除非空文件夹
rm -r lj //-r参数删除时,会有提示
rm -rf lj //-f参数删除时,没有提示
2,删除空文件夹
rmdir lj
3,文件/文件夹复制
cp -rf ./lj1/a.tar ./lj2/
4,显示文件内容的行标
set number
5,调节文件内容亮度
set sy off/on
6,创建文件
vi,touch
7,重命名
mv a.c e.c
8,移动文件/文件夹
mv ./lj/a.c ./lj2/
9,压缩文件
tar -cvf a.tar a.c .
tar cvf /usr/test/sh/file.tar ./file
10,解压文件
tar -xvf a.tar
tar xvf ./file.tar -C /usr/test/sh/
11,查看文件的权限和文件或文件夹信息
ls -ls b.c
ll /tmp/sh/ 显示出来的文件大小,默认以kb为单位,可以加上-h参数,显示更直观。
排在第一行的大小,是该目录下,文件和目录大小的总和
12,修改文件的权限
文件权限分三类:
a,文件属主:创建该文件的用户
b,同组用户:拥有该文件的用户组中的任何用户
c,其它用户:即不属于拥有该文件的用户组的某一用户
如:-rwxr-xr-x 1 root root 217 08-10 19:51 test1.sh
第一个字符表示文件的类型,是文件夹,还是普通文件 例中-表示普通文件
后面的9个字符分三段,第一段是文件属主的权限
第二段是同组用户的权限,第三段是其它用户的权限
赋权限:g是代表同组用户,o是代表其它用户
chmod go+wx ./test.sh 给同组用户和其它用户赋写和执行的权限
chmod u+wr ./test.sh 给自己赋读和写权限
chmod o+wrx ./test.sh 给其它用户赋读,写和执行的权限
去权限与赋权限同理,只是把“+”换成“-”就可以了
chmod go-rw ./b.c 把同组用户和其它用户读和写的权限去除
14,快速移到文件内容的头行
gg
15,快速移动文件内容的尾行
G
16,显示当前的工作路经
pwd
17,查看磁盘空间情况
df查看总体磁盘的情况
du 查看某个目录和文件的大小。参数-ah显示目录下所有文件的大小,-h大小带单位,如KB ,MB
du -ah /tmp/sh/
18,查看当前的进程
top
查看指定进程是否启动
ps -ef | grep -i java 能查看一个是否启动,如果进程没有启动,但还是会显示grep的信息。如:root 5675 5623 0 11:19 pts/2 00:00:00 grep -i java
ps -ef |grep -i java | grep -v 'grep' 查看一个是否启动,如果进程没有启动,则什么显示都没有。因为-v参数去掉grep进程 信息。
19,中止指定的进程
killall -l 131 /131进程PID
killall -9 java
20,查看指定端口
netstat -ntl |grep 8080
netstat -apn 查看该PC上所有的端口详细信息包括IP
21,查看MD5值
在Linux中查看开发部发布的包的MD5
Md5sum 包名
一般发布新的包,会在文档中说明MD5,再到Linux环境下,用md5sum查看包的MD5与文档中的MD5进行对比,如果一致就证明取包没问题。
22,lsof查看进程属于哪个软件,在哪个位置,及指定端口目录哪个软件在运行及状态
lsof -i:8080 查看8080端口上运行哪些软件和进程
lsof -p 16708 查看进程ID为16708是哪个软件在运行及它所在的具体位置
23,crontab定时任务命令,黑客经常利用此进行挂马。
Crontab是UNIX系统下的定时任务触发器,其使用者的权限记载在下列两个文件中:
文件
含义
/etc/cron.deny
该文件中所列的用户不允许使用Crontab命令
/etc/cron.allow
该文件中所列的用户允许使用Crontab命令
Crontab命令的格式为:crontab –l|-r|-e|-i [username],其参数含义如表一:
参数名称
含义
示例
-l
显示用户的Crontab文件的内容
crontab –l
-i
删除用户的Crontab文件前给提示
crontab -ri
-r
从Crontab目录中删除用户的Crontab文件
crontab -r
-e
编辑用户的Crontab文件
crontab -e
用户所建立的Crontab文件存于/var/spool/cron中,其文件名与用户名一致。
24,查看每秒从磁盘读取数据的大小
vmstat
25,查看一个IP是否开启哪些服务
nmap -p 25,110 220.168.17.10
25,110是邮件服务器的端口,220.168.17.10是IP
26,知道其它帐户密码,但忘记root帐户密码的办法
输入 su 回车
然后输入当前账户密码,然后输入命令:sudo passwd root 回车,再输入要更改的密码,就可以切换为root用户了
27,用户之间切换的命令
su 用户名
28,系统中的很多命令无法使用,提示:command not found
方法一:[root@localhost sbin]$ /sbin/ifconfig 就可以出现使用了
方法二:[root@localhost sbin]$ export PATH=$PATH:/sbin ,这样设置后,下次就可以直接访问了,免处第一种的麻烦
29,修改DNS
vi /etc/resolv.conf
search localdomain
nameserver 222.246.129.81
30,查找文件或文件夹
find 路径 -name '要查找的文件名'
可以用*通配符,模糊查询
31,修改主机名
hostname 显示主机名
hostname server,server为要更改的计算机名称
vi /etc/hosts文件中把127.0.0.1 localhost.localdomain改为本机对应IP地址和计算机名
32,查找并显示指定的文件中,是否存在要查找的字符
cat ./vsftpd.conf | grep -i 'userlist' -------------查找vsftpd.conf文件中userlist字符
33,查看,更改系统时间
date -s 06/10/96
date -s 13:12:00
clock -w 这个命令强制把系统时间写入CMOS
34,快速在某类文件中查找字符
grep www.hn3net.com *.A
在.A的文件中查找包含 www.hn3net.com字符
35,累加文件内容中相同字符出现的次数
grep www.hn3net.com *.A | wc -l
在 .A的文件内容中,累加具有相同字符www.hn3net.com域名的次数
36,查看某个文件夹下文件的个数
ls -l |wc -l
查看当前目录中文件的个数,数目包括当前目录
37,查看文件内容中有多少行 查看所有端号
wc -l 文件名
netstat -tanp
38,文件内容合并,把文件a和文件b中的内容合并到文件c中
cat ./a ./b > ./c
39,设置和查看环境变量
环境变量是home,export home=/home/name/
查看环境变量值 echo $home
40,忘记ROOT密码解决方法
在机器启动到grub进行操作系统选择时,
对于Redhat linux:
用上下键将光标放在linux系统上,按“e”
在有kernel那一行按“e”,在出现的命令行后(不要修改或者删除其它的内容)输入“空格 single”,然后回车
按“b”,启动,系统会自动进入单用户模式,
使用passwd root命令,按提示输入新口令
修改口令后,输入reboot 命令重启系统即可
对于SUSE linux:
先按"esc"键,从grub的图形界面转至字符界面
41,修改IP地址
最后service network start
42,图形界面与命令文本界面的切换
编辑/etc/inittab,找到其中的
id:5:initdefault:
这行指示启动时的运行级是5,也就是图形模式
改成3就是文本模式了
43,关闭/开启防火墙
service iptables stop /start
采用传统方式,执行一下命令:
systemctl stop firewalld
systemctl mask firewalld
44,sed文本处理
sed -n '1p'显示第一行的内容
sed -n '$p' 显示最后一行的内容
sed -n '2,3p' 显示第2行到第3行的内容
sed -e 's/a/m' a.txt 把a.txt文件内容中的a替换成m
sed -e '2,5 s/a/m' a.txt 把a.txt文件内容2行至第5行中的a替换成m
sed -e '2,5 hello' a.txt 在a.txt文件内容中的2-5行的每行后面加上hello
45,用指定的用户身份执行一个脚本 su - oracle -c "/tmp/sh/start-orcl.sh"
以oracle的身份执行start-orcl.sh这个脚本
46,
文件权限分三类:
a,文件属主:创建该文件的用户
b,同组用户:拥有该文件的用户组中的任何用户
c,其它用户:即不属于拥有该文件的用户组的某一用户
如:-rwxr-xr-x 1 root root 217 08-10 19:51 test1.sh
第一个字符表示文件的类型,是文件夹,还是普通文件 例中-表示普通文件
后面的9个字符分三段,第一段是文件属主的权限
第二段是同组用户的权限,第三段是其它用户的权限
赋权限:g是代表同组用户,o是代表其它用户
chmod go+wx ./test.sh 给同组用户和其它用户赋写和执行的权限
chmod u+wr ./test.sh 给自己赋读和写权限
chmod o+wrx ./test.sh 给其它用户赋读,写和执行的权限
去权限与赋权限同理,只是把“+”换成“-”就可以了
chmod go-rw ./b.c 把同组用户和其它用户读和写的权限去除
47,一般权限也可以用数字表示:4:读,2:写,1:执行,
如果用数字给某一个文件赋权限,要写3段数字,如:764,则表示
用户自己是读写执行,同组用户是读写,其它用户是读的权限。
48,改变文件的所属用户,chown oracle /tmp/sh/api.sh
改变文件的所属组,chown :oracle /tmp/sh/api.sh
同时,改变文件的所属用户和组,chown oracle:dba /tmp/sh/api.sh
49,groups 查看系统当前有多少个组,groups 用户名 如:groups oracle,查看用户所属组
50,getent group 组名 如:getent group dba 查看dba组中有哪些用户
51,创建一个用户并把它加入到指定组中 useradd wangcai -G root
52,当一个脚本需要以拥有者或组的用户执行时,需要用到suid,guid
文件设置了suid或guid时,如果该文件没有执行权限,那么设置suid或guid时就没有意思,会用大写"S"
表示。4代表suid,2代表guid
如:start-orcl.sh 例子,首先用chown改变文件所属用户,再用chmod改变文件suid和guid的权限
-rwxr-xr-x 1 root root 632 08-15 17:31 start-orcl.sh
chown oracle start-orcl.sh
-rwxr-xr-x 1 oracle root 632 08-15 17:31 start-orcl.sh
chmod 6751 start-orcl.sh
-rwsr-s--x 1 oracle root 632 08-15 17:31 start-orcl.sh
53,创建快捷方式 ln -s /tmp/sh 1 创建快捷方式1指向/tmp/sh,访问1相当于访问/tmp/sh一样
54,在VI编辑状态下,替换字符
替换当前行中首次出现的字符 :s/str1/str2/
替换当前行中所有的字符 :s/str1/str2/g
替换文件中所有的字符 :.,$s/str1/str2/g
54,创建带系统当前日期的文件夹或文件
mkdir ab`date +%y%m%d%H%M%S` 创建的文件夹是:ab130120114057
touch cd`date +%Y%m%d%` 创建的文件是:cd20130120
55,定义处理文件的分割符
shell脚本中,如果使用for循环一个字符窜的话,默认使用空格来分割字符窜.还有前面所提到的 使用for循环逐行读取文件内容时候,文件行中如果有空格的话输出的结果也会变乱.这个时候 使用 IFS 变量来设置特定的字符窜分割符来,达到输出正确的目的.默认情况下 IFS 是使用<space><tab><newline>, 空格 t n 来作为默认的分割符的
IFS_OLD=$IFS
IFS=$‘\n’ #更改IFS值为$’\n’ ,注意,以回车做为分隔符
56,AWK
字符截取,如下面所示,要截取IP地址:
ifconfig eth0 | grep Mask
inet addr:10.36.64.159 Bcast:10.36.64.255 Mask:255.255.255.0
三种查找字符的方法:
grep yyyy /usr/test/txt
sed -n '/yyyy/p' /usr/test/txt
awk '/yyyy/' /usr/test/txt
以:和空格,TAB键作为分隔符
ifconfig eth0 | grep Mask | awk -F[:\ ] '{print $13}'
ifconfig eth0 | grep Mask | awk 'BEGIN{FS="[:\\ ]"} {print $13}'
cat /usr/test/cksum.txt | awk 'BEGIN{FS="[@\t]"} {print $2}'
awk命令中定义变量
ifconfig eth0 | grep Mask | awk 'BEGIN{a="hello"} {print a,$2}'
57,在linux系统中校验程序或者文档的MD5值
md5sum filename