精华内容
下载资源
问答
  • linux常用命令 ps 常用命令的使用

    千次阅读 2018-08-28 08:24:13
    linux常用命令 ps命令的使用

    1.PS 概述

    1.ps命令用于显示当前进程 (process) 的状态信息数据。
    2.ps命令适用于进程的一次性的查看,如果想对进程时间连续性的监控,可以用top命令

    top命令使用地址
    https://blog.csdn.net/u014636209/article/details/82141747

    2.命令格式

    ps [options] [--help]

    名称:ps
    使用权限:所有使用者
    说明:显示瞬间行程 (process) 的动态
    参数:options 参数,常用参数见下面

    3.常用参数

    -A 显示所有进程(等价于-e)(utility)
    -a 显示一个终端的所有进程,除了会话引线
    -N 忽略选择。
    -d 显示所有进程,但省略所有的会话引线(utility)
    -x 显示没有控制终端的进程,同时显示各个命令的具体路径。dx不可合用。(utility)
    -p pid 进程使用cpu的时间
    -u uid or username 选择有效的用户id或者是用户名
    -g gid or groupname 显示组的所有进程。
    U username 显示该用户下的所有进程,且显示各个命令的详细路径。如:ps U zhang;(utility)
    -f 全部列出,通常和其他选项联用。如:ps -fa or ps -fx and so on.
    -l 长格式(有F,wchan,C 等字段)
    -j 作业格式
    -o 用户自定义格式。
    v 以虚拟存储器格式显示
    s 以信号格式显示
    -m 显示所有的线程
    -H 显示进程的层次(和其它的命令合用,如:ps -Ha)(utility)
    e 命令之后显示环境(如:ps -d e; ps -a e)(utility)
    h 不显示第一行

    4.ps命令常用用法

    ps a 显示现行终端机下的所有程序,包括其他用户的程序。
    ps -A 显示所有进程。
    ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
    ps -e 此参数的效果和指定"A"参数相同。
    ps e 列出程序时,显示每个程序所使用的环境变量。
    ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
    ps -H 显示树状结构,表示程序间的相互关系。
    ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
    ps s 采用程序信号的格式显示程序状况。
    ps S 列出程序时,包括已中断的子程序资料。
    ps -t<终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况。
    ps u  以用户为主的格式来显示程序状况。
    ps x  显示所有程序,不以终端机来区分。

    5.ps重要命令:ps aux

    5.1. 样例

    [root@izwz91h49n3mj8r232gqwez ~]# ps -aux 
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root         1  0.0  0.1  43172  3416 ?        Ss   Apr21   1:06 /usr/lib/systemd/systemd --system --deserialize 21
    root         2  0.0  0.0      0     0 ?        S    Apr21   0:00 [kthreadd]
    root         3  0.0  0.0      0     0 ?        S    Apr21   1:24 [ksoftirqd/0]
    root         5  0.0  0.0      0     0 ?        S<   Apr21   0:00 [kworker/0:0H]
    root         7  0.0  0.0      0     0 ?        S    Apr21   0:00 [migration/0]
    root         8  0.0  0.0      0     0 ?        S    Apr21   0:00 [rcu_bh]
    root         9  0.0  0.0      0     0 ?        R    Apr21  10:10 [rcu_sched]
    root        10  0.0  0.0      0     0 ?        S    Apr21   0:54 [watchdog/0]
    root        12  0.0  0.0      0     0 ?        S    Apr21   0:00 [kdevtmpfs]
    root        13  0.0  0.0      0     0 ?        S<   Apr21   0:00 [netns]
    root        14  0.0  0.0      0     0 ?        S    Apr21   0:02 [khungtaskd]
    root        15  0.0  0.0      0     0 ?        S<   Apr21   0:00 [writeback]
    root        16  0.0  0.0      0     0 ?        S<   Apr21   0:00 [kintegrityd]
    root        17  0.0  0.0      0     0 ?        S<   Apr21   0:00 [bioset]
    root        18  0.0  0.0      0     0 ?        S<   Apr21   0:00 [kblockd]
    root        19  0.0  0.0      0     0 ?        S<   Apr21   0:00 [md]
    root        25  0.0  0.0      0     0 ?        S    Apr21   0:01 [kswapd0]
    root        26  0.0  0.0      0     0 ?        SN   Apr21   0:00 [ksmd]
    root        27  0.0  0.0      0     0 ?        SN   Apr21   0:26 [khugepaged]
    root        28  0.0  0.0      0     0 ?        S    Apr21   0:00 [fsnotify_mark]
    root        29  0.0  0.0      0     0 ?        S<   Apr21   0:00 [crypto]
    root        37  0.0  0.0      0     0 ?        S<   Apr21   0:00 [kthrotld]
    root        39  0.0  0.0      0     0 ?        S<   Apr21   0:00 [kmpath_rdacd]
    root        40  0.0  0.0      0     0 ?        S<   Apr21   0:00 [kpsmoused]
    root        41  0.0  0.0      0     0 ?        S<   Apr21   0:00 [ipv6_addrconf]
    root        60  0.0  0.0      0     0 ?        S<   Apr21   0:00 [deferwq]
    root        93  0.0  0.0      0     0 ?        S    Apr21   0:00 [kauditd]
    root       215  0.0  0.0      0     0 ?        S<   Apr21   0:00 [ata_sff]
    root       234  0.0  0.0      0     0 ?        S    Apr21   0:00 [scsi_eh_0]
    root       236  0.0  0.0      0     0 ?        S<   Apr21   0:00 [scsi_tmf_0]
    root       237  0.0  0.0      0     0 ?        S    Apr21   0:00 [scsi_eh_1]
    root       238  0.0  0.0      0     0 ?        S<   Apr21   0:00 [scsi_tmf_1]
    root       240  0.0  0.0      0     0 ?        S<   Apr21   0:00 [ttm_swap]
    root       251  0.0  0.0      0     0 ?        S<   Apr21   0:40 [kworker/0:1H]
    root       256  0.0  0.0      0     0 ?        S    Apr21   1:36 [jbd2/vda1-8]
    root       257  0.0  0.0      0     0 ?        S<   Apr21   0:00 [ext4-rsv-conver]
    root       323  0.0  0.2  36816  4600 ?        Ss   Apr21   0:38 /usr/lib/systemd/systemd-journald
    root       342  0.0  0.0  43732  1648 ?        Ss   Apr21   0:00 /usr/lib/systemd/systemd-udevd
    root       379  0.0  0.0      0     0 ?        S    Apr21   0:00 [vballoon]
    polkitd    392  0.0  0.4 527628  8156 ?        Ssl  Apr21   0:18 /usr/lib/polkit-1/polkitd --no-debug
    root       393  0.0  0.1  24704  1896 ?        Ss   Apr21   0:31 /usr/lib/systemd/systemd-logind
    dbus       397  0.0  0.0  24452  1484 ?        Ss   Apr21   0:43 /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
    root       461  0.0  0.0  25840   724 ?        Ss   Apr21   0:00 /usr/sbin/atd -f
    root       468  0.0  0.0 110032   596 tty1     Ss+  Apr21   0:00 /sbin/agetty --noclear tty1 linux
    root       469  0.0  0.0 110032   596 ttyS0    Ss+  Apr21   0:00 /sbin/agetty --keep-baud 115200 38400 9600 ttyS0 vt220
    root       755  0.0  0.7 553144 14716 ?        Ssl  Apr21  20:31 /usr/bin/python -Es /usr/sbin/tuned -l -P
    root       756  0.0  0.3 314156  5912 ?        Ssl  Apr21   0:15 /usr/sbin/rsyslogd -n
    ntp        775  0.0  0.0  29416  1744 ?        Ss   Apr21   0:48 /usr/sbin/ntpd -u ntp:ntp -g
    root      1144  0.0  0.0 122032  1188 ?        Sl   Apr21  81:37 /usr/local/cloudmonitor/wrapper/bin/./wrapper /usr/local/cloudmonitor/wrapper/bin/../conf/wrapper.conf wrapper.syslog.ident=cl
    root      1235  0.4  3.7 2057452 70908 ?       Sl   Apr21 861:52 /usr/local/cloudmonitor/jre/bin/java -Djava.compiler=none -XX:-UseGCOverheadLimit -XX:NewRatio=1 -XX:SurvivorRatio=8 -XX:+UseS
    root      2218  0.0  0.1 105476  3560 ?        Ss   Apr21   0:01 /usr/sbin/sshd -D
    root      2582  0.0  0.1  65372  2664 ?        Ssl  Aug08   6:17 /usr/sbin/aliyun-service
    root     12545  0.0  0.0      0     0 ?        S    Aug31   0:00 [kworker/0:1]
    root     14041  0.0  0.1  31716  3476 ?        Ssl  Aug31   0:25 /usr/local/aegis/aegis_update/AliYunDunUpdate
    root     14073  0.2  0.6 130796 11316 ?        Ssl  Aug31   4:25 /usr/local/aegis/aegis_client/aegis_10_51/AliYunDun
    root     14581  0.0  0.0      0     0 ?        R    Aug31   0:02 [kworker/0:0]
    root     15500  0.0  4.3 2488160 81432 ?       Sl   May08 110:10 /opt/jdk1.8.0_172/bin/java -Djava.util.logging.config.file=/usr/local/tomcats/apache-tomcat-8.5.31/conf/logging.properties -Dj
    root     15822  0.0  0.3  37164  7132 ?        Sl   Apr30  52:18 /usr/redis/redis-server *:6379
    root     16165  0.0  0.0 126276  1604 ?        Ss   Aug21   0:01 /usr/sbin/crond -n
    weblogic 18820  0.0  0.0 113308  1612 ?        S    Jun18   0:00 /bin/sh /weblogic/bea/user_projects/domains/admin/bin/startWebLogic.sh
    weblogic 18866  0.0 17.6 832004 332968 ?       Sl   Jun18 104:11 /weblogic/bea/jdk160_29/bin/java -server -Xms256m -Xmx512m -XX:MaxPermSize=128m -Dweblogic.Name=AdminServer -Djava.security.po
    root     21960  0.0  0.3 148832  5704 ?        Ss   13:30   0:00 sshd: root@pts/1
    root     21962  0.0  0.1 115436  2084 pts/1    Ss   13:30   0:00 -bash
    root     23051  0.0  0.0 151108  1844 pts/1    R+   16:39   0:00 ps -aux
    root     25730  0.0  0.0  45812  1100 ?        Ss   Aug21   0:00 nginx: master process /weblogic/nginx/sbin/nginx
    nobody   25731  0.0  0.1  46244  2116 ?        S    Aug21   0:00 nginx: worker process
    root     26729  0.0  0.0      0     0 ?        S    Aug25   0:00 [kworker/u2:1]
    root     31949  0.0  0.0      0     0 ?        S    Jul30   0:28 [kworker/u2:2]

    5.2.解释

    USER 进程的属主;
    PID 进程的ID;
    PPID 父进程;
    %CPU 进程占用的CPU百分比;
    %MEM 占用内存的百分比;
    NI 进程的NICE值,数值大,表示较少占用CPU时间;
    VSZ 进程虚拟大小;
    RSS 驻留中页的数量;
    TTY 终端ID
    STAT 进程状态(有以下几种)
    D 无法中断的休眠状态(通常 IO 的进程);
    R 正在运行可中在队列中可过行的;
    S 处于休眠状态;
    T 停止或被追踪;
    W 进入内存交换(从内核2.6开始无效);
    X 死掉的进程(从来没见过);
    Z 僵尸进程;
    < 优先级高的进程
    N 优先级较低的进程
    L 有些页被锁进内存;
    s 进程的领导者(在它之下有子进程);
    l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);
    + 位于后台的进程组;
    WCHAN 正在等待的进程资源;
    START 启动进程的时间;
    TIME 进程消耗CPU的时间;
    COMMAND 命令的名称和参数;

    6.ps重要命令:ps -ef|grep java

    6.1.样例

    [root@izwz91h49n3mj8r232gqwez ~]# ps -ef|grep java
    root      1144     1  0 Apr21 ?        01:21:37 /usr/local/cloudmonitor/wrapper/bin/./wrapper /usr/local/cloudmonitor/wrapper/bin/../conf/wrapper.conf wrapper.syslog.ident=cloudmonitor wrapper.pidfile=/usr/local/cloudmonitor/wrapper/bin/./cloudmonitor.pid wrapper.daemonize=TRUE wrapper.name=cloudmonitor wrapper.displayname=cloudmonitor wrapper.statusfile=/usr/local/cloudmonitor/wrapper/bin/./cloudmonitor.status wrapper.java.statusfile=/usr/local/cloudmonitor/wrapper/bin/./cloudmonitor.java.status wrapper.lockfile=/var/lock/subsys/cloudmonitor wrapper.script.version=3.5.27
    root      1235  1144  0 Apr21 ?        14:21:53 /usr/local/cloudmonitor/jre/bin/java -Djava.compiler=none -XX:-UseGCOverheadLimit -XX:NewRatio=1 -XX:SurvivorRatio=8 -XX:+UseSerialGC -Djava.io.tmpdir=../../tmp -Xms16m -Xmx32m -Djava.library.path=../lib:../../lib -classpath ../lib/wrappertest.jar:../lib/wrapper.jar:../../config:../../lib/agent-commons-1.2.22.jar:../../lib/agent-core-1.2.22.jar:../../lib/agent-model-1.2.22.jar:../../lib/aopalliance-1.0.jar:../../lib/commons-logging-1.2.jar:../../lib/commons-net-3.5.jar:../../lib/gson-2.4.jar:../../lib/jvm-plugin-1.2.22.jar:../../lib/log4j-1.2.16.jar:../../lib/metrics-core-3.0.2.jar:../../lib/sigar-1.6.5.132.jar:../../lib/slf4j-api-1.7.5.jar:../../lib/spring-aop-4.2.4.RELEASE.jar:../../lib/spring-beans-4.2.4.RELEASE.jar:../../lib/spring-context-4.2.4.RELEASE.jar:../../lib/spring-core-4.2.4.RELEASE.jar:../../lib/spring-expression-4.2.4.RELEASE.jar:../../lib/system-plugin-1.2.22.jar:../../lib/updater-1.2.22-jar-with-dependencies.jar -Dwrapper.key=VxqAK2C3uiUtelvk -Dwrapper.port=32000 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.disable_console_input=TRUE -Dwrapper.pid=1144 -Dwrapper.version=3.5.27 -Dwrapper.native_library=wrapper -Dwrapper.arch=x86 -Dwrapper.service=TRUE -Dwrapper.cpu.timeout=10 -Dwrapper.jvmid=1 com.aliyun.tianji.cloudmonitor.Application
    root     15500     1  0 May08 ?        01:50:10 /opt/jdk1.8.0_172/bin/java -Djava.util.logging.config.file=/usr/local/tomcats/apache-tomcat-8.5.31/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcats/apache-tomcat-8.5.31/bin/bootstrap.jar:/usr/local/tomcats/apache-tomcat-8.5.31/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcats/apache-tomcat-8.5.31 -Dcatalina.home=/usr/local/tomcats/apache-tomcat-8.5.31 -Djava.io.tmpdir=/usr/local/tomcats/apache-tomcat-8.5.31/temp org.apache.catalina.startup.Bootstrap start
    weblogic 18866 18820  0 Jun18 ?        01:44:12 /weblogic/bea/jdk160_29/bin/java -server -Xms256m -Xmx512m -XX:MaxPermSize=128m -Dweblogic.Name=AdminServer -Djava.security.policy=/weblogic/bea/wlserver_10.3/server/lib/weblogic.policy -Dweblogic.ProductionModeEnabled=true -da -Dplatform.home=/weblogic/bea/wlserver_10.3 -Dwls.home=/weblogic/bea/wlserver_10.3/server -Dweblogic.home=/weblogic/bea/wlserver_10.3/server -Dweblogic.management.discover=true -Dwlw.iterativeDev=false -Dwlw.testConsole=false -Dwlw.logErrorsToConsole=false -Dweblogic.ext.dirs=/weblogic/bea/patch_wls1036/profiles/default/sysext_manifest_classpath:/weblogic/bea/patch_ocp371/profiles/default/sysext_manifest_classpath weblogic.Server
    root     23069 21962  0 16:41 pts/1    00:00:00 grep --color=auto java
    [root@izwz91h49n3mj8r232gqwez ~]# 

    6.2.解释

    展开全文
  • Linux常用命令

    万次阅读 多人点赞 2018-11-08 11:49:23
    一、基本命令 1.1 关机和重启 1.2 帮助命令 二、目录操作命令 2.1 目录切换 cd 2.2 目录查看 ls [-al] 2.3 目录操作【增,删,改,查】 2.3.1创建目录【增】 mkdir 2.3.2删除目录或文件【删】rm 2.3.3目录...

    目录

     

    一、基本命令

    1.1 关机和重启

    1.2 帮助命令

    二、目录操作命令

    2.1 目录切换 cd

    2.2 目录查看 ls [-al]

    2.3 目录操作【增,删,改,查】

    2.3.1 创建目录【增】 mkdir

    2.3.2 删除目录或文件【删】rm

    2.3.3 目录修改【改】mv 和 cp

    2.3.4 搜索目录【查】find

    三、文件操作命令

    3.1 文件操作【增,删,改,查】

    3.1.1 新建文件【增】touch

    3.1.2 删除文件 【删】 rm

    3.1.3 修改文件【改】 vi或vim

    3.1.4 文件的查看【查】

    3.2 权限修改

    四、压缩文件操作

    4.1 打包和压缩

    4.2 解压

    五、查找命令

    5.1 grep

    5.2 find

    5.3 locate

    5.4 whereis

    5.5 which

    六、su、sudo

    6.1 su

    6.2 sudo

    七、系统服务

    八、网络管理

    8.1 主机名配置

    8.2 IP 地址配置

    8.3 域名映射

    九、定时任务指令crontab 配置

    9.1 命令格式

    9.2 配置说明、实例

    十、其他命令

    10.1 查看当前目录:pwd

    10.2 查看进程:ps -ef

    10.3 结束进程:kill

    10.4 网络通信命令:

    10.5 配置网络

    10.6 重启网络

    10.7 切换用户

    10.8 关闭防火墙

    10.9 修改文件权限

    10.10 清屏

    10.11 vi模式下快捷键

    十一、Linux项目部署

    11.1 安装jdk1.8

    11.2 安装MySQL5.6

    11.2.1 上传MySQL5.6的tar包

    11.2.2 安装

    11.2.3 开机自动启动设置

    11.2.4 开启远程访问

    11.3 安装tomcat部署项目

    11.3.1 创建ucenter用户

    11.3.2 安装Tomcat

    11.3.3 部署用户管理项目

    11.4 Linux下使用FastDFS

    11.4.1 安装gcc

    11.4.2 安装libevent

    11.4.3 安装libfastcommon-master

    11.4.4 安装fastdfs

    11.4.5 配置并启动tracker服务

    11.4.6 配置并启动storage服务

    11.5 安装fastdfs-nginx-module

    11.5.1 解压

    11.5.2 修改config

    11.5.3 配置nginx与FastDFS关联配置文件

    11.6 安装Nginx的插件

    11.6.1 如果没有安装过nginx

    11.6.2 如果已经安装过nginx

    11.6.3 启动nginx

    11.6.4 设置nginx开机启动

    11.7 安装Elasticsearch

    11.7.1 新建一个用户leyou

    11.7.2 上传安装包,并解压

    11.7.3 修改配置

    11.7.4 运行

    11.7.5 错误1:内核过低

    11.7.6 错误2:文件权限不足

    11.7.7 错误3:线程数不够

    11.7.8 错误4:进程虚拟内存

    11.7.9 重启终端窗口

    11.8 安装RabbitMQ

    11.8.1 安装Erlang

    11.8.2 安装RabbitMQ

    11.8.3 设置配置文件

    11.8.4 启动、停止

    11.8.5 开启web界面管理工具

    11.8.6 设置开机启动

    11.8.7 防火墙开放15672端口

    11.9 redis安装和配置

    11.9.1 安装

    11.9.2 配置

    11.9.3 启动或停止

    11.9.4 设置开机启动


    一、基本命令

    1.1 关机和重启

    关机
        shutdown -h now        立刻关机
        shutdown -h 5        5分钟后关机
        poweroff            立刻关机
    重启
        shutdown -r now        立刻重启
        shutdown -r 5        5分钟后重启
        reboot                立刻重启

    1.2 帮助命令

    --help命令
      shutdown --help:
      ifconfig  --help:查看网卡信息
     
    man命令(命令说明书) 
      man shutdown
      注意:man shutdown打开命令说明书之后,使用按键q退出

    二、目录操作命令

    2.1 目录切换 cd

    命令:cd 目录

    cd /        切换到根目录
    cd /usr        切换到根目录下的usr目录
    cd ../        切换到上一级目录 或者  cd ..
    cd ~        切换到home目录
    cd -        切换到上次访问的目录

    2.2 目录查看 ls [-al]

    命令:ls [-al]

    ls                查看当前目录下的所有目录和文件
    ls -a            查看当前目录下的所有目录和文件(包括隐藏的文件)
    ls -l 或 ll       列表查看当前目录下的所有目录和文件(列表查看,显示更多信息)
    ls /dir            查看指定目录下的所有目录和文件   如:ls /usr

    2.3 目录操作【增,删,改,查】

    2.3.1 创建目录【增】 mkdir

    命令:mkdir 目录

    mkdir    aaa            在当前目录下创建一个名为aaa的目录
    mkdir    /usr/aaa    在指定目录下创建一个名为aaa的目录

    2.3.2 删除目录或文件【删】rm

    命令:rm [-rf] 目录

    删除文件:
    rm 文件        删除当前目录下的文件
    rm -f 文件    删除当前目录的的文件(不询问)

    删除目录:
    rm -r aaa    递归删除当前目录下的aaa目录
    rm -rf aaa    递归删除当前目录下的aaa目录(不询问)

    全部删除:
    rm -rf *    将当前目录下的所有目录和文件全部删除
    rm -rf /*    【自杀命令!慎用!慎用!慎用!】将根目录下的所有文件全部删除

    注意:rm不仅可以删除目录,也可以删除其他文件或压缩包,为了方便大家的记忆,无论删除任何目录或文件,都直接使用 rm -rf 目录/文件/压缩包

    2.3.3 目录修改【改】mv 和 cp

    一、重命名目录
        命令:mv 当前目录  新目录
        例如:mv aaa bbb    将目录aaa改为bbb
        注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行    重命名的操作

    二、剪切目录
        命令:mv 目录名称 目录的新位置
        示例:将/usr/tmp目录下的aaa目录剪切到 /usr目录下面     mv /usr/tmp/aaa /usr
        注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作

    三、拷贝目录
        命令:cp -r 目录名称 目录拷贝的目标位置   -r代表递归
        示例:将/usr/tmp目录下的aaa目录复制到 /usr目录下面     cp /usr/tmp/aaa  /usr
        注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不    用写-r递归

    2.3.4 搜索目录【查】find

    命令:find 目录 参数 文件名称
    示例:find /usr/tmp -name 'a*'    查找/usr/tmp目录下的所有以a开头的目录或文件

    三、文件操作命令

    3.1 文件操作【增,删,改,查】

    3.1.1 新建文件【增】touch

    命令:touch 文件名
    示例:在当前目录创建一个名为aa.txt的文件        touch  aa.txt

    3.1.2 删除文件 【删】 rm

    命令:rm -rf 文件名

    3.1.3 修改文件【改】 vi或vim

    【vi编辑器的3种模式】
        基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
    1) 命令行模式command mode)
          控制屏幕光标的移动,字符、字或行的删除,查找,移动复制某区段及进入Insert mode下,或者到 last line mode。
          命令行模式下的常用命令:
          【1】控制光标移动:↑,↓,j
          【2】删除当前行:dd 
          【3】查找:/字符
          【4】进入编辑模式:i o a
          【5】进入底行模式::
          
    2) 编辑模式(Insert mode)
          只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
          编辑模式下常用命令:
          【1】ESC 退出编辑模式到命令行模式;
          
    3) 底行模式(last line mode)
         将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
         底行模式下常用命令:
         【1】退出编辑:   :q
         【2】强制退出:   :q!
         【3】保存并退出:  :wq

    打开文件

    命令:vi 文件名
    示例:打开当前目录下的aa.txt文件     vi aa.txt 或者 vim aa.txt

    注意:使用vi编辑器打开文件后,并不能编辑,因为此时处于命令模式,点击键盘i/a/o进入编辑模式。

    编辑文件

    使用vi编辑器打开文件后点击按键:i ,a或者o即可进入编辑模式。

    i:在光标所在字符前开始插入
    a:在光标所在字符后开始插入
    o:在光标所在行的下面另起一新行插入

    保存或者取消编辑

    保存文件:

    第一步:ESC  进入命令行模式
    第二步::     进入底行模式
    第三步:wq     保存并退出编辑

    取消编辑:

    第一步:ESC  进入命令行模式
    第二步::     进入底行模式
    第三步:q!     撤销本次修改并退出编辑

    3.1.4 文件的查看【查】

    文件的查看命令:cat/more/less/tail

    cat:看最后一屏

    示例:使用cat查看/etc/sudo.conf文件,只能显示最后一屏内容
    cat sudo.conf

    more:百分比显示

    示例:使用more查看/etc/sudo.conf文件,可以显示百分比,回车可以向下一行,空格可以向下一页,q可以退出查看
    more sudo.conf

    less:翻页查看

    示例:使用less查看/etc/sudo.conf文件,可以使用键盘上的PgUp和PgDn向上    和向下翻页,q结束查看
    less sudo.conf

    tail:指定行数或者动态查看

    示例:使用tail -10 查看/etc/sudo.conf文件的后10行,Ctrl+C结束  
    tail -10 sudo.conf

    3.2 权限修改

    rwx:r代表可读,w代表可写,x代表该文件是一个可执行文件,如果rwx任意位置变为-则代表不可读或不可写或不可执行文件。

    示例:给aaa.txt文件权限改为可执行文件权限,aaa.txt文件的权限是-rw-------

    第一位:-就代表是文件,d代表是文件夹
    第一段(3位):代表拥有者的权限
    第二段(3位):代表拥有者所在的组,组员的权限
    第三段(最后3位):代表的是其他用户的权限

       421  421  421
    -  rw-   ---     ---

    命令:chmod +x aaa.txt
    或者采用8421法
    命令:chmod 100 aaa.txt

    四、压缩文件操作

    4.1 打包和压缩

    Windows的压缩文件的扩展名  .zip/.rar
    linux中的打包文件:aa.tar      
    linux中的压缩文件:bb.gz    
    linux中打包并压缩的文件:.tar.gz

    Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。
    而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。

    命令:tar -zcvf 打包压缩后的文件名 要打包的文件
    其中:z:调用gzip压缩命令进行压缩
      c:打包文件
      v:显示运行过程
      f:指定文件名
      
    示例:打包并压缩/usr/tmp 下的所有文件 压缩后的压缩包指定名称为xxx.tar
    tar -zcvf ab.tar aa.txt bb.txt 
    或:tar -zcvf ab.tar  *

    4.2 解压

    命令:tar [-zxvf] 压缩文件    
    其中:x:代表解压
    示例:将/usr/tmp 下的ab.tar解压到当前目录下

    示例:将/usr/tmp 下的ab.tar解压到根目录/usr下
    tar -xvf ab.tar -C /usr------C代表指定解压的位置

    五、查找命令

    5.1 grep

    grep命令是一种强大的文本搜索工具

    使用实例:

    ps -ef | grep sshd  查找指定ssh服务进程 
    ps -ef | grep sshd | grep -v grep 查找指定服务进程,排除gerp身 
    ps -ef | grep sshd -c 查找指定进程个数 

    5.2 find

    find命令在目录结构中搜索文件,并对搜索结果执行指定的操作。 

    find 默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。

    使用实例:

    find . -name "*.log" -ls  在当前目录查找以.log结尾的文件,并显示详细信息。 
    find /root/ -perm 600   查找/root/目录下权限为600的文件 
    find . -type f -name "*.log"  查找当目录,以.log结尾的普通文件 
    find . -type d | sort   查找当前所有目录并排序 
    find . -size +100M  查找当前目录大于100M的文件

    5.3 locate

    locate 让使用者可以很快速的搜寻某个路径。默认每天自动更新一次,所以使用locate 命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。如果数据库中没有查询的数据,则会报出locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory该错误!updatedb即可!

    yum -y install mlocate 如果是精简版CentOS系统需要安装locate命令

    使用实例:

    updatedb
    locate /etc/sh 搜索etc目录下所有以sh开头的文件 
    locate pwd 查找和pwd相关的所有文件

    5.4 whereis

    whereis命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。

    使用实例:

    whereis ls    将和ls文件相关的文件都查找出来

    5.5 which

    which命令的作用是在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

    使用实例:

    which pwd  查找pwd命令所在路径 
    which java  查找path中java的路径 

    六、su、sudo

    6.1 su

    su用于用户之间的切换。但是切换前的用户依然保持登录状态。如果是root 向普通或虚拟用户切换不需要密码,反之普通用户切换到其它任何用户都需要密码验证。

    su test:切换到test用户,但是路径还是/root目录
    su - test : 切换到test用户,路径变成了/home/test
    su : 切换到root用户,但是路径还是原来的路径
    su - : 切换到root用户,并且路径是/root

    su不足:如果某个用户需要使用root权限、则必须要把root密码告诉此用户。

    退出返回之前的用户:exit

    6.2 sudo

    sudo是为所有想使用root权限的普通用户设计的。可以让普通用户具有临时使用root权限的权利。只需输入自己账户的密码即可。

    进入sudo配置文件命令:

    vi /etc/sudoer或者visudo
    案例:
    允许hadoop用户以root身份执行各种应用命令,需要输入hadoop用户的密码。
    hadoop  ALL=(ALL)   ALL 
    
    案例:
    只允许hadoop用户以root身份执行ls 、cat命令,并且执行时候免输入密码。 
    配置文件中: 
    hadoop  ALL=NOPASSWD:  /bin/ls, /bin/cat 

    七、系统服务

    service iptables status  --查看iptables服务的状态
    service iptables start  --开启iptables服务
    service iptables stop  --停止iptables服务
    service iptables restart  --重启iptables服务
    
    chkconfig iptables off  --关闭iptables服务的开机自启动
    chkconfig iptables on  --开启iptables服务的开机自启动

    八、网络管理

    8.1 主机名配置

    [root@node1 ~]# vi /etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME=node1

    8.2 IP 地址配置

    [root@node1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

    8.3 域名映射

    /etc/hosts文件用于在通过主机名进行访问时做ip地址解析之用。所以,你想访问一个什么样的主机名,就需要把这个主机名和它对应的ip地址。

    [root@node1 ~]# vi /etc/hosts
    #### 在最后加上
    192.168.52.201  node1
    192.168.52.202  node2
    192.168.52.203  node3

    九、定时任务指令crontab 配置

    crontab是Unix和Linux用于设置定时任务的指令。通过crontab命令,可以在固定间隔时间,执行指定的系统指令或shell脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。

    crontab安装:

    yum install crontabs

    服务操作说明:

    service crond start   ## 启动服务 
    service crond stop    ## 关闭服务 
    service crond restart ## 重启服务

    9.1 命令格式

    crontab [-u user] file

    crontab [-u user] [ -e | -l | -r ]

    参数说明:

    -u user:用来设定某个用户的crontab服务  

    file:file是命令文件的名字,表示将file做为crontab的任务列表文件

    并载入crontab。

    -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前

    用户的crontab文件。

    -l:显示某个用户的crontab文件内容。如果不指定用户,则表示显示当前

    用户的crontab文件内容。

    -r:删除定时任务配置,从/var/spool/cron目录中删除某个用户的crontab

    文件,如果不指定用户,则默认删除当前用户的crontab文件。

    命令示例:

    crontab file [-u user] ## 用指定的文件替代目前的crontab
    crontab -l [-u user]  ## 列出用户目前的crontab
    crontab -e [-u user]  ## 编辑用户目前的crontab

    9.2 配置说明、实例

    命令:*   *    *   *   *   command  

    解释:分  时  日  月  周  命令

    第1列表示分钟1~59 每分钟用*或者 */1表示    

    第2列表示小时0~23(0表示0点)

    第3列表示日期1~31  

    第4列表示月份1~12  

    第5列标识号星期0~6(0表示星期天)  

    第6列要运行的命令

    配置实例:

    先打开定时任务所在的文件:
    crontab -e
    
    每分钟执行一次date命令 
    */1 * * * * date >> /root/date.txt
    
    每晚的21:30重启apache。 
    30 21 * * * service httpd restart
    
    每月1、10、22日的4 : 45重启apache。  
    45 4 1,10,22 * * service httpd restart
    
    每周六、周日的1 : 10重启apache。 
    10 1 * * 6,0 service httpd restart
    
    每天18 : 00至23 : 00之间每隔30分钟重启apache。
    0,30   18-23    *   *   *   service httpd restart
    晚上11点到早上7点之间,每隔一小时重启apache
    *  23-7/1    *   *   *   service httpd restart

    十、其他命令

    10.1 查看当前目录:pwd

    命令:pwd     查看当前目录路径

    10.2 查看进程:ps -ef

    命令:ps -ef    查看所有正在运行的进程

    10.3 结束进程:kill

    命令:kill pid 或者 kill -9 pid(强制杀死进程)           pid:进程号

    10.4 网络通信命令:

    ifconfig:查看网卡信息

    命令:ifconfig 或 ifconfig | more

    ping:查看与某台机器的连接情况

    命令:ping ip

    netstat -an:查看当前系统端口

    命令:netstat -an

    搜索指定端口
    命令:netstat -an | grep 8080

    10.5 配置网络

    命令:setup

    10.6 重启网络

    命令:service network restart

    10.7 切换用户

    命令:su - 用户名

    10.8 关闭防火墙

    命令:chkconfig iptables off

    或者:

     iptables -L;
     iptables -F;
     service iptables stop

    10.9 修改文件权限

    命令:chmod 777

    10.10 清屏

    命令:ctrl + l

    10.11 vi模式下快捷键

    esc后:

    保存并退出快捷键:shift+z+z

    光标跳到最后一行快捷键:shift+g

    删除一行:dd

    复制一行内容:y+y

    粘贴复制的内容:p

    十一、Linux项目部署

    11.1 安装jdk1.8

    先卸载open-jdk

    java -version
    rpm -qa | grep java

    rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
    rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64

    开始安装:
    mkdir /usr/local/src/java
    rz 上传jdk tar包
    tar -zxvf jdk-8u181-linux-x64.tar.gz

    yum install glibc.i686

    配置环境变量:
     vi /etc/profile

     在末尾行添加
      #set java environment
      JAVA_HOME=/usr/local/src/jdk8/jdk1.8.0_181
      CLASSPATH=.:$JAVA_HOME/lib.tools.jar
      PATH=$JAVA_HOME/bin:$PATH
      export JAVA_HOME CLASSPATH PATH
      
    保存退出
    source /etc/profile  使更改的配置立即生效
    java -version  查看JDK版本信息,如果显示出1.8证明成功

    11.2 安装MySQL5.6

    11.2.1 上传MySQL5.6的tar包

    创建目录:mkdir /usr/local/src/mysql5.6

    上传:MySQL-5.6.34-1.rhel5.x86_64.rpm-bundle.tar 到上面的目录中

    11.2.2 安装

    第一步:解压

         命令:tar -xvf MySQL-5.6.34-1.rhel5.x86_64.rpm-bundle.tar

    第二步:检测是否已经安装了mysql

         命令:rpm -qa | grep mysql   

         如果已经安装了,将其卸载,如:

         rpm -e --nodeps  mysql-libs-5.1.71-1.el6.x86_64

    第三步:安装MySQL的服务端

         命令:rpm -ivh MySQL-server-5.6.34-1.rhel5.x86_64.rpm

    第四步:安装MySQL的客户端

         命令:rpm -ivh MySQL-client-5.6.34-1.rhel5.x86_64.rpm

    第五步:查看MySQL服务运行状态

         命令:service mysql status

    第六步:启动MySQL服务

         命令:service mysql start

    第七步:使用root账号登录mysql

    在安装mysql server时有句提示:

    注意:这个密码是不安全的,所有需要修改初始密码。

    1. 使用密码登录mysql账号:mysql -uroot -p
    2. 修改root密码:SET PASSWORD = PASSWORD('root');

    11.2.3 开机自动启动设置

    加入到系统服务:

    chkconfig --add mysql

    自动启动:

    chkconfig mysql on

    查询列表:

    chkconfig

    说明:都没关闭(off)时是没有自动启动。

    11.2.4 开启远程访问

    登录:

    mysql -uroot –proot

    设置远程访问(使用root密码):

    grant all privileges on *.* to 'root' @'%' identified by 'root';

    flush privileges;

    退出mysql,在centos环境下打开3306防火墙

    /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

    /etc/rc.d/init.d/iptables save

    /etc/init.d/iptables status

    11.3 安装tomcat部署项目

    准备工作:将web项目打成war包,改名为ROOT.war

    11.3.1 创建ucenter用户

    一般情况下,发布应用程序都不是使用root用户的,需要创建一个普通用户来发布程序;

    创建ucenter用户:

    useradd -d /ucenter ucenter

    设置密码:

    passwd ucenter (密码 ucenter)

    切换用户:

    su - ucenter

    11.3.2 安装Tomcat

    tomcat只要解压就可以使用。

    1、创建web目录
    mkdir /ucenter/web

    2、上传apache-tomcat-7.0.57.tar.gz

    3、解压:tar -xvf apache-tomcat-7.0.57.tar.gz

    4、重命名:mv apache-tomcat-7.0.57 itcast-usermanage

    5、启动tomcat:
         cd itcast-usermanage/bin/
         ./startup.sh 或者 sh startup.sh

    6、查看日志:
         tail -f ../logs/catalina.out

    7、查看效果 http://192.168.0.160:8080/

    发现无法访问:

    8、防火墙打开 8080 端口
         /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

         /etc/rc.d/init.d/iptables save

    9、安装成功

    11.3.3 部署用户管理项目

    1、上传usermanage.sql和ROOT.war到/ucenter/web

    2、执行数据库脚本

         cat user_manager.sql | mysql -uroot -p123456

    3、部署web程序

    3.1 删除webapps下的所有文件

         cd /ucenter/web/usermanage/webapps

         rm -rf *

    3.2 拷贝ROOT.war到webapps

         cp /ucenter/web/ROOT.war .

    3.3 重新启动tomcat

         cd ../bin/

         sh startup.sh && tail -f ../logs/catalina.out

    3.4 启动浏览器测试

    注意事项:Centos环境下部署项目中文乱码问题解决方案

        今天在一台新的CentOS机器上使用c3p0连接池操作mysql数据库出现中文乱码问题,具体表现为:查询时无中文乱码问题,写数据时中文乱码,查看了机器上数据库字符集也是UTF8,应该不会出现中文乱码才对,最后在c3p0配置文件中 jdbcUrl后加上:?useUnicode=true&amp;characterEncoding=UTF8 中文就不会乱码了。

    【C3P0配置文件】

    <?xml version="1.0" encoding="UTF-8"?>
    <c3p0-config>
      <default-config>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
    	<property name="jdbcUrl">jdbc:mysql://localhost:3306/user_manager_yun6?useUnicode=true&amp;characterEncoding=UTF8 </property>
    	<property name="user">root</property>
    	<property name="password">root</property>
    	<property name="acquireIncrement">2</property>
    	<property name="initialPoolSize">5</property>
    	<property name="minPoolSize">1</property>
    	<property name="maxPoolSize">5</property>
      </default-config>
    </c3p0-config>

    11.4 Linux下使用FastDFS

    相关的安装包我打包到云盘上了,链接:https://pan.baidu.com/s/13NDYYil4mgLhkb5CYsc2Ww  提取码:66tn

    单节点FastDFS

    整个安装过程非常复杂,很容易出错,建议进行多次备份。

    我们这里不打算安装多台虚拟机,因此会把tracker和storage都安装在一起。

    11.4.1 安装gcc

    GCC用来对C语言代码进行编译运行,使用yum命令安装:

    yum -y install gcc

    后面会用到解压命令(unzip),所以这里可以用yum把unzip 也装一下

    yum install -y unzip zip

    11.4.2 安装libevent

    yum -y install libevent

    11.4.3 安装libfastcommon-master

    解压刚刚上传的libfastcommon-master.zip
    unzip libfastcommon-master.zip

    进入解压完成的目录
    cd libfastcommon-master

    编译并且安装:
    ./make.sh 
    ./make.sh install

    11.4.4 安装fastdfs

    tar -zxvf FastDFS_v5.08.tar.gz
    cd FastDFS
    ./make.sh
    ./make.sh install

    如果安装成功,会看到/etc/init.d/下看到提供的脚本文件:

    ll /etc/init.d/ | grep fdfs

    • fdfs_trackerd 是tracker启动脚本

    • fdfs_storaged 是storage启动脚本

    能够在 /etc/fdfs/ 目录下看到默认的配置文件模板:

    ll /etc/fdfs/

    • tarcker.conf.sample 是tracker的配置文件模板

    • storage.conf.sample 是storage的配置文件模板

    • client.conf.sample 是客户端的配置文件模板

    11.4.5 配置并启动tracker服务

    1)首先将模板文件复制

    cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf

    2)修改复制后的配置文件:

    vim /etc/fdfs/tracker.conf 

    # 修改的内容如下:

    base_path=/项目名/tracker                 # 存储日志和数据的根目录

    3)新建目录:

    mkdir -p /项目名/tracker

    注意:关闭防火墙:

    chkconfig iptables off

    4)启动和停止

    service fdfs_trackerd start # 启动fdfs_trackerd服务,停止用stop

    检查FastDFS Tracker Server是否启动成功:

    ps -ef | grep fdfs_trackerd

    设置tracker服务开机启动:

    chkconfig fdfs_trackerd on

    11.4.6 配置并启动storage服务

    1)首先将模板文件复制

    cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf

    2)修改复制后的配置文件:

    vim /etc/fdfs/storage.conf

    # 修改的内容如下:

    base_path=/项目名/storage                 # 数据和日志文件存储根目录 
    
    store_path0=/项目名/storage           # 第一个存储目录 
    
    tracker_server=192.168.56.101:22122       #  tracker服务器IP和端口 

    3)新建目录:

    mkdir -p /项目名/storage

    注意关闭防火墙: chkconfig iptables off

    4)启动和停止

    service fdfs_storaged start  # 启动fdfs_storaged服务,停止用stop

    设置storage服务开机启动:

    chkconfig fdfs_storaged on

    ps -ef | grep fdfs

    11.5 安装fastdfs-nginx-module

    11.5.1 解压

    tar -zxvf fastdfs-nginx-module_v1.16.tar.gz

    11.5.2 修改config

    1)进入src目录

    cd fastdfs-nginx-module/src/

    2)编辑config

    vim config

    使用以下底行命令:

    :%s+/usr/local/+/usr/+g

    将所有的/usr/local替换为 /usr,这个才是正确的目录:

    11.5.3 配置nginx与FastDFS关联配置文件

    复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录, 并修改

    cp /usr/local/项目名/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
    
    vi /etc/fdfs/mod_fastdfs.conf

    修改以下配置:

    connect_timeout=10                       # 客户端访问文件连接超时时长(单位:秒)
    
    tracker_server=192.168.56.101:22122    # tracker服务IP和端口
    
    url_have_group_name=true                # 访问链接前缀加上组名
    
    store_path0=/leyou/storage            # 文件存储路径

    复制 FastDFS 的部分配置文件到/etc/fdfs 目录

    cd /usr/local/项目名/FastDFS/conf/
    cp http.conf mime.types /etc/fdfs/

    11.6 安装Nginx的插件

    11.6.1 如果没有安装过nginx

    1、安装nginx的依赖库

    yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

    2、解压安装包

    tar -zxvf nginx-1.10.0.tar.gz

    3、配置nginx安装包,并指定fastdfs-nginx-model

    cd nginx-1.10.0
    
    ./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/usr/local/leyou/fastdfs-nginx-module/src

    注意:在执行./configure配置nginx参数的时候,需要将fastdfs-nginx-moudle源码作为模块编译进去。

    4、编译并安装

    make && make install

    11.6.2 如果已经安装过nginx

    1、 进入nginx目录:

    cd /usr/local/项目名/nginx-1.10.0/

    2、 配置FastDFS 模块

    ./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/usr/local/项目名/fastdfs-nginx-module/src

    注意:这次配置时,要添加fastdfs-nginx-moudle模块

    3、编译,注意,这次不要安装(install)

    make

    4、替换nginx二进制文件:

    备份:

    mv /usr/bin/nginx /usr/bin/nginx-bak

    用新编译的nginx启动文件替代原来的:

    cp objs/nginx /usr/bin/

    11.6.3 启动nginx

    配置nginx整合fastdfs-module模块

    我们需要修改nginx配置文件,在/opt/nginx/config/nginx.conf文件中:

    vim  /opt/nginx/conf/nginx.conf

    将文件中,原来的server 80{ ...} 部分代码替换为如下代码:

    server {
        listen       80;
        server_name  image.项目名.com;
    	# 监听域名中带有group的,交给FastDFS模块处理
        location ~/group([0-9])/ {
            ngx_fastdfs_module;
        }
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    启动nginx:

    nginx	# 启动nginx
    
    nginx -s stop	# 停止nginx
    
    nginx -s reload	# 重新载入配置文件

    # 可通过ps -ef | grep nginx查看nginx是否已启动成功

    11.6.4 设置nginx开机启动

    创建一个开机启动的脚本:

    vim /etc/init.d/nginx

    添加以下内容:

    #!/bin/sh
    #
    # nginx - this script starts and stops the nginx daemon
    #
    # chkconfig:   - 85 15
    # description:  NGINX is an HTTP(S) server, HTTP(S) reverse \
    #               proxy and IMAP/POP3 proxy server
    # processname: nginx
    # config:      /etc/nginx/nginx.conf
    # config:      /etc/sysconfig/nginx
    # pidfile:     /var/run/nginx.pid
    
    # Source function library.
    . /etc/rc.d/init.d/functions
    
    # Source networking configuration.
    . /etc/sysconfig/network
    
    # Check that networking is up.
    [ "$NETWORKING" = "no" ] && exit 0
    
    nginx="/usr/bin/nginx"
    prog=$(basename $nginx)
    
    NGINX_CONF_FILE="/opt/nginx/conf/nginx.conf"
    
    [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
    
    lockfile=/var/lock/subsys/nginx
    
    make_dirs() {
       # make required directories
       user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
       if [ -n "$user" ]; then
          if [ -z "`grep $user /etc/passwd`" ]; then
             useradd -M -s /bin/nologin $user
          fi
          options=`$nginx -V 2>&1 | grep 'configure arguments:'`
          for opt in $options; do
              if [ `echo $opt | grep '.*-temp-path'` ]; then
                  value=`echo $opt | cut -d "=" -f 2`
                  if [ ! -d "$value" ]; then
                      # echo "creating" $value
                      mkdir -p $value && chown -R $user $value
                  fi
              fi
           done
        fi
    }
    
    start() {
        [ -x $nginx ] || exit 5
        [ -f $NGINX_CONF_FILE ] || exit 6
        make_dirs
        echo -n $"Starting $prog: "
        daemon $nginx -c $NGINX_CONF_FILE
        retval=$?
        echo
        [ $retval -eq 0 ] && touch $lockfile
        return $retval
    }
    
    stop() {
        echo -n $"Stopping $prog: "
        killproc $prog -QUIT
        retval=$?
        echo
        [ $retval -eq 0 ] && rm -f $lockfile
        return $retval
    }
    
    restart() {
        configtest || return $?
        stop
        sleep 1
        start
    }
    
    reload() {
        configtest || return $?
        echo -n $"Reloading $prog: "
        killproc $nginx -HUP
        RETVAL=$?
        echo
    }
    
    force_reload() {
        restart
    }
    
    configtest() {
      $nginx -t -c $NGINX_CONF_FILE
    }
    
    rh_status() {
        status $prog
    }
    
    rh_status_q() {
        rh_status >/dev/null 2>&1
    }
    
    case "$1" in
        start)
            rh_status_q && exit 0
            $1
            ;;
        stop)
            rh_status_q || exit 0
            $1
            ;;
        restart|configtest)
            $1
            ;;
        reload)
            rh_status_q || exit 7
            $1
            ;;
        force-reload)
            force_reload
            ;;
        status)
            rh_status
            ;;
        condrestart|try-restart)
            rh_status_q || exit 0
                ;;
        *)
            echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
            exit 2
    esac

    修改文件权限,并加入服务列表

    # 修改权限
    chmod 777 /etc/init.d/nginx 
    # 添加到服务列表
    chkconfig --add /etc/init.d/nginx 

    设置开机启动

    chkconfig nginx on

    11.7 安装Elasticsearch

    需要虚拟机JDK1.8及以上

    11.7.1 新建一个用户leyou

    出于安全考虑,elasticsearch默认不允许以root账号运行。

    创建用户:

    useradd leyou

    设置密码:

    passwd leyou

    切换用户:

    su - leyou

    11.7.2 上传安装包,并解压

    我们将安装包上传到:/home/leyou目录

    解压缩:

    tar -zxvf elasticsearch-6.2.4.tar.gz

    我们把目录重命名:

    mv elasticsearch-6.3.0/ elasticsearch

    进入,查看目录结构:

    11.7.3 修改配置

    我们进入config目录:cd config

    需要修改的配置文件有两个:

    1、jvm.options

    Elasticsearch基于Lucene的,而Lucene底层是java实现,因此我们需要配置jvm参数。

    编辑jvm.options:

    vim jvm.options

    默认配置如下:

    -Xms1g
    -Xmx1g

    内存占用太多了,我们调小一些:

    -Xms512m
    -Xmx512m

    2、elasticsearch.yml

    vim elasticsearch.yml

    修改数据和日志目录:

    path.data: /home/leyou/elasticsearch/data # 数据目录位置
    path.logs: /home/leyou/elasticsearch/logs # 日志目录位置

    我们把data和logs目录修改指向了elasticsearch的安装目录。但是这两个目录并不存在,因此我们需要创建出来。

    进入elasticsearch的根目录,然后创建:

    mkdir data
    mkdir logs

    修改绑定的ip:

    network.host: 0.0.0.0 # 绑定到0.0.0.0,允许任何ip来访问

    默认只允许本机访问,修改为0.0.0.0后则可以远程访问

    11.7.4 运行

    进入elasticsearch/bin目录,可以看到下面的执行文件:

    然后输入命令:

    ./elasticsearch

    或者后台运行:

    ./elasticsearch -d

    11.7.5 错误1:内核过低

    修改elasticsearch.yml文件,在最下面添加如下配置: 然后重启

    bootstrap.system_call_filter: false

    11.7.6 错误2:文件权限不足

    我们用的是leyou用户,而不是root,所以文件权限不足。

    首先用root用户登录。直接输入exit命令

    然后修改配置文件:

    vim /etc/security/limits.conf

    添加下面的内容:

    * soft nofile 65536
    
    * hard nofile 131072
    
    * soft nproc 4096
    
    * hard nproc 4096

    11.7.7 错误3:线程数不够

    [1]: max number of threads [1024] for user [leyou] is too low, increase to at least [4096]

    继续修改配置:

    vim /etc/security/limits.d/90-nproc.conf 

    修改下面的内容:

    * soft nproc 1024

    改为

    * soft nproc 4096

    11.7.8 错误4:进程虚拟内存

    [3]: max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

    vm.max_map_count:限制一个进程可以拥有的VMA(虚拟内存区域)的数量,继续修改配置文件, :

    vim /etc/sysctl.conf 

    添加下面内容:

    vm.max_map_count=655360

    然后执行命令:

    sysctl -p

    11.7.9 重启终端窗口

    所有错误修改完毕,一定要重启你的 Xshell终端,否则配置无效。

    11.8 安装RabbitMQ

    cd /usr/local/myapp
    
    mkdir rabbitmq
    
    cd rabbitmq
    

    11.8.1 安装Erlang

    1、在线安装

    yum install esl-erlang_17.3-1~centos~6_amd64.rpm
    
    yum install esl-erlang-compat-R14B-1.el6.noarch.rpm

    2、离线安装

    依次执行命令:

    1)rpm -ivh esl-erlang-17.3-1.x86_64.rpm --force --nodeps

    2)rpm -ivh esl-erlang_17.3-1~centos~6_amd64.rpm --force --nodeps

    3)rpm -ivh esl-erlang-compat-R14B-1.el6.noarch.rpm --force --nodeps

    11.8.2 安装RabbitMQ

    安装:

    rpm -ivh rabbitmq-server-3.4.1-1.noarch.rpm

    11.8.3 设置配置文件

    cp /usr/share/doc/rabbitmq-server-3.4.1/rabbitmq.config.example
    /etc/rabbitmq/rabbitmq.config

    开启用户远程访问

    vi /etc/rabbitmq/rabbitmq.config

    注意要去掉后面的逗号。

    11.8.4 启动、停止

    service rabbitmq-server start
    
    service rabbitmq-server stop
    
    service rabbitmq-server restart

    11.8.5 开启web界面管理工具

    rabbitmq-plugins enable rabbitmq_management
    
    service rabbitmq-server restart

    11.8.6 设置开机启动

    chkconfig rabbitmq-server on

    11.8.7 防火墙开放15672端口

    /sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT
    
    /etc/rc.d/init.d/iptables save

    11.9 redis安装和配置

    11.9.1 安装

    解压

    tar -xvf redis-4.0.9.tar.gz

    编译安装

     mv redis-4.0.9 redis
     cd redis
     make && make install

    11.9.2 配置

    修改安装目录下的redis.conf文件

    vim redis.conf

    修改以下配置:

    #bind 127.0.0.1 # 将这行代码注释,监听所有的ip地址,外网可以访问
    protected-mode no # 把yes改成no,允许外网访问
    daemonize yes # 把no改成yes,后台运行

    11.9.3 启动或停止

    redis提供了服务端命令和客户端命令:

    • redis-server 服务端命令,可以包含以下参数: start 启动 stop 停止

    • redis-cli 客户端控制台,包含参数: -h xxx 指定服务端地址,缺省值是127.0.0.1 -p xxx 指定服务端端口,缺省值是6379

    11.9.4 设置开机启动

    1) 输入命令,新建文件

    vim /etc/init.d/redis

    输入下面内容:

    #!/bin/sh
    # chkconfig:   2345 90 10
    # description:  Redis is a persistent key-value database
    PATH=/usr/local/bin:/sbin:/usr/bin:/bin
    
    REDISPORT=6379
    EXEC=/usr/local/bin/redis-server
    REDIS_CLI=/usr/local/bin/redis-cli
    
    PIDFILE=/var/run/redis.pid
    
    CONF="/usr/local/leyou/redis/redis.conf"
    
    case "$1" in  
        start)  
            if [ -f $PIDFILE ]  
            then  
                    echo "$PIDFILE exists, process is already running or crashed"  
            else  
                    echo "Starting Redis server..."  
                    $EXEC $CONF  
            fi  
            if [ "$?"="0" ]   
            then  
                  echo "Redis is running..."  
            fi  
            ;;  
        stop)  
            if [ ! -f $PIDFILE ]  
            then  
                    echo "$PIDFILE does not exist, process is not running"  
            else  
                    PID=$(cat $PIDFILE)  
                    echo "Stopping ..."  
                    $REDIS_CLI -p $REDISPORT SHUTDOWN  
                    while [ -x ${PIDFILE} ]  
                   do  
                        echo "Waiting for Redis to shutdown ..."  
                        sleep 1  
                    done  
                    echo "Redis stopped"  
            fi  
            ;;  
       restart|force-reload)  
            ${0} stop  
            ${0} start  
            ;;  
      *)  
        echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2  
            exit 1  
    esac

    然后保存退出

    注意:以下信息需要根据安装目录进行调整:

    EXEC=/usr/local/bin/redis-server # 执行脚本的地址

    REDIS_CLI=/usr/local/bin/redis-cli # 客户端执行脚本的地址

    PIDFILE=/var/run/redis.pid # 进程id文件地址

    CONF="/usr/local/src/redis-3.0.2/redis.conf" #配置文件地址

    2)设置权限

    chmod 755 /etc/init.d/redis

    3)启动测试

    /etc/init.d/redis start

    启动成功会提示如下信息:

    Starting Redis server...
    Redis is running...

    4)设置开机自启动

    chkconfig --add /etc/init.d/redis
    chkconfig redis on

     

    展开全文
  • Linux 常用命令英文全称与中文解释 man: Manual 意思是手册可以用这个命令查询其他命令的用法 pwd Print working directory 意思是密码 su Swith user 切换用户切换到 root 用户 cd Change directory 切换目录 ls...
  • Linux ps命令

    万次阅读 2019-06-13 09:21:55
    一、ps命令 ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、...

    一、ps命令

    ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。

    1.1 语法

    ps(选项)
    

    1.2 选项

    选项描述
    -a显示所有终端机下执行的程序,除了阶段作业领导者之外。
    a显示现行终端机下的所有程序,包括其他用户的程序。
    -A显示所有程序。
    -c显示CLS和PRI栏位。
    c列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示。
    -C<指令名称>指定执行指令的名称,并列出该指令的程序的状况。
    -d显示所有程序,但不包括阶段作业领导者的程序。
    -e此选项的效果和指定"A"选项相同。
    e列出程序时,显示每个程序所使用的环境变量。
    -f显示UID,PPIP,C与STIME栏位。
    f用ASCII字符显示树状结构,表达程序间的相互关系。
    -g<群组名称>此选项的效果和指定"-G"选项相同,当亦能使用阶段作业领导者的名称来指定。
    g显示现行终端机下的所有程序,包括群组领导者的程序。
    -G<群组识别码>列出属于该群组的程序的状况,也可使用群组名称来指定。
    h不显示标题列。
    -H显示树状结构,表示程序间的相互关系。
    -j或j采用工作控制的格式显示程序状况。
    -l或l采用详细的格式来显示程序状况。
    L列出栏位的相关信息。
    -m或m显示所有的执行绪。
    n以数字来表示USER和WCHAN栏位。
    -N显示所有的程序,除了执行ps指令终端机下的程序之外。
    -p<程序识别码>指定程序识别码,并列出该程序的状况。
    p<程序识别码>此选项的效果和指定"-p"选项相同,只在列表格式方面稍有差异。
    r只列出现行终端机正在执行中的程序。
    -s<阶段作业>指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。
    s采用程序信号的格式显示程序状况。
    S列出程序时,包括已中断的子程序资料。
    -t<终端机编号>指定终端机编号,并列出属于该终端机的程序的状况。
    t<终端机编号>此选项的效果和指定"-t"选项相同,只在列表格式方面稍有差异。
    -T显示现行终端机下的所有程序。
    -u<用户识别码>此选项的效果和指定"-U"选项相同。
    u以用户为主的格式来显示程序状况。
    -U<用户识别码>列出属于该用户的程序的状况,也可使用用户名称来指定。
    U<用户名称>列出属于该用户的程序的状况。
    v采用虚拟内存的格式显示程序状况。
    -V或V显示版本信息。
    -w或w采用宽阔的格式来显示程序状况。
    x显示所有程序,不以终端机来区分。
    X采用旧式的Linux i386登陆格式显示程序状况。
    -y配合选项"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 。
    -<程序识别码>此选项的效果和指定"p"选项相同。
    –cols<每列字符数>设置每列的最大字符数。
    –columns<每列字符数>此选项的效果和指定"–cols"选项相同。
    –cumulative此选项的效果和指定"S"选项相同。
    –deselect此选项的效果和指定"-N"选项相同。
    –forest此选项的效果和指定"f"选项相同。
    –headers重复显示标题列。
    –help在线帮助。
    –info显示排错信息。
    –lines<显示列数>设置显示画面的列数。
    –no-headers此选项的效果和指定"h"选项相同,只在列表格式方面稍有差异。
    –group<群组名称>此选项的效果和指定"-G"选项相同。
    –Group<群组识别码>此选项的效果和指定"-G"选项相同。
    –pid<程序识别码>此选项的效果和指定"-p"选项相同。
    –rows<显示列数>此选项的效果和指定"–lines"选项相同。
    –sid<阶段作业>此选项的效果和指定"-s"选项相同。
    –tty<终端机编号>此选项的效果和指定"-t"选项相同。
    –user<用户名称>此选项的效果和指定"-U"选项相同。
    –User<用户识别码>此选项的效果和指定"-U"选项相同。
    –version此选项的效果和指定"-V"选项相同。
    –widty<每列字符数>此选项的效果和指定"-cols"选项相同。

    二、使用场景

    ps -ef #显示所有当前进程
    ps aux #显示所有当前进程
    ps -ax #显示所有当前进程
    ps -u pungki #根据用户过滤进程
    ps -aux --sort -pcpu | less #根据 CPU 使用来升序排序
    ps -aux --sort -pmem | less #根据用户过滤进程
    ps -aux --sort -pcpu,+pmem | head -n 10 #查询全10个使用cpu和内存最高的应用
    ps -C getty #通过进程名和PID过滤
    ps -f -C getty #带格式显示的,通过进程名和PID过滤
    ps -L 1213 #根据线程来过滤进程
    ps -axjf(或pstree) #树形显示进程
    ps -eo pid,user,args # 显示安全信息
    ps -U root -u root u #格式化输出 root 用户(真实的或有效的UID)创建的进程
     
    
    展开全文
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    入门学习Linux常用必会60个命令实例详解 Linux必学的60个命令 Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不...
  • 这绝对是整理的最全面最详细最认真最适合用来当笔记的Linux终端命令汇总的文章了

    在学习Linux时,会发现Linux的命令非常多而且还有很多参数,让人很是苦恼。就想着有没有一篇文章可以整理出来常用的命令,尽管网上有很多文章,但是总会有点问题(整理的文章非常详细但是没有目录——不能直接跳转到相关的位置)那么今天博主就带来了有目录的超级详细的Linux基础命令的汇总的文章!同时也会分享一些超级实用的快捷键。绝对是干货满满的一篇文章!
    Alt

    Linux终端命令格式

    终端命令格式

    command [-options] [parameter]
    

    说明:

    • command :命令名,相应功能的英文单词或单词的缩写
    • [-options] :选项,可用来对命令进行控制,也可以省略
    • parameter :传给命令的参数,可以是 零个、一个 或者 多个

    查阅命令帮助信息

    -help

    说明:

    • 显示 command 命令的帮助信息

    -man

    说明:

    • 查阅 command 命令的使用手册
      man 是 manual 的缩写,是 Linux 提供的一个 手册,包含了绝大部分的命令、函数的详细使用
    • 说明
      使用 man 时的操作键
      Alt

    常用Linux命令的基本实用

    学习Linux终端命令的原因

    • Linux 刚面世时并没有图形界面,所有的操作全靠命令完成,如磁盘操作、文件存取、目录操作、进程管理、文件权限 设定等
    • 在职场中,大量的 服务器维护工作 都是在 远程 通过 SSH 客户端 来完成的,并没有图形界面,所有的维护工作都需要通过命令来完成
    • 在职场中,作为后端程序员,必须要或多或少的掌握一些 Linux 常用的终端命令
    • Linux 发行版本的命令大概有 200 多个,但是常用的命令只有 10 多个而已

    常用Linux命令的基本使用

    序号命令对应英文作用
    01lslist查看当前文件夹下的内容
    02pwdprint work directory查看当前所在文件夹
    03cd[目录名]changge directory切换文件夹
    04touch[文件名]touch如果文件不存在,新建文件
    05mkdir[目录名]make directory创建目录
    06rm[文件名]remove删除指定文件
    07clearclear清屏

    小技巧:

    • ctrl + shift + = 放大终端窗口的字体显示
    • ctrl + - 缩小终端窗口的字体显示

    自动补全

    在敲出 文件目录命令 的前几个字母之后,按下 tab 键

    • 如果输入的没有歧义,系统会自动补全
    • 如果还存在其他 文件目录命令 ,再按一下 tab 键,系统会提示可能存在的命令
      小技巧
    • 光标键可以在曾经使用过的命令之间来回切换
    • 如果想要退出选择,并且不想执行当前选中的命令,可以按 ctrl + c

    其它命令

    查找文件

    find 命令功能非常强大,通常用来在 特定的目录下 搜索 符合条件的文件

    序号命令作用
    01find [路径] -name “*.py”查找指定路径下扩展名是 .py 的文件,包括子目录
    • 如果省略路径,表示在当前文件夹下查找
    • 之前学习的通配符,在使用 find 命令时同时可用

    演练目标

    • 1.搜索桌面目录下,文件名包含 1 的文件
    find -name "*1*"
    
    • 2.搜索桌面目录下,所有以 .txt 为扩展名的文件
    find -name "*.txt"
    
    • 3.搜索桌面目录下,以数字 1 开头的文件
    find -name "1*"
    

    软链接

    序 号命令作用
    01ln -s 被链接的源文件 链接文件建立文件的软链接,用通俗的方式讲类似于 Windows 下的快捷方式

    注意:

    1. 没有 -s 选项建立的是一个 硬链接文件两个文件占用相同大小的硬盘空间,工作中几乎不会建立文件的硬链接
    2. 源文件要使用绝对路径,不能使用相对路径,这样可以方便移动链接文件后,仍然能够正常使用

    演练目标

    1. 将桌面目录下的 01.py 移动到 demo/b/c 目录下
    2. 在桌面目录下新建 01.py 的 软链接 FirstPython分别使用 相对路径 和 绝对路径 建立 FirstPython 的软链接
    3. 将 FirstPython 移动到 demo 目录下,对比使用 相对路径 和 绝对路径 的区别

    硬链接简介(知道)

    在使用 ln 创建链接时,如果没有 -s 选项,会创建一个 硬链接,而不是软链接

    硬链接演练

    1. ~/Desktop/demo 目录下建立 ~/Desktop/demo/b/c/01.py 的硬链接 01_hard
    2. 使用 ls -l 查看文件的硬链接数(硬链接——有多少种方式可以访问文件或者目录)
    3. 删除 ~/Desktop/demo/b/c/01.py ,并且使用 tree 来确认 demo 目录下的三个链接文件文件软硬链接的示意图

    文件软硬链接示意图

    Alt
    在 Linux 中,文件名 和 文件的数据 是分开存储的

    • 提示:
      在 Linux 中,只有文件的 硬链接数 == 0 才会被删除
      使用 ls -l 可以查看一个文件的硬链接的数量
      在日常工作中,几乎不会建立文件的硬链接,知道即可

    打包压缩

    • 打包压缩 是日常工作中备份文件的一种方式
    • 在不同操作系统中,常用的打包压缩方式是不同的选项 含义
      Windows 常用 rar
      Mac 常用 zip
      Linux 常用 tar.gz

    打包 / 解包

    tar 是 Linux 中最常用的 备份工具,此命令可以 把一系列文件 打包到 一个大文件中,也可以把一个 打包的大文件恢复成一系列文件
    tar 的命令格式如下:

    # 打包文件
    tar -cvf 打包文件.tar 被打包的文件/路径...
    # 解包文件
    tar -xvf 打包文件.tar
    

    tar选项说明:

    选项含义
    c生成档案文件,创建打包文件
    x解开档案文件
    v列出归档解档的详细过程,显示进度
    f指定档案文件名称,f 后面一定是 .tar 文件,所以必须放选项最后

    注意: f 选项必须放在最后,其他选项顺序可以随意

    压缩/解压缩

    1)gzip

    • tar 与 gzip 命令结合可以使用实现文件 打包和压缩
      tar 只负责打包文件,但不压缩
      用 gzip 压缩 tar 打包后的文件,其扩展名一般用 xxx.tar.gz

    在 Linux 中,最常见的压缩文件格式就是 xxx.tar.gz

    • 在 tar 命令中有一个选项 -z 可以调用 gzip ,从而可以方便的实现压缩和解压缩的
    • 功能命令格式如下:
    # 压缩文件
    tar -zcvf 打包文件.tar.gz 被压缩的文件/路径...
    # 解压缩文件
    tar -zxvf 打包文件.tar.gz
    # 解压缩到指定路径
    tar -zxvf 打包文件.tar.gz -C 目标路径
    
    选项含义
    -C解压缩到指定目录,注意:要解压缩的目录必须存在

    2) bzip2(two)

    • tar 与 bzip2 命令结合可以使用实现文件 打包和压缩(用法和 gzip 一样)
      tar 只负责打包文件,但不压缩
      用 bzip2 压缩 tar 打包后的文件,其扩展名一般用 xxx.tar.bz2
    • 在 tar 命令中有一个选项 -j 可以调用 bzip2 ,从而可以方便的实现压缩和解压缩的功能
    • 命令格式如下:
    # 压缩文件
    tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径...
    # 解压缩文件
    tar -jxvf 打包文件.tar.bz2
    

    软件安装

    通过 apt 安装/卸载软件

    • apt 是 Advanced Packaging Tool ,是 Linux 下的一款安装包管理工具
    • 可以在终端中方便的 安装/卸载/更新软件包
    # 1. 安装软件
    $ sudo apt install 软件包
    # 2. 卸载软件
    $ sudo apt remove 软件名
    # 3. 更新已安装的包
    $ sudo apt upgrade
    

    文件和目录常用命令

    查看目录内容

    ls 命令说明

    • ls 是英文单词 list 的简写,其功能为列出目录的内容,是用户最常用的命令之一,类似于 DOS下的 dir 命令

    Linux 下文件和目录的特点

    • Linux 文件 或者 目录 名称最长可以有 256 个字符参数 含义
    • 以 . 开头的文件为隐藏文件,需要用 -a 参数才能显示
    • . 代表当前目录
    • … 代表上一级目录

    ls 常用选项

    参数含义
    -a显示指定目录下所有子目录与文件,包括隐藏文件
    -l以列表方式显示文件的详细信息
    -h配合 -l 以人性化的方式显示文件大小

    ls通配符的使用

    通配符含义
    *代表任意个数个字符
    ?代表任意一个字符,至少 1 个
    []表示可以匹配字符组中的任一一个
    [abc]匹配 a、b、c 中的任意一个
    [a-f]匹配从 a 到 f 范围内的的任意一个字符

    注意:以 . 开头的文件为隐藏文件,需要用 -a 参数才能显示

    切换目录

    cd

    cd 是英文单词 change directory 的简写,其功能为更改当前的工作目录,也是用户最常用的命令之一
    注意:Linux 所有的 目录 和 文件名 都是大小写敏感的

    命令含义
    cd切换到当前用户的主目录(/home/用户目录)
    cd ~切换到当前用户的主目录(/home/用户目录)
    cd .保持在当前目录不变
    cd …切换到上级目录
    cd -可以在最近两次工作目录之间来回切换

    相对路径和绝对路径

    相对路径 在输入路径时,最前面不是 / 或者 ~,表示相对 当前目录 所在的目录位置
    绝对路径 在输入路径时,最前面是 / 或者 ~,表示从 根目录/家目录 开始的具体目录位置

    创建和删除操作

    touch

    • 创建文件或修改文件时间
      如果文件 不存在,可以创建一个空白文件
      如果文件 已经存在,可以修改文件的末次修改日期

    mkdir

    • 创建一个新的目录
    选项含义
    -p可以递归创建目录

    新建目录的名称 不能与当前目录中 已有的目录或文件 同名

    rm

    • 删除文件或目录
      使用 rm 命令要小心,因为文件删除后不能恢复
    选项含义
    -f强制删除,忽略不存在的文件,无需提示
    -r递归地删除目录下的内容,删除文件夹 时必须加此参数

    拷贝和移动文件

    序号命令对应英文作用
    01tree [目录名]tree以树状图列出文件目录结构
    02cp 源文件目标文件copy复制文件或者目录
    03mv 源文件 目标文件move移动文件或者目录/文件或者目录重命名

    tree

    • tree 命令可以以树状图列出文件目录结构
    选项含义
    -d只显示目录

    cp

    • cp 命令的功能是将给出的 文件 或 目录 复制到另一个 文件 或 目录 中,相当DOS 下的 copy命令
    选 项含义
    -i覆盖文件前提示
    -r若给出的源文件是目录文件,则 cp 将递归复制该目录下的所有子目录和文件,目标文件必

    须为一个目录名

    mv

    • mv 命令可以用来 移动 文件 或 目录,也可以给 文件或目录重命名
    选项含义
    -i覆盖文件前提示

    查看文件内容

    序 号命令对应英文作用
    01cat 文件名concatenate查看文件内容、创建文件、文件合并、追加文件内容等功能
    02more 文件名more分屏显示文件内容
    03grep 搜索文本 文件名grep搜索文本文件内容

    cat

    cat 命令可以用来 查看文件内容、创建文件、文件合并、追加文件内容 等功能
    cat 会一次显示所有的内容,适合 查看内容较少 的文本文件

    选项含义
    -b对非空输出行编号
    -n对输出的所有行编号

    Linux 中还有一个 nl 的命令和 cat -b 的效果等价

    more

    • more 命令可以用于分屏显示文件内容,每次只显示一页内容
    • 适合于 查看内容较多的文本文件

    使用 more 的操作键:

    操作键功能
    空格键显示手册页的下一屏
    Enter键 一次滚动手册页的一行
    b回滚一屏
    f前滚一屏
    q退出
    /word搜索 word 字符串

    grep

    Linux 系统中 grep 命令是一种强大的文本搜索工具
    grep 允许对文本文件进行 模式查找,所谓模式查找,又被称为正则表达式。

    选项含义
    -n显示匹配行及行号
    -v显示不包含匹配文本的所有行(相当于求反)
    -i忽略大小写

    常用的两种模式查找

    参数含义
    ^a行首,搜寻以 a 开头的行
    ke$行尾,搜寻以 ke 结束的行

    其他

    echo 文字内容

    echo 会在终端中显示参数指定的文字,通常会和 重定向 联合使用

    重定向 > 和 >>

    Linux 允许将命令执行结果 重定向到一个 文件
    将本应显示在终端上的内容 输出/追加 到指定文件中
    其中
    > 表示输出,会覆盖文件原有的内容
    >> 表示追加,会将内容追加到已有文件的末尾

    管道 |

    • Linux 允许将 一个命令的输出 可以通过管道 做为 另一个命令的输入
    • 可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里 | 的左右分为两端,
      左端塞东西(写),右端取东西(读)

    常用的管道命令有:

    • more :分屏显示内容
    • grep :在命令执行结果的基础上查询指定的文本

    系统信息相关命令

    时间和日期

    序号命令作用
    01date查看系统时间
    02calcalendar 查看日历, -y 选项可以查看一年的日历

    磁盘信息

    序号命令作用
    01df -hdisk free 显示磁盘剩余空间
    02du -h [目录名]disk usage 显示目录下的文件大小

    进程信息

    所谓进程,通俗地说就是 当前正在执行的一个程序

    序号命令作用
    01ps auxprocess status 查看进程的详细状况
    02top动态显示运行中的进程并且排序
    03kill [-9] 进程代号终止指定代号的进程, -9 表示强行终止

    ps 默认只会显示当前用户通过终端启动的应用程序
    ps 选项说明

    选项含义
    a显示终端上的所有进程,包括其他用户的进程
    u显示进程的详细状态
    x显示没有控制终端的进程

    提示:使用 kill 命令时,最好只终止由当前用户开启的进程,而不要终止 root 身份开启的进程,否则可能导致系统崩溃

    • 要退出 top 可以直接输入 q

    用户权限相关命令

    组管理

    提示:创建组 / 删除组 的终端命令都需要通过 sudo 执行

    序号命令作用
    01groupadd 组名添加组
    02groupdel 组名删除组
    03cat /etc/group确认组信息
    04chgrp -R 组名 文件/目录名递归修改文件/目录的所属组

    提示:
    组信息保存在 /etc/group 文件中
    /etc 目录是专门用来保存 系统配置信息 的目录

    用户管理

    提示:创建用户 / 删除用户 / 修改其他用户密码 的终端命令都需要通过 sudo 执行

    创建用户/设置密码/删除用户

    Alt
    提示:

    • 创建用户时,如果忘记添加 -m 选项指定新用户的家目录 —— 最简单的方法就是删除用户,重新创建
    • 创建用户时,默认会创建一个和用户名同名的组名
    • 用户信息保存在 /etc/passwd 文件中

    查看用户信息

    序号命令作用
    01id [用户名]查看用户 UID 和 GID 信息
    02who查看当前所有登录的用户列表
    03whoami查看当前登录用户的账户名

    which(重要)

    提示

    • /etc/passwd 是用于保存用户信息的文件
    • /usr/bin/passwd 是用于修改用户密码的程序
      which 命令可以查看执行命令所在位置,例如:
    which ls
    # 输出
    # /bin/ls
    which useradd
    # 输出
    # /usr/sbin/useradd
    

    bin 和 sbin

    • 在 Linux 中,绝大多数可执行文件都是保存在 /bin 、 /sbin 、 /usr/bin 、 /usr/sbin
    • /bin ( binary )是二进制执行文件目录,主要用于具体应用
    • /sbin ( system binary )是系统管理员专用的二进制代码存放目录,主要用于系统管理
    • /usr/bin ( user commands for applications )后期安装的一些软件
    • /usr/sbin ( super user commands for applications )超级用户的一些管理程序

    提示:
    cd 这个终端命令是内置在系统内核中的,没有独立的文件,因此用 which 无法找到 cd命令的位置

    切换用户

    序 号命令作用说明
    01su - 用户名切换用户,并且切换目录- 可以切换到用户家目录,否则保持位置不变
    02exit退出当前登录账户

    su 不接用户名,可以切换到 root ,但是不推荐使用,因为不安全
    exit 示意图如下:

    修改文件权限

    序号命令作用
    01chown修改拥有者
    02chgrp修改组
    03chmod修改权限

    命令格式如下:

    # 修改文件|目录的拥有者
    chown 用户名 文件名|目录名
    # 递归修改文件|目录的组
    chgrp -R 组名 文件名|目录名
    # 递归修改文件权限
    chmod -R 755 文件名|目录名
    

    远程管理常用命令

    关机/重启

    序号命令对应英文作用
    01shutdown选项 时间 shutdown关机/重新启动

    常用命令示例

    # 重新启动操作系统,其中 now 表示现在
    $ shutdown -r now
    # 立刻关机,其中 now 表示现在
    $ shutdown now
    # 系统在今天的 20:25 会关机
    $ shutdown 20:25
    # 系统再过十分钟后自动关机
    $ shutdown +10
    # 取消之前指定的关机计划
    $ shutdown -c
    

    不指定选项和参数,默认表示 1 分钟之后 关闭电脑
    远程维护服务器时,最好不要关闭系统,而应该重新启动系统

    查看配置网卡信息

    序 号命令对应英文作用
    01ifconfigconfigure a network interface查看/配置计算机当前的网卡配置信息
    02ping ip地址ping检测到目标 ip地址 的连接是否正常

    ifconfig

    ifconfig 可以查看/配置计算机当前的网卡配置信息

    # 查看网卡配置信息
    $ ifconfig
    # 查看网卡对应的 IP 地址
    $ ifconfig | grep inet
    

    提示:一台计算机中有可能会有一个 物理网卡 和 多个虚拟网卡,在 Linux 中物理网卡的名字通常以 ensXX 表示
    127.0.0.1 被称为 本地回环/环回地址,一般用来测试本机网卡是否正常

    ping

    ping 一般用于检测当前计算机到目标计算机之间的网络 是否通畅,数值越大,速度越慢

    # 检测到目标主机是否连接正常
    $ ping IP地址
    # 检测本地网卡工作正常
    $ ping 127.0.0.1
    

    ping 的工作原理与潜水艇的声纳相似, ping 这个命令就是取自 声纳的声音
    网络管理员之间也常将 ping 用作动词 —— ping 一下计算机X,看他是否开着

    远程登录和赋值文件

    Alt

    ssh 基础(重点)

    在 Linux 中 SSH 是 非常常用 的工具,通过 SSH 客户端 我们可以连接到运行了 SSH 服务器 的远程机器上
    Alt
    ssh的简单使用:

    ssh [-p port] user@remote
    
    • user 是在远程机器上的用户名,如果不指定的话默认为当前用户
    • remote 是远程机器的地址,可以是 IP/域名,或者是 后面会提到的别名
    • port 是 SSH Server 监听的端口,如果不指定,就为默认值 22

    提示:

    • 使用 exit 退出当前用户的登录
    • ssh 这个终端命令只能在 Linux 或者 UNIX 系统下使用
    • 如果在 Windows 系统中,可以安装 PuTTY 或者 XShell 客户端软件即可
    • 在工作中,SSH 服务器的端口号很有可能不是 22,如果遇到这种情况就需要使用 -p 选项,指定正确的端口号,否则无法正常连接到服务器

    scp

    scp 就是 secure copy ,是一个在 Linux 下用来进行 远程拷贝文件 的命令
    它的地址格式与 ssh 基本相同,需要注意的是,在指定端口时用的是大写的 -P 而不是小写的

    # 把本地当前目录下的 01.py 文件 复制到 远程 家目录下的 Desktop/01.py
    # 注意:`:` 后面的路径如果不是绝对路径,则以用户的家目录作为参照路径
    scp -P port 01.py user@remote:Desktop/01.py
    # 把远程 家目录下的 Desktop/01.py 文件 复制到 本地当前目录下的 01.py
    scp -P port user@remote:Desktop/01.py 01.py
    # 加上 -r 选项可以传送文件夹
    # 把当前目录下的 demo 文件夹 复制到 远程 家目录下的 Desktop
    scp -r demo user@remote:Desktop
    # 把远程 家目录下的 Desktop 复制到 当前目录下的 demo 文件夹
    scp -r user@remote:Desktop demo
    
    选 项含义
    -r若给出的源文件是目录文件,则 scp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
    -P若远程 SSH 服务器的端口不是 22,需要使用大写字母 -P 选项指定端口

    注意:
    scp 这个终端命令只能在 Linux 或者 UNIX 系统下使用
    如果在 Windows 系统中,可以安装 PuTTY ,使用 pscp 命令行工具或者安装 FileZilla使用 FTP 进行文件传输

    Alt

    展开全文
  • Linux常用命令大全(非常全!!!)

    万次阅读 多人点赞 2019-07-25 16:40:12
    Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解...
  • linux常用命令(详解)

    万次阅读 多人点赞 2018-08-29 09:45:41
    一、日常使用命令/常用快捷键命令 开关机命令  1、shutdown –h now:立刻进行关机  2、shutdown –r now:现在重新启动计算机  3、reboot:现在重新启动计算机  4、su -:切换用户;passwd:修改用户密码 ...
  • 常用命令“ll”失效或命令未找到 原因: “ll”命令不是linux的基本命令, 它是”ls -l”的别名, 部分版本并不直接支持“ll”命令输出。 运行“vi ~/.bashrc” 查看该文件里是否有“alias ll=’ls -l’”这样...
  • linux常用命令学习总结(超详细)

    万次阅读 多人点赞 2019-05-26 18:27:14
    作为一个程序员,我们在进行项目部署和运维时,经常会用到一些linux命令,可是这些...文章对讲到的每个命令都有详细的参数解释,并且给出一些常用例子,因此也非常适合用来学习! 全文命令分为以下6个模块: 1、...
  • Linux常用命令.md

    2019-08-01 20:03:51
    Linux**常用命令 **linux主要特征** :一切皆文件(目录、硬盘等都是文件);硬件都在/dev 目录,如硬盘、U盘为/dev/sd[a-d]; ps:只摘录常用命令
  • linux系列之常用运维命令整理笔录

    万次阅读 多人点赞 2019-10-28 17:33:21
    本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些...
  • Linux常用命令大全

    万次阅读 多人点赞 2018-06-01 16:16:10
    Linux常用命令大全1.Linux管理文件和目录的命令命令 功能 命令 功能 pwd 显示当前目录 ls 查看目录下的内容 cd 改变所在目录 cat 显示文件的内容 grep 在文件中查找某字符 cp 复制文件 touch 创建文件 mv 移动文件 ...
  • Linux常用命令及其功能

    千次阅读 2019-03-26 23:51:38
    Linux常用命令及其功能常用命令关于帮助关于查找压缩与解压关机与重启配置OtherPS: 常用命令 ls:list,所在路径:/bin/ls,显示目录下所有内容,“ll"等同于"ls -l” man + [命令],可以显示命令的详细用法 cd...
  • linux常用命令大全.pptx

    2020-01-14 10:23:28
    此文档格式为ppt格式,支持下载,主要从linux常用的基础命令入手,包含cat、more、ps、touch、rmdir等命令,帮助初学者来学习linux。
  • Linux常用命令全集

    千次阅读 2019-07-01 16:47:27
    Linux常用命令 ...
  • Linux常用命令汇总及示例

    万次阅读 多人点赞 2018-12-05 19:44:34
    一、认识Linux系统及基础命令 1 构成 2 重要的二级目录 3 基础命令 二、文件管理命令Linux中没有后缀之分 1 增:mkdir touch 2 删、清空 3 改:vim 3.1 命令模式:刚刚打开时进入命令模式 3.2 插入...
  • Linux 常用基本命令 ps top kill

    千次阅读 2017-07-27 17:17:51
    这篇博客讲解与进程相关... ps命令可以查看进程的详细状况,常用选项(选项可以不加-)如下:  -a 显示终端上的所有进程,包括其它用户的进程。 -u 显示进程的详细状态 -x 显示没有控制终端的进程 -w 显示加
  • 实训二 使用Linux常用命令

    千次阅读 2021-03-25 18:10:43
    实训二 使用Linux常用命令 这里使用CRT演示,和Linux终端功能完全一样。 1、打开Linux终端,利用root用户登录,如果后面为 # 符号,则为root用户登录。输入命令pwd命令查看当前所在目录。输入ls命令查看当下目录内容...
  • 50个Linux常用命令

    千次阅读 2019-10-28 10:55:08
    39.ps查看进程 aux 简单列出详情 -elf 长格式显示详情 40.动态查看进程top c 按cpu M 按内存 h 帮助 k 杀死进程 q 退出 pgrep 过滤进程 -l 显示进程名 -U 按用户 -t 按终端 41.pstree 查看进程树 42...
  • 仅仅以下常用的三种组合命令的解释,更加齐全的命令请自行ps --help all 查看。 一、ps -ef 输出展示: UID PID PPID C STIME TTY TIME CMD root 1 0 0 2016 ? 00:00:28 /lib/systemd/systemd --system --...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 123,852
精华内容 49,540
关键字:

linux常用命令ps

linux 订阅