linux命令

linux系统以文件形式访问设备

linux内核分为进程调度,内存管理,虚拟文件系统,进程间通信等4个子系统

查看:ls -l
查看当前目录:pwd

切换目录:cd

创建目录:mkdir

删目录:rmdir
文件:file
创文件:touch
复制:cp
删:rm
移动文件路径:mv                  (如果在同一目录下则是改名)
查找:find
查看文件:cat
分屏显示:more
分屏显示可回滚:less
头:head
尾:tail

挂光盘:mount   /dev/cdrom /media/cdrom

卸光盘:umount /dev/cdrom  /media/cdrom

向文档123中写内容:echo  "1111"   >>  123
查看分区:fdisk     -l

fdisk   /dev/sdb

格式化sdb1:mkfs -t ext3  /dev/sdb1

做镜像:cp   /dev/cdrom     123.iso

挂镜像:mount -o loop 123.iso     /media/cdrom

查看ip:ifconfig   eth0

设置ip:ifconfig eth0 192.168.1.1   network  255.255.255.0

关闭防火墙:service iptables stop
查看前4行:head -4   /etc/passwd

添加用户:adduser
删除用户:deluser

禁用aa:usermod -L aa
启用aa:usermod -U aa
userdel aa
删aa家目录:rm -rf aa              (在家目录下)

连同家目录一起删:userdel  -r aa

把bb加入vv组:gpasswd -a bb vv
把bb退出vv组:gpasswd -d bb vv
改文件属主:chown aa 1    (aa为用户名,1为文件名)
改文件属组:chown :aa  1    或    chgrp   aa   1     (aa为属组)

改文件权限:chmod u+x 1        (1为文件名)

读:r    写:w    执行:x

属主: u    属组:g     其它:o   所有用户:a
 
为aa设置密码:

# passwd  aa
# 123  (密码)

 
查看shell:echo  $SHELL
 
查看历史命令:history

清除历史命令:history -c
 
查看命令别名:alias

命令别名:alias  m='mount /media/cdrom'

取消全部别名:unalias   -a

取消单个命令别名m:unalias  m
 
统计结果追加到123:  wc  <   /etc/passwd    >>  123

赋值:Day=sunday
取消赋值:unset Day
 

su普通用户需要进入/home下的同名文件夹下才能自由操作:

# su aa
# cd /home/aa
 
 
装telnet-server的rpm包,使之能远程登录

# rpm -ivh /media/cdrom/RedHat/RPMS/telnet-server + Tab键
 
查看服务是否开启:chkconfig --list telnet

开启服务:chkconfig  telnet on
 
动态获取ip地址: dhclient
 

在ftp中下载:mget prozilla-2.0.4.tar.gz
linux下上传到ftp:put prozilla-2.0.4.tar.gz
退出ftp:bye

开启httpd服务:service httpd start
 

查看端口号:netstat  -ntpl
 
强行卸载httpd的rpm包: rpm -e httpd --nodeps
 
批量创建目录: mkdir a_{1..100}
 
重启 : reboot
 
查看服务、进程: ps 、 top 、 pstree

后台执行: &

后台调为前台为:fg

查看:jobs 
 
查看时间、日期:date
 
查看at任务:atq

删除at任务1:atrm 1

查看周期任务:crontab -l

覆盖原有的周期任务:crontab

追加周期任务:crontab  -e

删除周期任务:crontab -r
 
退出任务:ctrl + D
 

普通用户查ip:/sbin/ifconfig

普通用户查路由:/sbin/route
 
查看传输路径(路由跟踪):traceroute
 
域名解析:nslookup
 

删默认网关:route del default gw 192.168.1.1 
 
添默认网关:route add default gw 192.168.1.1
 

换DNS服务器为1.1.1.1:

# nslookup
# server 1.1.1.1
 

 
切换用户:ctrl + alt + shift + f1...9
返回用户:alt + f7
复制目录: cp -r
删除目录: rm -r
扩大字号:ctrl + shift + "+"键
缩小字号:ctrl + "-"键
清屏:ctrl + L 或 clear
中断编辑(放弃):ctrl + c
把home下的11文件复制到当前目录:cp /home/11  .
把111移动到home下并重命名为22:mv 111 /home/22
在根目录下创建/etc/passwd的快捷方式:ln /etc/passwd    /
反向过滤查看:grep -v
以~~开头:"^..."
以~~结尾:"...$"
查看所在路径:which
查看/boot下以vmlin开头的各文件所占空间大小:du -ah /boot/vmlin*
只统计所占空间总的大小:du -sh
linux英文桌面改为中文:
在登录界面下有个Language - Chinese(simplified) - OK - 登录 - Just For This Session
改时间:date 051910302011                  (月/日/时/分/年)
 

清除历史命令:history -c
对文件或目录递归操作(继承权限):-R
查看隐藏文件:ls -a
 
 
给组/用户设置set位:chmod g/u +/- s 
给组/用户设置粘滞位:chmod g/u +/- t

例: chmod 4777 11(文件)    设置set位
     chmod 1777 11          设置粘滞位
注:set位享有root的权限
    粘滞位对其他用户的文件无权限 

指定用户的UID号: -u
指定用户的宿主目录位置: -d
指定用户的账户失效时间:-e
指定用户的基本组名/也可指定组的GID号:-g
指定用户的附加组名:-G
指定用户的登录shell:-s
指定用户无宿主目录:-M

例:# useradd aa -d /etc/passwd -g bb -G cc -s ksh -e 2010-10-31 -u 200
修改用户属性:usermod
更改用户账号的登录名称:usermod -l
清空指定用户密码,仅用用户名即可登录:passwd -d
查看用户账号状态(是否被锁定):passwd -s
锁定用户:passwd -l
解锁用户:passwd -u
查看用户详细信息:finger -l + 用户名
查看用户的属组:groups + 用户名
对文件/目录设置递归权限:chmod -R + 权限 + 目录/文件
                      
ext3分区为83,swap分区为82,LVM分区为8e
"t"指令可以变更分区类型
"d"指令可以删分区
"e"指令添加扩展分区
"p"指令添加主分区
"l"指令添加逻辑分区
 
init进程:
0:关机
1:单用户模式,不需要密码验证即可登录,用于系统维护
2:字符界面的多用户模式(不支持网络)
3:字符界面的完整多用户模式
4:不用
5:图形界面的多用户
6:重启
 
追加周期性任务计划:
# crontab -e
 10 08 *** date >> /22
 
chkconfig    + 服务名  on/off   对所有级别生效
静态查看进程:ps aux
动态查看进程:top
启动/关闭系统服务:ntsysv
 
踢***:pkill -q -U + 用户名
        userdel -r + 用户名
 
查看httpd服务的PID:pgrep httpd

用命令行关机:运行-- shutdown -h now
重启:运行 - shutdown -r now

周一到周五:0 17 * * 1-5
周一、三、五:30 8 * * 1,3,5
8点到18点每隔2个小时:0 8-18/2 * * *
每隔3天:0 * */3 * *

0 * */15 * *  /bin/rm -rf /var/ftp/pub/*              
50 7 * * *    /sbin/service   sshd start
注:要写全命令或服务的绝对路径,用which查

对用户制定周期计划:crontab -e -u aa
查看bluetooth进程号:ps aux 1 grep bluetooth
以一定格式显示日期:date "%y-%M-%d-%H:%M"

建软连接(快捷方式):ln /usr/local/123.txt    /home
查找/etc下大于100k的文件:find /etc   -size  +100k

man ls 1 col -b > 123.txt

过滤掉注释行:grep  -v  "#"

查看磁盘空间(以兆为单位):free -m
以冒号分隔显示1,6,7:head -l /etc/passwd | cut -d ":" - f 1,6,7
显示磁盘空间1,4字段:free -m | awk '{print $1,$4}'
显示当前登录用户:who
显示登录用户数:who | wc -l
显示进程数:ps | wc -l
显示当前时间、已运行时间、登录用户数及cpu负载:uptime
显示磁盘使用情况:df -hT
乘:"\*"
除:"/"
求余:"%"
运算:expr
例:expr 3 \* 5

交互式输出:read -p
去掉%:cut -d "%"
到句尾:ctrl + e
例:df -hT | grep  /boot | awk '{print $6}' | cut -d "%" -f 1
 
提示用户输入一个整数,并与判断是否小于100
read -p " " MX
[ $MX -lt 100 ] && echo "YES"           (小于输出YES,不小于无输出)
 
查看当前登录用户:users
统计用户每天的连接(上机)时间:ac -d 用户名
分别统计各用户的总连接时间:ac -p
 

指定ping的次数:-c
指定ping的大小:-s
查看所有网络接口的信息:ifconfig -a
查看路由:route   (-n)
查看系统中所有连接信息:netstat   -anptu
查看arp地址解析:arp -n
绑定arp地址解析:arp -s
删除arp地址解析:arp -d
 
 
添加默认网关:route add default gw 1.1.1.1
删除默认网关:route del default gw 1.1.1.1
添加到指定网段的路由记录:route add -net 172.16.0.0/16 gw 192.168.0.1
删除到指定网段的路由记录:route del -net 172.16.0.0/16
 

用源码包架构apache服务时,先关了(最好卸了)本机默认的httpd的rpm包
# service httpd stop
# rpm -e httpd-2.2.3-6.e15.i386.rpm      (先挂光盘进目录下)
 

限制用户密码的有效天数为30天:
# vi /etc/login.defs
 PASS_MAX_DAYS  30

# chage -M 30 用户名
 
指定用户下次登录时必须修改密码:
# chage -d 0 用户名

# vi  /etc/shadow
aa:$1$DDRWCQ.X$XKR44a4k7Wv5orwmhpctc.:0:0:30:7:::
 
限制用户密码最小长度约为6(minlen)

# vi /etc/pam.d/system-auth
password requisite pam_cracklib.so try_first_pass retry=3 minlen=12
 
限制记录命令历史条数为50:

# vi /etc/profile
HISTSIZE = 50
 

设置用户在注销(关机)后自动清空命令历史记录:

# echo "history -c" >> ~/.bash_logout
 

设置闲置超时自动注销终端(超时时间600秒):

# vi /etc/profile
export TMOUT=600
 

允许用户zhangsan通过su命令切换为root,其他用户不能:

# gpasswd -a zhangsan wheel(系统默认有)
# id zhangsan
# vi /etc/pam.d/su
auth  required  pam_wheel.so   use_uid
 
 
su - zhangsan    后当前目录为/home/zhangsan
su zhangsan     后当前目录为/root
 
 
通过挂载选项禁止执行set位程序,二进制程序
 

# vi /etc/fstab
/dev/sdb1       /var       ext3       defaults,noexec         1   2
# mount -o remount  /var
 

锁定不希望更改的系统文件:

# chattr +i  /etc/services    /etc/passwd     /boot/grub.conf
 
查看文件的属性状态:

# lsattr  /etc/passwd

解除锁定:

# chattr -i  /etc/passwd
 
 
禁止普通用户执行init.d目录中的脚本:

# chmod -R o-rwx     /etc/init.d

# chmod -R 750       /etc/init.d
 
 
防止用户通过ctrl + alt + delete 重启系统:

# vi  /etc/inttab
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now             (注释掉)

# init q                         (使以上设置立即生效)
 
 
 
禁止普通用户登录:

# touch /etc/nologin  
 
 

控制服务器开放的tty终端(init进程):

# vi  /etc/inittab
#4:2345:respawn:/sbin/mingetty   tty4
 

控制root登录的tty终端:

# vi  /etc/securetty
#tty2                                (注释掉)
 
 
更改系统登录提示,隐藏内核版本信息:

# vi /etc/issue                         (修改为以下内容)
welcome  to server
# cp -f /etc/issue    /etc/issue.net
 
 
禁止除了root以外的用户从tty1终端登录系统:

# vi /etc/pam.d/login
account required   pam_access.so
# vi /etc/security/access.conf
- : ALL EXCEPT root : tty1
 
 

禁止root用户从192.168.1.0/24,172.16.0.0/8网络中远程登录:

# vi /etc/pam.d/sshd
account  required   pam_access.so
# vi  /etc/security/access.conf
- : root : 192.168.1.0/24   172.16.0.0/8
 
 

授权用户aa可以以root权限执行ifconfig命令:

# visudo
aa s2=/sbin/ifconfig
 
 

通过别名定义一组命令授权用户使用:

# visudo
Cmnd_Alias  AA=/sbin/service,/sbin/*,/usr/sbin/*
aa    s2=AA         (AA为自定义的变量,最好大写)
 

授权用户aa可以修改用户密码,但不允许改root的

# visudo
Cmnd_Alias     BB=/usr/bin/passwd,!/usr/sbin/passwd    root
aa      s2=BB
 
 
授权用户aa登录时不需要密码验证:

aa  ALL=NOPASSWD;
 
 
 
开启路由转发功能:

# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1

# sysctl -p

在字符界面访问网站:alinks http://www.benet.com

 

linux挂载windows共享命令:

mount -o username=administrator,password=123456 //192.168.0.5/ming /mnt

 

查看linux系统是32位还是64位命令:arch   结果是i686则是32位,x86_64则是64位。

查看当前内核版本:uname -r
查看包括内核版本,机器硬件信息、网络节点名、操作系统名字等信息:uname -a