linux常用命令

 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地址

vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
BROADCAST=192.168.1.255
IPADDR=192.168.1.33
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
USERCTL=no
PEERDNS=no
用命令的方式修改IP:
ifconfig eth0 192.168.1.99 netmask 255.255.255.0

最后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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值