linux常用命令总结
需要熟悉的命令总结
[root@c66-moban ~]# chage -d "2015/02/16" new
设置账户过期时间
[root@c66-moban ~]# chage -E "2015/02/19" new
过期后20天停止登录权限
[root@c66-moban ~]# chage -I 20 new
用chage命令来设置修改密码的最短天数、最大天数、过期警告天数
[root@c66-moban ~]# chage -m 5 -M 100 -W 10 new
[root@c66-moban ~]# chage -l new
Last password change : Feb 16, 2015
Password expires : May 27, 2015
Password inactive : Jun 26, 2015
Account expires : Feb 19, 2015
Minimum number of days between password change : 最短密码更改的天数5天
Maximum number of days between password change 更改密码的最大数100天
Number of days of warning before password expires 在密码过期天警告数10天
10.0线上查询及帮助命令
10.1 man命令
[root@linux ~]# man ifconfig #查看ifconfig手册 mysql 数据中help好使 create user11.0目录操作命令(6 个)
11.1 ls命令
-a, --all 不隐藏任何以. 开始的项目 -A, --almost-all 列出除. 及.. 以外的任何项目 [root@s01 dev]# ls -d */ #列出当前所有目录 block/ bus/ cpu/ fd/ input/ net/ raw/ snd/11.2 tree命令
tree data 直接列出所有文件 [root@localhost ~]# tree -L 2 #-L n 只显示 n 层目录 (n 为数字)11.3 pwd命令
[root@rudder home]# pwd #显示当前目录/home11.4 mkdir命令
[root@localhost ~]# mkdir aaa #创建目录[root@localhost ~]# mkdir -p 111/abc #创建目录,父目录存在,建之11.5 rmdir命令
[root@localhost ~]# rmdir test #删除test目录,注意必须是空目录11.6 cd命令
[root@localhost ~]# cd /home/ #切换到home目录[root@localhost home]# cd - #返回切换到home前的目录/root[root@localhost ~]# cd ../ #切换到上一级目录[root@localhost /]# cd ~ #切换当前用户的home目录12.0文件操作命令(7 个)
12.1 touch命令
-r, --reference=文件 使用指定文件的时间属性替代当前时间 -t STAMP 使用[[CC]YY]MMDDhhmm[.ss] 格式的时间替代当前时间[root@linux ~]# touch test.php #将test.php的档案时间改为,当前时间,文件不存在建之[root@linux ~]# touch -c -t 05061803 test.php #将档案时间改为,5月6日18点3分[root@linux ~]# touch -r abc.php test.php #将test.php档案改成根abc.php一样12.2 cp命令
[root@localhost www]# cp -p test.rb /home/test #将test.rb copy到test目录,并且保留原文件的属性[root@localhost www]# cp -r Dir/ /home/test #将Dir目录copy到test目录下[root@localhost www]# cp -fr Dir/* /home/test #将Dir下面的所有文件强制copy到test目录下12.3 mv命令
[root@linux ~]# mv abc abc.php #将abc移动成abc.php12.4 rm命令
[root@localhost ~]# rm test.php #删除文件需要确认[root@localhost ~]# rm -f test.php #强制删除文件不确认12.5 ln命令
[root@localhost test_ln]# ln -s /home/zhangy/heartbeat ./ #在当前目录下,建立heartbeat的软连接[root@localhost test_ln]# ln -s /home/zhangy/test ./ #建立目录的软件接[root@localhost test_ln]# ln /home/zhangy/tee.txt ./ #建立硬连接[root@localhost test_ln]# ll 注意这里不能跨分区总计 4lrwxrwxrwx 1 root root 22 05-11 11:04 heartbeat -> /home/zhangy/heartbeat #文件软件接-rw-r--r-- 2 root root 0 2010-11-24 tee.txt #文件硬连接lrwxrwxrwx 1 root root 17 05-11 11:04 test -> /home/zhangy/test #目录软件接12.6 find命令
find ./ -type f -name "*.log" | xargs grep -r "error" #查找当前目录.log文件,并找出包含“error”的行find ./ -type f –name “*.log”-mtime +3|xargs rm –rffind ./ -type f -name "mysql" -exec chown root.root {} \; 查看当前data目录下类型是文件名字是mysql 将属主和属组修改为root12.7 rename命令
[root@localhost www]# rename 's/\.sh/\.php/' * #将当前目录下.sh后缀的文件,变成.php[root@localhost www]# rename 's/\.bin$//' * #批量删除当前目录下所有文件的.bin 后缀[root@localhost www]# rename 's/A-Z/a-z/' * #修改当前目录所有文件名为小写[root@tang2 111]# rename .txt .php *.txt13.0文件查看及处理命令(21 个)
13.1 cat命令
[root@localhost ~]# cat test #普通输出[root@localhost ~]#cat -n test #开头显示行号[root@localhost ~]# cat -E test #以$结束1111111111$[root@localhost ~]# cat -s test #超过二个空行,合并成一个13.2 more命令
[root@localhost zhangy]# more test.php #查看文件[root@localhost zhangy]# netstat -tpnl |more #常用方式,分页显示13.3 less命令
[root@localhost zhangy]# less test.php #查看文件[root@localhost zhangy]# netstat -tpnl |less #常用方式,分页显示13.4 head命令
head /etc/passwd #默认,显示开头前10行[root@tang2 111]# head -n 2 /etc/passwd 显示前2行13.5 tail命令
[root@linux ~]# tail /etc/passwd #默认,显示最后10 行。[root@linux ~]# tail -n 2 /etc/passwd #显示最后2行13.6 cut命令
-F 1 是显示第一列[root@localhost ~]# cat /etc/passwd | cut -f1 -d ':' |head -5 #以:分割文件,输出第一个字段rootbindaemonadmcat /etc/passwd | cut -c 1-4 |head -5 #输出文件的前四个字符13.7 paste命令
[tank@localhost test1]# paste test1 test #合并输出二文件asdfasdfas 123413.8 sort命令
sort -n 数字排序 默认就可以sort -nr 倒叙-t以什么为分隔符 –k指定列[root@mpjapi ~]# sort -t " " 1.txt 10.1.1 a10.1.1 r10.1.1 w11.1.1 g[root@mpjapi ~]# sort -t " " -k 2 1.txt 10.1.1 a10.1.1 b10.1.1 c11.1.1 g10.1.1 w[root@www ~]# cat /etc/passwd | sort -t':' -k 6.2,6.4 -k 1r #对/etc/passwd,先以第六个域的第2个字符到第4个字符进行正向排序,再基于第一个域进行反向排序[root@www ~]# cat /etc/passwd | sort -t':' -k 7 -u #查看/etc/passwd有多少个shell:对/etc/passwd的第七个域进行排序,然后去重13.9 uniq命令
[root@tang2 111]# cat 1.php| sort |uniq -c 1 3 111 1 222注意:这里的uniq 多上下一样的才能去重复 所以最好和sort一起用13.10 wc命令
[root@localhost ~]# cat /etc/passwd |wc -l #查看passwd文件有多少行3813.11 iconv命令 转换格式utf8
[root@localhost ~]# iconv abc.sh -o utf8 #将文件转换成utf8格式[root@localhost ~]# iconv -l #查看所有编码13.12 dos2unix 命令
[root@localhost test1]# dos2unix -n 1.dat 1.sh #将1.dat转换成1.shdos2unix: converting file 1.dat to file 1.sh in UNIX format ...13.13 file 命令
[root@redhat ~]# file * #查看当前目录下的所有文件类型13.14 diff 命令
[root@localhost www]# diff test1.rb test.rb #比较二个文件的不同[root@localhost www]# diff myweb/ html/ #比较二个文件夹的不同[root@localhost www]# vidiff test1.rb test.rb 图像化查看13.15 chattr lsattr 命令
chattr 修改文件在Linux第二扩展文件系统(E2fs)上的特有属性[root@localhost ~]# chattr +i nginx.conf #设置该文件不能进行任何形势的修改[root@localhost ~]# mv nginx.conf nginx.conf_bakmv: 无法将"nginx.conf" 移动至"nginx.conf_bak": 不允许的操作[root@localhost ~]# lsattr nginx.conf #查看chattr设置的权限----i--------e- nginx.conf[root@localhost ~]# chattr -i nginx.conf #取消-i的权限设置[root@localhost ~]# lsattr nginx.conf #查看chattr设置的权限-------------e- nginx.conf13.16 rev 命令和cat没区别
13.17 vimdiff 命令
[root@localhost ~]# vimdiff test.php test1.php #比较二个文件的不同14.0 文件打包压缩的命令(3个)
14.1 gzip命令
[root@localhost zhangy]# tar cf test.tar -R test #gzip不能压缩目录,先打包[root@localhost zhangy]# gzip test.tar #压缩[root@localhost zhangy]# gzip -l test.tar.gz #查看压缩包中的内容[root@localhost zhangy]# gzip -dv test.tar.gz #解压14.2 tar命令
[root@ubuntu ~]# tar -czvf ar_test.tar.gz ar_test #将ar_test文件打包并且压缩[root@ubuntu ~]# tar zxvf ar_test.tar.gz #解压[root@ubuntu ~]# tar -tf ar_test.tar.gz #查看包里面的文件信息[root@ubuntu ~]# tar -cjf all.tar.bz2 *.jpg #压缩成.bz2的压缩文件[root@ubuntu ~]# tar -xjf all.tar.bz2 #解压.bz2的文件14.3 unzip命令
unzip -o 文件 直接覆盖15.0 系统显示命令
15.1 uname命令
[root@localhost ~]# uname -a #显示系统信息 Linux localhost.localdomain 2.6.18-238.12.1.el5 #1 SMP Tue May 31 13:23:01 EDT 2011 i686 i686 i386 GNU/Linux[root@localhost ~]# uname -m #显示系统类型,一般情况下,i386,i686是32位系统,X86,X86_64是64位系统i686[root@localhost ~]# uname -n #查看主机名localhost.localdomain15.2 hostname命令
[root@linux ~]# hostname #显示主机名hnlinux[root@linux ~]# hostname -i #显示主机IP地址127.0.0.1[root@linux ~]# hostname -d #显示主机域名localdomain15.3 dmesg命令
程序用来帮助用户了解系统的启动信息。用户只需使用命令: dmesg > boot.messages 然后将文件 boot.messages 邮寄给某些可以帮你调试系统的人。而无须手工拷贝系统启动信息。[root@rudder home]# dmesg #打印内核环形缓冲区15.4 uptime命令
[root@linux ~]# uptime 11:14:00 up 3:11, 2 users, load average: 0.00, 0.01, 0.05最近一分钟,五分钟和十五分钟的系统负载15.5 stat命令
[root@www ~]#stat abc.ph 文件:"abc.ph" 大小:0 块:0 IO 块:4096 普通空文件设备:801h/2049d Inode:1200314 硬链接:1权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)最近访问:2013-05-14 13:24:30.830729223 +0800最近更改:2013-05-14 13:24:30.830729223 +0800最近改动:2013-05-14 13:24:30.830729223 +0800创建时间:-[chenliang@CnDkL01 ~]$ stat -c %a pass.sh #显示pass.sh文件的数字权限64415.6 du命令
[root@rudder ~]# du -ah #详细查看当前目录,子目录下的,所有文件和目录[tank@node1 cdn]$ du -sm * | sort -n #统计当前目录大小,并安大小排序15.7 df命令
[root@localhost ~]# df -h #目前磁盘空间和使用情况 以更易读的方式显示[root@localhost ~]# df -ia #列出各文件系统的i节点使用情况15.8 top命令
按1显示cpu 核数top - 16:15:05 up 6 days, 6:25, 2 users, load average: 1.45, 1.77, 2.14Tasks: 147 total, 1 running, 146 sleeping, 0 stopped, 0 zombieCpu(s): 0.2% us, 0.2% sy, 0.0% ni, 86.9% id, 12.6% wa, 0.0% hi, 0.0% siMem: 4037872k total, 4003648k used, 34224k free, 5512k buffersSwap: 7164948k total, 629192k used, 6535756k free, 3511184k cached 查看12.6% wa IO等待所占用的CPU时间的百分比,高过30%时IO压力高15.9 free命令
root@tnak-VirtualBox:/home/tnak# free -m #以M为单位 total used free shared buffers cachedMem: 496 345 151 0 62 226-/+ buffers/cache: 56 439Swap: 508 0 508root@tnak-VirtualBox:/home/tnak# free -s 3 #每3秒执行一次 total used free shared buffers cachedMem: 508176 353360 154816 0 63580 231656-/+ buffers/cache: 58124 450052Swap: 521212 0 52121215.10 w命令
[root@localhost ~]# w #示目前登入系统的用户信息 09:30:39 up 1:19, 2 users, load average: 0.00, 0.01, 0.05USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATtank tty1 08:29 1:01m 1.04s 0.91s -bashtank pts/0 192.168.56.1 08:29 0.00s 1.70s 0.13s sshd: tank [priv15.11 date命令
date -s "12:12:23 2006-10-10″ //这样可以设置全部时间[root@template ~]# date '+%F %T'2014-07-30 18:35:5016.0 搜索文件命令
16.1 which命令
[zhangy@BlackGhost download]$ which find/usr/bin/find16.2 whereis命令
[root@tang2 ~]# whereis -b nginxnginx: /usr/local/nginx 定位可执行文件 不带b好像也可以16.3 locate命令
[root@localhost ~]# locate ~/install #查找当前目录下以install开头的文件 /root/install.log /root/install.log.syslog [root@localhost ~]# locate -i ~/install #查找当前目录下以install开头的文件,不区分大小写 /root/install.log /root/install.log.syslog [root@localhost ~]# locate -i /etc/fuc #查找/etc目录下面以fuc开头的文件,不区分大小写17.0用户管理命令
17.1 useradd命令
- -u 指定用户的UID
- -d 指定用户的宿主目录位置
- -e 指定用户的帐号,可使用YYYY-MM-DD的日期格式
- -g 指定用户的基本组名
- -G 指定用户的附加组名
- -M 不建立使用者目录,即使/etc/login.defs系统档设定要建立使用者目录
- -s 指定用户的登录shell
17.2 userdel命令
userdel语法:[选项] 用户名 userdel功能: 删除用户帐号 userdel参数: -r 删除用户宿主目录 -r 参数将oldboy1用户的宿主目录删除 没删用户前的结果 [root@c66-moban ~]# ls -ld /home/text drwx------. 2 text text 4096 May 1 15:09 /home/text [root@c66-moban ~]# userdel -r text 删除用户后的结果 [root@c66-moban ~]# ls -ld /home/text ls: cannot access /home/text: No such file or directory17.3 passwd命令
[root@Blackghost ~] passwd zhangying #给zhangying修改密码 [root@c66-moban ~]#passwd -l new 锁定new用户 [root@c66-moban ~]#passwd -u new 给new用户解锁 [root@c66-moban ~]#passwd -d new 清空new用户密码 7天内不能更改密码 60天以后必须修改密码 过期10天通知new用户过期30天后禁止new用户登录 [root@c66-moban ~]# passwd -n 7 -x 60 -w 10 -i 30 new Adjusting aging data for user new. passwd: Success17.4 chage命令
参数 | 说 明 |
-l | 查看用户信息 |
-E | 设置账户过期时间 |
-m | 修改密码的最短天数 |
-M | 修改密码的最大天数 |
-W | 过期警告天数 |
-d | 最近一次密码设置时间设置为”最近日期” |
-I | 过期天数禁止登录 |
17.5 usermod命令
usermod语法:[选项] 用户名 usermod功能:修改用户帐号 usermod参数:- -u 修改用户的UID
- -d 修改用户的主目录
- -s 指定用户的登录shell
- -l 更改用户帐号的登录名称
- -L 锁定用户帐号
- -U 解锁用户帐号
17.6 id命令
[root@localhost ~]# id zhangy #显示zhangy的信息uid=999(zhangy) gid=999(zhangy) 组=999(zhangy)17.7 su命令
[root@Blackghost ~] su zhangying #切换用户,原用户环境变量[root@Blackghost ~] su - zhangying #切换用户,新用户环境变量17.8 sudo命令
[zhangying@Blackghost ~] sudo touch test #以root账户来建一个文件test,为空默认是root用户17.9 visudo命令
visudo 是对/etc/sudoers这个文件,进行编辑的专属命令[root@localhost ~]# visudo17.10 gropadd命令
groupadd语法:[选项] 组名 groupadd功能: 添加帐号 groupadd参数: -g指定组的GID -g 参数创建一个组名为oldboy,指定GID为310 [root@c66-moban ~]# groupadd oldboy -g 310 [root@c66-moban ~]# tail -1 /etc/group oldboy:x:310:18.0基本网络操作命令
18.1 gropadd命令
[root@localhost ~]# telnet 127.0.0.1 6379 用ctrl+D 逃跑18.2 ifdown命令
ifdown eth0 #禁用eth0 对应ifup18.3 netstat命令
f.显看已连接的TCP端口,以及PID [root@BlackGhost zhangy]# netstat -tpnl g.查看连接某服务端口最多的的IP地址 [root@BlackGhost zhangy]# netstat -nat | grep "192.168.1.15:22" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -2018 221.136.168.363 154.74.45.2422 78.173.31.2362 62.183.207.982 192.168.1.142 182.48.111.2152 124.193.219.342 119.145.41.22 114.255.41.30最新内容
- Linux系统下systemctl常用命令以及service文件配置
- CI PHP7 session 不能读取的问题
- centos 7.4 基本配置
- mysqldump导入导出数据库总结
- Linux下的tar压缩解压缩常用命令
- 查看 SELinux状态、临时关闭SELinux、永久关闭SELinux
- centos6.8 yum安装mysql 5.6
- CentOS之7与6的区别2
- CentOS之7与6的区别1
- Mysql 忘记root密码的完美解决方法
- 输入密码登录,Linux scp (rsync)设置nohup后台运行
- ubantu zabbix部署——安装配置zabbix agent详解
- Zabbix客户端(agent端口)安装配置
- CentOS 7添加开机启动服务/脚本
- 阿里云机器配置 centos 6.8