linux常用命令集合

来源:互联网 发布:手机相册查看软件 编辑:程序博客网 时间:2024/04/29 08:09
linux 常用命令记录

xargs 构造参数列表
find / -amin -10 # 查找在系统中最后10分钟访问的文件
find / -atime -2 # 查找在系统中最后48小时访问的文件
find / -empty # 查找在系统中为空的文件或者文件夹
find / -group cat # 查找在系统中属于 groupcat的文件
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
find / -nouser #查找在系统中属于作废用户的文件
find / -user fred #查找在系统中属于FRED这个用户的文件
find / -mtime +2 两天之前
find / -mtime -2 两天以内

/sbin/iptables -A INPUT-i lo -j ACCEPT
# Accept EstablishedConnections
/sbin/iptables -A INPUT-m state --state ESTABLISHED,RELATED -j ACCEPT

# ICMP Control
/sbin/iptables -A INPUT-p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT

watch -n 1 "ifconfig eth0|grep bytes" 查看网卡速率
rpm -i --test *.rpm 查询 rpm 包是否可以被安装
tar 小结
1.#查看tar包中的内容
tar -tf XXX.tar来查看tar包中的内容
2.#删除tar包中的目录
tar --delete (tar包中目录) -vf XXX.tar
3.#打包时排除个别目录
tar -zcvf XXX.tar.gz --exclude=test/XXX1 --exclude=test/XXX2 test
要注意的有3点
1. "-f"参数后要紧跟文件名
2."tar.gz" 包不能用tar --delete删除其中目录(先用gzip -d解开.gz)
3.配合是用file命令查看文件类型,到底是tar包,还是tar.gz
1.如果主机的 tar 是 GNU 的版本,exclude 参数就要放在前面了:
2.注意--exclude后面的排除目录后不能带/ ,否则不起作用。
# export PATH=$PATH:/usr/local/mysql/bin
检查下 PATH 中是否写入了 /usr/local/mysql/bin 路径:
# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin

小注意点:在进行./configure安装配置软件的时候,此时会用/tmp目录,如果此时/tmp被挂载别的设备,此时./configure就无法进行,会出错.我发生过/tmp挂载光盘, 在./configure安装别的软件是发生错误.[root@localhost ~]# ifconfig eth0 |awk '/HWaddr/{print $5}'
00:0C:29:0F:C7:D8
[root@localhost ~]# ifconfig eth0 |awk '/inet addr/{print $2}'|awk -F: '{print $2}'
192.168.187.129
查看是否中了arp欺骗方法:发现网关的mac在变化
arping -I eth0 网关地址
如sh# arping 192.168.0.125
ARPING 192.168.0.125 from 192.168.0.1 eth0
Unicast reply from 192.168.0.125 [00:E0:4D:06:5C:C4] 0.700ms
Unicast reply from 192.168.0.125 [00:E0:4D:06:5C:C4] 0.677ms
Unicast reply from 192.168.0.125 [00:E0:4C:00:32:F9] 837.700ms

查看是否中的洪水syn flood:查看是否有大量请求来自同一个主机
netstat -ant | wc -l
netstat -ant | grep -c SYN_RECV
查看节点号inode
stat filename
ls -i filename
df -i

给CentOS YUM加速
CentOS 5.x下 安装 yum-fastestmirror (yum install yum-fastestmirror)
CentOS 4.x下 安装 yum-plugin-fastestmirror (yum install yum-plugin-fastestmirror)
确保/etc/yum.conf里有 plugins=1 一行

curl -I www.badiu.com
curl --head www.baidu.com
host/nslookup/digwww.baidu.com
netstat -an |awk '/^tcp/{++a[$NF]}END{for(i in a)print i, a[i]}'

# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息

rpm -qpl 包名,查看包中内容

rpm -qf /bin/ping 可以查看命令属于那个包
redhat/solaris下允许root通过telnet登录
在redhat中对于远程login的限制,体现在/etc/pam.d/login文件中,缺省有一行:
 auth required /lib/security/pam_security.so注释该行,任何限制都没有,root当然可以直接telnet登陆echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
vi /etc/sysctl.conf

file /sbin/init   或 file /bin/ls查看系统是32位还是64位的(os) ,i386,i686都是32位的, x86_64 x86_64 x86_64 是64位的
dd if=/etc/passwd of=/tmp/passwd.bak    备份
gcc -v    查看GCC版本
chattr +i filename 禁止删除   chattr -i filename 取消禁止
lsattr    显示隐藏档属性
ifdown eth0 关闭网卡
ifup eth0    开启网卡
clear    清屏
history    历史记录       !55 执行第55个指令
stty   设置终端    stty -a
fdisk /mbr   删除GRUB
at     仅进行一次的工作排程
jobs    观看后台暂停的程序   jobs -l
kill    结束进程 kill -9 PID [9]强制结束,[15]正常结束,[l]列出可用的kill信号
top     查看后台程序   top -d 2    每两秒更新一次        top -d 2 -p10604   观看某个PID
         top -b -n 2 > /tmp/top.txt ----->将 top 的资讯进行 2 次,然后将结果输出到 /tmp/top.txt   
pstree   以树状图显示程序    [A]以 ASCII 来连接, [u]列出PID, [p]列出帐号
killall   要删除某个服务    killall -9 httpd
free      显示内存状态     free -m -------->以M为单位显示
uptime    显示目前系统开机时间
netstat   显示网络状态    netstat -tulnp------>找出目前系统上已在监听的网路连线及其 PID
nice      设置优先权      nice -n -5 vi & ----->用 root 给一个 nice 植为 -5 ,用於执行 vi
runlevel 显示目前的runlevel
depmod    分析可载入模块的相依性
lsmod     显示已载入系统的模块
modinfo   显示kernel模块的信息
insmod    载入模块
modprobe   自动处理可载入模块 modprobe -l
rmmod     删除模块
chkconfig   检查,设置系统的各种服务     chkconfig --list ----->列出各项服务状态
ntsysv     设置系统的各种服务
cpio      备份文件
vi一般用法
一般模式              编辑模式                  指令模式
h 左               a,i,r,o,A,I,R,O             :w 保存
j 下                进入编辑模式                :w! 强制保存
k 上                dd 删除光标当前行           :q! 不保存离开
l 右                ndd 删除n行                 :wq! 保存后离开
0 移动到行首        yy 复制当前行                :e! 还原原始档
$ 移动到行尾        nyy 复制n行                  :w filename 另存为
H 屏幕最上          p,P 粘贴                     :set nu 设置行号
M 屏幕中央          u 撤消                      :set nonu 取消行号
L 屏幕最下          [Ctrl]+r 重做上一个动作       ZZ 保存离开
G 档案最后一行      [ctrl]+z 暂停退出            :set nohlsearch   永久地关闭高亮显示
/work 向下搜索                                   :sp 同时打开两个文档
?work 向上搜索                                   [Ctrl]+w 两个文档设换
gg 移动到档案第一行                              :nohlsearch    暂时关闭高亮显示
有用:
G 档案最后一行
gg 移动到档案第一行
H 屏幕最上
M 屏幕中央
L 屏幕最下

4yl是向后复制4个字符,l是用来指明方向的吧? 4yh用向前复制四个字符。

通过vim 编辑文件,用V   进行块选

alias 显示当前所有的命令别名  
alias lm="ls -al"   命令别名 unalias lm 取消命令别
type      类似which
exprot    设置或显示环境变量
exprot PATH="$PATH":/sbin 添加/sbin入PATH路径
echo $PATH    显示PATH路径
bash      进入子程序
name=yang     设定变量
unset name    取消变量
echo $name    显示变量的内容
myname="$name its me"   &   myname='$name its me'     单引号时$name失去变量内容
ciw=/etc/sysconfig/network-scripts/     设置路径
env      列出所有环境变量
echo $RANDOM    显示随意产生的数
set      设置SHELL
PS1='[\u@\h \w \A #\#]\$ '     提示字元的设定
[root@linux ~]# read [-pt] variable     -----------读取键盘输入的变量
   参数:
    -p :后面可以接提示字元!
    -t :后面可以接等待的『秒数!』
declare    声明 shell 变量
ulimit -a   显示所有限制资料
ls /tmp/yang && echo "exist" || echo "not exist"
意思是说,当 ls /tmp/yang 执行后,若正确,就执行echo "exist" ,若有问题,就执行echo "not exist"
echo $PATH | cut -d ':' -f 5       以:为分隔符,读取第5段内容
export | cut -c 10-20      读取第10到20个字节的内容
last | grep 'root'    搜索有root的一行,加[-v]反向搜索
cat /etc/passwd | sort    排序显示
cat /etc/passwd | wc      显示『行、字数、字节数』
正规表示法
[root@test root]# grep [-acinv] '搜寻字串' filename
    参数说明:
        -a :将 binary 档案以 text 档案的方式搜寻资料
        -c :计算找到 '搜寻字串' 的次数
        -i :忽略大小写的不同,所以大小写视为相同
        -n :顺便输出行号
        -v :反向选择,亦即显示出没有 '搜寻字串' 内容的那一行!
grep -n 'the' 123.txt     搜索the字符 -----------搜寻特定字串      
grep -n 't[ea]st' 123.txt    搜索test或taste两个字符---------利用 [] 来搜寻集合字元
grep -n '[^g]oo' 123.txt     搜索前面不为g的oo-----------向选择 [^]
grep -n '[0-9]' 123.txt 搜索有0-9的数字
grep -n '^the' 123.txt 搜索以the为行首-----------行首搜索^
grep -n '^[^a-zA-Z]' 123.txt 搜索不以英文字母开头
grep -n '[a-z]$' 123.txt    搜索以a-z结尾的行---------- 行尾搜索$
grep -n 'g..d' 123.txt     搜索开头g结尾d字符----------任意一个字元 .
grep -n 'ooo*' 123.txt     搜索至少有两个oo的字符---------重复字元 *
sed    文本流编辑器    利用脚本命令来处理文本文件
awk    模式扫描和处理语言
nl 123.txt | sed '2,5d'   删除第二到第五行的内容
nl 123.txt | sed -n '2,5p'显示2-5行内容
diff     比较文件的差异
cmp      比较两个文件是否有差异
patch    修补文件
pr       要打印的文件格式化
sudo       以其他身份来执行指令
visudo     编辑/etc/sudoers      加入一行『 test ALL=(ALL) ALL 』
            %wheel ALL = (ALL) ALL               系统里所有wheel群组的用户都可用sudo
            %wheel ALL = (ALL) NOPASSWD: ALL     wheel群组所有用户都不用密码NOPASSWD
        User_Alias ADMPW = vbird, dmtsai, vbird1, vbird3         加入ADMPW组
        ADMPW ALL = NOPASSWD: !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, \
        !/usr/bin/passwd root      可以更改使用者密码,但不能更改root密码 (在指令前面加入 ! 代表不可)
PAM (Pluggable Authentication Modules, 嵌入式模组)
who & w     看谁在线                    
last        最近登陆主机的信息
lastlog     最近登入的时间    读取 /var/log/lastlog    这点重要
talk        与其他用户交谈
write       发送信息    write test   [ctrl]+d 发送
mesg        设置终端机的写入权限    mesg n 禁止接收     mesg y
wall        向所有用户发送信息    wall this is q test
mail        写mail  
/etc/default/useradd    家目录默认设置
quota      显示磁盘已使用的空间与限制     quota -guvs ----->秀出目前 root 自己的 quota 限制值
            quota -vu   查询
quotacheck   检查磁盘的使用空间与限制     quotacheck -avug ----->将所有的在 /etc/mtab 内,含有 quota

支援的 partition 进行扫瞄
              [-m] 强制扫描
      quota一定要是独立的分区,要有quota.user和quota.group两件文件,在/etc/fstab添加一句:
      /dev/hda3 /home ext3 defaults,usrquota,grpquota 1 2
      chmod 600 quota*         设置完成,重启生效
edquota    编辑用户或群组的quota [u]用户,[g]群组,[p]复制,[t]设置宽限期限
            edquota -a yang       edquota -p yang -u young ----->复制   
quotaon    开启磁盘空间限制     quotaon -auvg -------->启动所有的具有 quota 的 filesystem
quotaoff   关闭磁盘空间限制     quotaoff -a -------->关闭了 quota 的限制
repquota -av     查阅系统内所有的具有 quota 的 filesystem 的限值状态
Quota 从开始准备 filesystem 的支援到整个设定结束的主要的步骤大概是:
1、设定 partition 的 filesystem 支援 quota 参数:
由於 quota 必须要让 partition 上面的 filesystem 支援才行,一般来说, 支援度最好的是 ext2/ext3 ,
其他的 filesystem 类型鸟哥我是没有试过啦! 启动 filesystem 支援 quota 最简单就是编辑 /etc/fstab ,
使得准备要开放的 quota 磁碟可以支援 quota 罗;
2、建立 quota 记录档:
刚刚前面讲过,整个 quota 进行磁碟限制值记录的档案是 aquota.user/aquota.group,
要建立这两个档案就必须要先利用 quotacheck 扫瞄才行喔!
3、编辑 quota 限制值资料:
再来就是使用 edquota 来编辑每个使用者或群组的可使用空间罗;
4、重新扫瞄与启动 quota :
设定好 quota 之后,建议可以再进行一次 quotacheck ,然后再以 quotaon 来启动吧!

开机流程简介
1、载入 BIOS 的硬体资讯,并取得第一个开机装置的代号;
2、读取第一个开机装置的 MBR 的 boot Loader (亦即是 lilo, grub, spfdisk 等等) 的开机资讯;
3、载入 Kernel 作业系统核心资讯, Kernel 开始解压缩,并且尝试驱动所有硬体装置;
4、Kernel 执行 init 程式并取得 run-level 资讯;
5、init 执行 /etc/rc.d/rc.sysinit 档案;
6、启动核心的外挂模组 (/etc/modprobe.conf);
7、init 执行 run-level 的各个批次档( Scripts );
8、init 执行 /etc/rc.d/rc.local 档案;
9、执行 /bin/login 程式,并等待使用者登入;
10、登入之后开始以 Shell 控管主机。
在/etc/rc.d/rc3.d内,以S开头的为开机启动,以K开头的为关闭,接着的数字代表执行顺序
GRUB vga设定
彩度\解析度 640x480 800x600 1024x768 1280x1024   bit
     256        769      771      773       775      8 bit
    32768       784      787      790       793     15 bit
    65536       785      788      791       794     16 bit
    16.8M       786      789      792       795     32 bit

./configure    检查系统信息       ./configure --help | more 帮助信息
make clean     清除之前留下的文件
make           编译
make install   安装
rpm -q ----->查询是否安装             rpm -ql ------>查询该套件所有的目录
rpm -qi ----->查询套件的说明资料       rpm -qc[d] ----->设定档与说明档
rpm -ivh ---->安装                    rpm -V -------->查看套件有否更动过
rpm -e ------>删除                    rpm -Uvh ------->升级安装
--nodeps ----->强行安装                --test ----->测试安装
-pql   查看包中内容    -qf    command 查命令属于那个包

 

 

 

  查看当前目录下文件的个数 ls -l | grep "^-" | wc -l

  查看当前目录下文件的个数,包括子目录里的。

  ls -lR| grep "^-" | wc -l

  查看某目录下文件夹(目录)的个数,包括子目录里的。

  ls -lR| grep "^d" | wc -l 
原创粉丝点击