Linux常用命令及shell脚本

一、     用户管理(添加用户、切换用户、删除用户)

                            ~                                                                                    #波浪线,代表家目录

                            cd ~       和           cd                                                       #快速回到家目录 

                            id           和           whoami                                               #查看当前用户

                            who       和           w                                                         #查看当前已经登录的用户

                            whereis 文件名                                                                 #查找文件

                            root用户的家目录为/root               

                            普通用户默认家目录为/home/用户目录下

              添加用户:

                            useradd 用户名                                                                #添加用户

                            useradd -g 组名  用户名                                                   #添加用户,指定到某组

                            passwd 密码                                                                    #给添加用户设置密码、重置密码

              切换用户:

                            su 用户名                                                                        #切换用户

                            su - 用户名                                                                      #切换用户,su - 会重新加载用户的环境变量

                            sudo                                                                              #获取超级用户权限

                            普通用户sudo获取超级用户权限

                                          在           /etc/sudoers文件

                                          找到       root ALL=(ALL) ALL

                                          加入       用户名 ALL=(ALL) NOPASSWD:ALL

    删除用户:

                            userdel 用户                                                                   #删除用户

                            userdel -r 用户名                                                            #删除用户,也删除用户家目录

二、     组管理(添加组、修改组、删除组)

              添加组:

                            groupadd 组名                                                             #添加组

              修改组:

                            groupmod –n 组新名 组旧名                                          #修改组名

              删除组:

                            groupdel 组名                                                               #删除组

三、     对目录(文件夹)的操作(增删改查)

              相对路径:以当前路径为基准的路径,跟着当前路径变化;当前路径      

              绝对路径:以根目录为基准的路径;实际路径

                            cd                                                                              #进入到哪个目录里(文件夹)

                            mkdir                                                                         #创建文件夹

                            mkdir -p                                                                    #如果创建的文件夹的父目录不存在的话,自动创建父目录

                            命令 --help                                                                 #所有命令的帮助说明

                            rm         和           rmdir                                             #删除文件夹

                            rmdir                                                                        #删除空文件夹

                            rm -rf /                                                                     #强制全部删除

                            rm -rf /路径                                                              #强制全部删除某个目录下的文件

                            ls                                                                             #查看目录下的所有文件

                            ls -a                                                                         #查看隐藏文件

                            ls-la                                                                         #查看影藏文件,文件大小等详细信息

                            cat 文件                                                                    #查看文件内容

                            more 文件                                                                #分页查看文件内容

                            less 文件                                                                  #分页查看文件内容,和more命令的区别就在于它支持上下键卷动屏幕,按q即可退出

                            ln /文件绝对路径 ~/快捷方式名                                   #创建(硬连接)快捷方式(例子:ln /opt/lampp/lampp ~/lampp)(相当于复制了一遍)

                            ln -s /文件绝对路径 ~/快捷方式名                               #创建(软连接)快捷方式(例子:ln -s /opt/lampp/lampp ~/lampp)

                            du -sh                                                                    #查看当前目录的大小

                            du -sh *                                                                  #当前目录每个文件夹的大小

                            du -sh /文件路径                                                      #查看某个文件夹的大小

                            df -h                                                                      #查看当前磁盘已经使用了多少

                            df                                                                          #查看整个磁盘大小分布,还剩多少空间

                            df -l                                                                       #查看本机的文件系统(ls | wc -l,统计当前目录的行数;cat 文件名 | wc -l,统计当前文件的行数)

                            find / -name 文件                                                    #查找文件或者文件夹

                            grep 关键字 文件                                                     #查找文件里的关键字

                            grep -v 关键字 文件                                                 #过滤掉指定的信息

                            tail -f 日志                                                              #查看动态实时的日志

                            tail 文件                                                                 #默认显示文件最后十行(例:tail -5 文件,显示文件最后五行)

                            tail -f  日志|grep 关键字                                           #在动态实时的日志里查找关键字

                            nohup ./程序 &                                                      #在后台启动(例:nohup ./jmeter-server &  )

                            cd ..                                                                     #返回上一级目录

                            cd ../../                                                                 #返回上两级目录

                            cd -                                                                     #返回上一次所在的目录

                            pwd                                                                    #显示当前所在目录路径

                            树状结构,/                                                            #最高的根目录,顶级目录,相当于Windows→我的电脑

                            root                                                                    #root用户的个人文件夹(家目录)

                            bin                                                                     #存放多数用户可用的命令

                            boot                                                                  #存放启动文件和配置信息,系统启动时会用

                            dev                                                                    #存放设备文件,/dev/hdc代表光驱

                            etc                                                                     #存放服务配置文件

                            home                                                                 #其他用户的家目录

                            lib                                                                     #存放程序运行所需要的库文件

                            media                                                                #可移动设备的挂载目录

                            mnt                                                                   #设备挂载目录

                            usr                                                                   #用户程序存放目录

                            var                                                                   #存放经常改动的数据文件

                            tmp                                                                 #存放临时文件

                            wc -l                                                                #统计行数

                            wc -w                                                              #统计字数

                            |                                                                    #管道符,连接两条命令,把前面的命令执行结果给后面的命令处理,只要有一个失败,即不会执行

                            &&                                                               #and,连接两条命令,分别执行前后两条命令(例:ls && wc -l 文件名),只要有一个失败,即不会执行

              权限:

                            例:drwxr-xr-x.(d代表文件夹;什么都没有,只显示权限代表文件)

                            -rw-r--r--.

                            -rw                                    -r--                                       r--.

                            所有者的权限                      同一组用户权限                      其他用户权限

                数字方式:r=4;w=2;x=1                                       rwx:4+2+1;    r-x:4+1;          rw-:4+2

                            chmod 777                                                    #所有者的权限                   同一组用户权限                  其他用户权限

                            chmod 77                                                      #同一组用户权限                其他用户权限

                            chmod 7                                                       #其他用户权限

                            chmod -R                                                      #递归(为文件夹加权限)

                文本方式:r:读;w:写;x:执行

                            chmod o+权限 用户名                                      #给用户加权限(o:其他;u:自己;g:组)

                            chmod a+权限    和           chmod +权限           #给所有用户加权限

                            chmod o-权限 用户名                                       #去除权限(w:写;r:读;x:执行)

 

                            chown   文件 user                                            #修改文件所有者 

                            如果是一个文件夹的话,要加-R

                            chgrp     文件 group                                        #修改文件所属组

                            如果是一个文件夹的话,要加-R

              移动:

                            mv 文件名 /路径                                                #把文件移到某路径下

                            mv 文件名 新文件名                                           #改名

                            mv如果后面跟的是文件名则是改名,如果跟的是路径则是移动

                            touch                                                               #创建一个空文件

                            cp 文件 /路径                                                     #复制文件到某路径下

                            cp -r 文件夹 /路径                                               #复制文件夹到某路径下

                            cp -f 文件 /路径                                                  #强制复制文件

                            cp -rf 文件 /路径                                                 #不论是否重复,是否是文件还是文件夹,都可以复制

                            alias 创建命令='实际命令'                                     #起别名,创建命令,只对当前连接有效

                            在/etc/profile

                                          加上alias 创建命令='实际命令'                  #永久生效

                            source   文件路径                                                #重新加载文件

              进程:

                            ps -ef|grep 进程                                                  #查看进程是否存在

                            ps -a或者-e                                                         #列出所有的进程

                            top                                                                     #查看进程、资源使用率以及服务器配置,top是动态实时的数据,ps是执行时候的状态

                            kill -9 pid                                                            #强制杀进程(可以跟多个pid)

                            killall                                                                   #杀多个进程

              端口:

                            netstat -nlpt|grep pid                                            #根据pid去查询进程启动的端口号

                            netstat -nlpt|grep port                                          #查看端口号是否被占用

四、     对文件的操作(增删改查)

              命令模式,默认是命令模式,输入的都是命令

              编辑模式,输入的是文本

                            vi           和           vim                                            #修改操作文件

                            i                                                                            #切换到编辑模式,当前位置

                            o                                                                           #切换到编辑模式,下一行开始

                            a                                                                           #下一位置进行编辑

                            esc                                                                        #切换到命令模式

              命令模式下:

                            :q                                                                          #没有修改,直接退出

                            :q!                                                                         #不保存退出,强制退出

                            :wq        和           :x                                                #保存退出

                            /                                                                            #从头开始查找

                            ?                                                                          #从末尾开始查找

                            :set nu                                                                   #显示行号

                            :8                                                                          #快速到第8行

                            Shift+G                                                                  #快速到文件末尾

                            :set nonu                                                               #取消显示行号

                            x                                                                           #删除单个字符

                            dd                                                                         #删除一整行(删除几行就几dd,例如:删除16行,命令为:16dd)

                            u                                                                           #撤销

                            yy                                                                          #复制一整行(复制几行就几dd,例如:复制16行,命令为:16yy)

                            p                                                                           #粘贴

                            .                                                                            #重复前一次的操作

                            $                                                                           #快速把光标到行尾

                            0                                                                           #快速把光标到行首

                            :%s/字符/替换字符/g                                                #替换字符串

五、     安装软件

              rpm安装:

                            rpm -ivh 软件.rpm                                                    #安装,不需要再自己去加环境变量,rpm自己会添加

                            rpm -e 软件.rpm                                                      #卸载

                            rpm -qa|grep 软件                                                   #查询是否已经安装

                            rpm -i                                                                     #安装

                            rpm -U                                                                    #更新(升级)

                            rpm -e                                                                    #卸载

                            rpm -v                                                                    #显示安装信息

                            rpm -h                                                                    #显示安装进度

              yum安装:

                            yum install 软件                                                        #安装

                            yum -y install 软件                                                    #如果有选项全部同意安装

                            yum list|grep 软件                                                    #从yum列表中查找你需要的软件

                            yum update 软件                                                     #yum升级

                            yum list installed |grep 软件                                     #查询是否已经安装

                            yum remove 软件                                                   #卸载yum安装的软件

              源码安装(前提条件(安装gcc):yum -y install gcc*):

                            ①.生成编译文件(命令:./configure --prefix=/路径)

                                          ./configure 一般安装包下面都有一个configure文件,用来生成makefile编译文件

                                            --prefix                                                  #指定安装目录

                                            --with-xx                                                #指定依赖文件的目录

                            ②.make编译(命令:make)

                                          make命令也需要安装,会根据./configure产生makefile文件编译写好的c语言程序,产生可运行的文件

                            ③.make install(命令:make install)

                                          make install的作用是把编译好的文件复制到指定的目录下,也就是第一步--prefix指定的目录,如果没有指定目录的话,还是在当前目录下        

六、     上传下载(必须是一个文件,文件夹必须借助FTP工具)

                            rz                                                                          #上传                                              

                            sz 文件名称                                                            #下载

                            FTP工具:直接拖拽,什么都可以上传下载,必须选择SFTP协议

                            上传下载命令安装:使用yum安装:yum –y install lrzsz

                            编译安装:http://blog.chinaunix.net/uid-20639775-id-154615.html

七、     开关机、重启

              注销:exit(逐步注销)         logout

              重启:reboot(可以不加参数)

                            -w                                                                        #不实际关机,用户登录信息写入/var/log/wtmp

                            -d                                                                         #不将用户登录信息写入/var/log/wtmp

                            -f                                                                          #强制重启

                            shutdown -r 延时分钟数 “提示信息”                      #定时重启

              关机:shutdown(不能单独用,至少2个参数)

                            shutdown -h 延时分钟数 “提示信息”                      #定时关机

                            shutdown -r now                                                    #now表示立即执行

                            init 0                                                                       #立即关机

八、     网络的操作:修改IP地址等

                            ip a        和           ifconfig                                       #查看ip地址

                            dhclient -r                                                               #释放IP

                            dhclient                                                                   #获取IP

                            service network start/stop/restart                            #启动、停止、重启网络

九、     压缩、解压文件

                            tar -c                                                                      #创建

                            tar -x                                                                      #解压

                            tar -f                                                                       #使用归档文件

                            tar -j                                                                       #使用bzip2解压缩

                            tar -z                                                                      #使用gzip解压缩

                            tar -v                                                                       #详细输出模式

                            tar cvf 文件.tar 文件名                                               #打tar包

                            tar zcvf 压缩名称.tgz 文件名                                    #压缩成tar包

                            tar xvf 压缩文件  文件名                                             #解压,不管是否压缩,都能解开

                            zip 文件.zip 文件名                                                    #打zip包

                            unzip 文件.zip 文件名                                                 #压缩成zip包

                            gzip 文件                                                                  #压缩成gz包;只能对文件打包,打包完原来的文件就不存在了;一般在备份日志的时候用

                            gunzip 文件.gz 文件                                                    #解压

十、     环境变量(优先执行用户环境变量,用户环境变量没有再执行系统环境变量)

              作用:让一个命令/脚本随便在哪个目录下都能用

              系统环境变量:/ect/prifile

              用户环境变量:~/.bashrc(只针对自己的用户生效)

                            export PATH=$PATH:/绝对路径

                            source 文件路径                                                          #重新加载

十一、   定时任务

              crontab 文件的格式为“M H D m d cmd”。其中,M代表分钟(0~59),H代表小时(0~23),D代表天(1~31),m代表月(1~12),d代表一星期内的天(0~6,0为星期 天)。cmd表示要运行的程序,*代表每分钟都执行。

                            crontab -e                                                                  #编辑定时任务

                            crontab -l                                                                   #查看当前有哪些定时任务

              示例:

                            */1 * * * * sh /opt/lampp/test.sh                                     #表示每分钟执行一次test.sh这个脚本

                            */5 * * * * sh /opt/lampp/test.sh                                     #表示每5分钟执行一次test.sh这个脚本

                            30 21 * * * /opt/lampp/lampp restart                             #表示每晚的21:30重启lampp

十二、   重定向

                            cat 文件 >文件                                                               #把一个文件的内容复制到另一个文件里;重定向多次会覆盖之前的内容

                            >文件                                                                           #清空文件,一般在清空日志的时候使用,不需要删除和重启,直接清空

                            cat 文件 >>文件                                                             #重定向多次,追加内容

十三、   shell脚本(多个命令写在一起组成shell脚本)

                            awk

                            awk '{print $2}'                                                                #取第二列的数据

                            ps -ef|grep 进程|grep -v grep |awk '{print $2}'                    #取第二列的值

                            #!/bin/bash                                                                     #指定shell解释器(linux默认的shell解释器是bash)

 

                            定义变量时,变量名和=号之间不能有空格

              例1:启动脚本

                            count=`ps -ef|grep 进程绝对路径|grep -v grep |awk '{print $2}'|wc -l`

                            if[ $count -gt 0 ]

                            then

                            echo "进程 running"

                            else

                            nohup 进程绝对路径 &    

              例2:初版停止脚本

                            pid=`ps -ef|grep 进程绝对路径|grep -v grep |awk '{print $2}'`

                            kill -9 $pid

                            echo "进程 stoped"

              例3:终版停止脚本

                            count=`ps -ef|grep 进程绝对路径|grep -v grep |awk '{print $2}'|wc -l`

                            pid=`ps -ef|grep 进程绝对路径|grep -v grep |awk '{print $2}'`

                            if[ $count -gt 0 ]

                            then

                            kill -9 $pid

                            echo "进程 stoped"

                            else

                            echo "进程 not running"

              例4:重启脚本

                            停止脚本的绝对路径

                            启动脚本的绝对路径

十四、   其他

                            date +%Y%m%d%H%M%S                                               #获取当前时间

              桥接模式(VMnet0网络类型): 局域网内,同一网段的可以访问。VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。在bridged模式下, 你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中 的一个独立的主机系统,那么就可以手工配置它的TCP/IP配置信息,以实现通过局域网的网关或路由器访问互联网。

              NAT(网络地址转换)模式(VMnet8网络类型):只 允许虚拟机和本机连,其他不可以。让 虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。NAT模式下的虚 拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不 需要进行任何其他的配置,只需要宿主机器能访问互联网即可。

              Host-only模式(VMnet1网络类型): 只 允许虚拟机和本机连,其他不可以。在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用Host-only模式。在Host- only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的,可以利用Windows XP里面自带的Internet连接共享(实际上是一个简单的路由NAT),来让虚拟机通过主机真实的网卡进行外网的访问。虚拟系统的TCP/IP配置信 息(如IP地址网关地址DNS服务器等),都是由VMnet1(Host-only)虚拟 网络的DHCP服务器来动态分配的。

              CRT设置

                            选项→会话选项→终端→外观                                                #乱码问题,字符编码设置,修改字体等样式

                            选项→全局选项→终端→鼠标                                                #选中即复制成功

                            选项→会话选项→终端→X/Y/Zmodem                                  #上传下载时,默认选中打开哪个目录

              Xshell设置

                            文件→属性→终端                                                               #乱码问题,字符编码设置

                            文件→属性→外观                                                               #修改字体等样式

 

              [root@suan ~]#                                                                              PS1=“[\u@\H \W]\\\$ “

                            root                     当前用户                                                 u

                            suan                    主机名                                                    H

                            ~                         当前路径                                                 W

                            #                         超级用户

                            $                         普通用户

posted @ 2016-12-26 12:16  _酸酸  阅读(806)  评论(0编辑  收藏  举报