精华内容
下载资源
问答
  • 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&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

     

    展开全文
  • 我们时常会在package.json里配置npm命令,例如:"serve": "webpack-dev-server" 每当我们用命令npm run serve的时候,用的美滋滋 但是如果直接使用webpack-dev-server敲在上面的时候,有时候是不是会出现下面的图...

    从案例中寻找到答案

    • 问题:

    我们时常会在package.json里配置npm命令,例如:"serve": "webpack-dev-server"

    每当我们用命令npm run serve的时候,用的美滋滋

    但是如果直接使用webpack-dev-server敲在上面的时候,有时候是不是会出现下面的图呢?

    • 原因:

    命令行直接输入的方式

    这种方式使用必须全局安装,在全局安装了的情况下,命令行输入并敲下回车时,系统会去npm全局根路径下寻找webpack-dev-server.cmd命令(windows系统下)

    npm scripts配置npm脚本运行webpack的方式

    在package.json中定义了启动的npm脚本。此时系统去当前目录而非全局npm目录寻找webpack-dev-server.cmd文件并执行。

    也就是你项目中的\node_modules\.bin目录下

    • 先看再说:

    打开webpack-dev-server.cmd

    @IF EXIST // 判断驱动器、文件或文件夹是否存在(此处判断是否存在本地的node,优先取,没有则直接调全局)

    %~dp0 “d”为Drive的缩写,即为驱动器,磁盘、“p”为Path缩写,即为路径,目录,作用是拿到当前目录完整的路径

    @SETLOCAL 开启本地变量(笔者理解为是类似像前端的闭包,避免全局变量环境污染)

    @SET PATHEXT=%PATHEXT:;.JS;=;% (设置一个PATHEXT变量)

    node "%~dp0\..\webpack-dev-server\bin\webpack-dev-server.js" %*(直接执行全局配置环境的node)

    对上面的不太了解,可以去打印出来看看:

    @IF EXIST "%~dp0\node.exe" (
      "%~dp0\node.exe"  "%~dp0\..\webpack-dev-server\bin\webpack-dev-server.js" %*
      @echo off
      echo [INFO] %~dp0
    ) ELSE (
      @SETLOCAL
      @SET PATHEXT=%PATHEXT:;.JS;=;%
      @echo off
      echo [INFO] "%~dp0\..\webpack-dev-server\bin\webpack-dev-server.js" %*
      node  "%~dp0\..\webpack-dev-server\bin\webpack-dev-server.js" %*
    )

     

    • 总结:

    又可以皮一下了

    展开全文
  • 学习打印机,了解打印命令

    万次阅读 热门讨论 2007-12-14 09:51:00
    直接关系到打印输入质量的优劣。因为增强我们对打印机控制语言的了解,就可以更好地选择和使用打印机。 目前主流的打印机控制语言只要有三种: Epson公司的Esc命令集 HP公司的PCL命令集 Adobe公司的PostSc
    打印指令,又称打印控制命令。计算机通过打印控制语言,以软件命令的方法来控制打印机操作,解释执行打印数据,获得打印结果的。对于打印机所实现的复杂功能而言,打印控制语言是基础。它直接关系到打印输入质量的优劣。因为增强我们对打印机控制语言的了解,就可以更好地选择和使用打印机。

      目前主流的打印机控制语言只要有三种:

      Epson公司的Esc命令集
      HP公司的PCL命令集
      Adobe公司的PostScript(简称PS)命令集

      ESC命令集是针式打印机和票据打印领域的事实上的工业标准;PCL命令集是低挡激光打印机、喷墨机印机领域的工业标准;PS命令集则是高档排版领域占垄断地位的页面描述语言。

      ESC命令集和PCL命令集是命令解释型的语言,与高级编程语言中的BASIC相似,对每一条命令打印机立即给予响应执行。控制方式简单、方便、快速,便不能描述复杂的页面。

      HPGL向量图形命令集(用于PCL5)和PS命令集都是编译型的语言。与高级编程语言中的C相似,对数条命令组成的完整程序进行编译、解释、最后驱动打印。HPGL命令集与PS相比之下又具有一些命令解释型语文的特点,只有PS语文才是一种真正的编译型页面描述语言。但两者都能够以打印页面为单位,描述打印信息,即都可实现复杂图形和图象的打印输出。

      使用ESC、PCL、PostScript的软件比例占全部软件的75%以上。由此可见,这三种打印控制命令语言对于打印应用程序设计,起到了举足轻重的作用。

      对于上述打印机控制语言有了一个初步的认识以后,我们来对各种语言作一个较全面的介绍。
      一、Epson公司的Esc命令集

      日本的EPSoN公司是生产计算机外部设备的者牌公司,在目前的打印机市场,尤其是针式打印机市场占有很大一部分份额。它所推行的ESC打印控制命令(EPSON StandardCode for Printer)已经成为针式打印机控制语言事实上的工业标准,ESC/POS打印命令集是ESC打印控制命令的简化版本,现在大多数票据打印都采用ESC/POS指令集。绝大多数打印机都有EPSON ESC的软件命令仿真功能,而且其它打印控制命令的格式和功能也都与ESC代码集类似。

      由于早期的操作系统DOS与现在windows的结构不同,在打印机内部软件和应用软件之间没有由硬件厂商提供的打印驱动程序,必须由应用软件直接通过硬件接口来控制打印机,所以从ESC指令出现开始,它就是公开的,否则没有应用软件可以使用它,而除了标准的ESC指令外,每种型号的打印机其指令又不太一样,所以在DOS软件中,你可以看到每个应用软件都只是支持为数不多的几种常用打印机。
      
      Esc指令在形式上分为两种格式,一种是文本方式控制码,一种是Escape转义序列码。文本方式控制码由一字节字符码表示,实现的是与打印机硬件操作有关的指令,Escape序列码由转义字符和参数字符或打印数据组成。


      二、HP公司的PCL语言

      PCL语言是HP公司于70年代针对其激光打印机产品推出的一种打印机页面描述语言。PCL语言与ESC指令一样是开放的。

      PCL语言最初也是为点阵打印机设计的,PCL3是第一个得到广泛应用的版本,但它只支持一些简单的打印任务。PCL4虽然还只能应用在个人打印机中,但增加了对图形打印的支持,但由于解释工作比较简单,PCL4比后期的PCL5和PCL6对打印控制器的要求要低很多。

      到PCL4时,功能已大大增强,主要是支持可任意改变的字模(Scalabe Fort)和支持HP的绘图语言即HP GI—/2语言,后者使激光打印设备可作为绘图设备使用。

      PCL5(PRINTER CONTROL LANGUAGE VERSION 5)是HP公司推出的一种打印控制语言,是一种解释性的命令语言,这与BASIC语言类似。打印机对每条接收到的命令,马上解释执行,而不用等待所有命令全部接收。与此相对的是编译型的语言(如C)。ADOBE公司的PostScript打印页描述语言等),强调语句的模块化和完整性,只有全部命令都接收到后进行编译连接,才能完成相应的功能。

      1996年HP公司发布了PCL6,它更加灵活,是一个目标朝向的控制语言,使处理多图形的文件的速度大大加快,实现了更好的WYSIWYG,因此可以更好地处理Web页面。


      三、Adobe公司的PostScript(简称PS)命令集

      PostScript是Adobe公司的产品,和Epson和HP不一样,ADOBE公司不是打印设备制造商,而是一个工具软件开发商,所以PostScript语言从它一诞生就有着与ESC和PLC完全不同的特性,更符合软件的设计思想,它是一种与设备无关的打印机语言,即在定义图像时可以根本不考虑输出设备的特性(如打印机的分辨率、纸张大小等),而且它对文本和图形实行同样的处理过程,这就给处理字体带来了极大的灵活性。

      由于PostScript的设备无关特性,在输出到特定输出设备,譬如对分辨率、纸张大小、进纸盒进行选择时,PostScript通过打印机描述(PostScript Printer Description )文件来实行各种打印机的不同特性。PPD文件主要提供以下与打印机有关的特定信息: 默认/最高分辨率,是否支持半色调监控,用户设定的监控信息,页面大小定义,页面可打印区域,默认字体(通常为Courier),是否支持双面打印等等。

      通过PS驱动程序,各种不同的应用软件将各自的数据转换成PostScript格式。从打印引擎的工作原理可知,打印机只能接受位图格式,当打印机控制器将PostScript转换成位图格式时,由于PostScript十分复杂,一般的打印控制器难以胜任,通常由打印机中专门的光栅图像处理器(Raster Image Processor)来完成这一转换过程。
      由于使用PostScript打印机对打印控制器的要求都比较高,另外PostScript是Adobe公司的注册产品,打印机厂商在其产品中使用PostScript语言要支付Adobe公司一笔费用,就像PC厂商支付给Microsoft公司的操作系统费用一样,因此使用PostScript的打印机的成本要比使用其他语言和控制方式的打印机要高。因此目前也出现了一些PostScript仿真,像HP公司的一些激光打印机中使用的PostScript仿真,可以和Adobe公司的PostScript完全兼容,也无需再支付Adobe公司相应的费用。

      PostScript语言是一种广泛应用于光栅设备的页描述语言。它能在设备无关的前提下,提供极强的正文与图形描述能力,例如可任意平移、旋转、缩放正文字符和以字符及任意封闭区域作为裁剪区的边界。由于PostScript的这些特点,加上性能优越、价格低廉的激光打印机的出现,特别是Apple Laser writer激光打印机在商业上的成功,使得PostScript已经成为高质量专业排版印刷领域”事实上”的工业标准。

      PostScript语言的真正兴起是Adobe公司在1985年发表的PostScriptlevell。其丰富的图形功能,高质量的T叩e1字模以及对页面描述的设备无关性,使PostScr5pt语言被普遍接受并成为事实上的工业标准。各种流行的西文排版和图形软件,如Pagemaker,Veatura,Quake eXpess,CorelDraw等等,都支持PostScript。

      在1990年底,Adobe公司推出的PostScriptlevel2,无论是在描述能力还是在描述效率上都更上一层楼,进一步巩固了PostScript语言作为标准页面描述语言的地位。而且,最近国际标准组织ISo的JTCl/SC24委员会已把PostScript语言推荐为开发图形正文标准的一个主要参考语言。

      postscript语言之所以得到广泛的应用,是与它所具有的极强的处理图形正文的功翰分不开的。作为一种页描述语言(即PDL),Post3cript具有如下特点:

      1)能够精确地描述各种复杂的图形、图象以及正义,可对它们进行平移、旋转、放缩答操作;而且它把正文作为图形来处理。

      2)采用灵活的摸板/涂料式(Stencil/Paint)的图象映象模型。不仅适合于Ntml及向量笔划描述图形,而且适合于采用三次曲线轮廓来实现图形描述。这种模型的裁剪区域不仅可用矩形框,而且可用封闭的任意区域。
      
      3)支持设备独立性。
      
      4)它也是一种程序设计语言,具有后缀式的表达方法。由前言和文稿两部分组成程序结构,有13种简单及复合对象类型,其操作符的语义是动态的。

      PostScr5pt语言是一种页面描述语言,打印的页面数据信息通过打印机内置的PostScript语言解释器完成,当解释器执行描述字16、图形和图象的命令时,它把高级的PostScript语言描述转换为特定输出设备(如打印机)上的低级光栅数据格式。Postscript语言有三分之一的操作符面向图形处理,其余的三分之二可用作一般的计算机程序设计语言。

      一般说来,PCL语言比较适合一些普通的商务办公应用,而PostScript语言更加适合对图形和色彩准确度要求比较高的专业应用。

    EPSON ESC/POS指令

    EPSON ESC/POS 控制命令
    英文模式下的命令
    代码                     功能                                代码               功能
    LF                       换行                                  ESC m           局部切割
    CR                       回车                                ESC o           印章
    ESC SP             设置右边界                     ESC q           释放纸
    ESC !                 设置打印方式                 ESC r           选择打印颜色
    ESC *                设置位映射方式             ESC z           设置或取消两页并行打印
    ESC @                 初始化打印机             ESC BEL         蜂鸣器ON/OFF
    ESC R                 选择国际字符子集        ESC c5          禁止/使能面板开关
    ESC d                打印及N行进纸             ESC c6          禁止/使能ON-LINE开关
    ESC t                 选择字符码表                 ESC p           产生指定脉冲
    ESC l                 选择或取消倒过来的字符    ESC V           发送打印机状态
    ESC c0             选择打印页                        ESC ~           LED ON/OFF
    FF                     打印送出单页                     HT              水平TAB
    RS                     流水TAB                             ESC %         选择或取消用户自定义字符集
    ESC 2             选择行间距为1/6英寸         ESC &         定义用户自定义字符集
    ESC 3             设置行进为最小间距         ESC D         设置TAB位置
    ESC <             返回行首                             ESC i         全切割
    ESC C             设置单页长度                     ESC f         设单页等待时间
    ESC F             选择或取消单页退纸区     ESC e         打印病退回N行
    ESC J             以最小间距进行打印和进纸ESC c4         选择打印纸及检测器(终止打印)
    ESC K             以最小间距进行打印和退纸ESC c3         选择纸结束信号输出
    ESC U             选择或取消单向打印     ESC c1         选择行间距
    中文模式下的命令
    代码 功能 代码 功能
    FS & 选择中文字符模式 FS – n 设置中文字符下划线模式开关
    FS . 取消中文模式 FS ! n 选择中文字体
    展开全文
  • Linux打印命令

    千次阅读 2006-05-19 09:33:00
    在Linux下采用假脱机(spooling)打印方法,当用户需要打印一个文件时,该文件并不直接送到打印机,而是送到spool目录下,然后由一个负责打印的后台进程把这些数据送入打印机。Linux对每台打印机都定义了一个打印...
    在Linux下采用假脱机(spooling)打印方法,当用户需要打印一个文件时,该文件并不直接送到打印机,而是送到spool目录下,然后由一个负责打印的后台进程把这些数据送入打印机。

    Linux对每台打印机都定义了一个打印缓冲区,打印机守护程序经常扫描打印缓冲区以查看有无要打印的新文件。如果存在,就按先进先出的顺序打印缓冲区中的文件。

    Linux系统除了可以在本地打印机上打印外,还可以通过网络打印机远程打印。

    用于打印的命令

    Linux系统提供了一组有关打印的命令。一般情况下,打印命令使用默认打印机;如果用户定义了PRINTER环境变量,打印命令就使用这个变量定义的打印机;另外,用户还可以在命令行上指定要使用的打印机。

    lpr命令

    lpr命令是脱机打印命令,该命令将打印作业放到打印缓冲队列中。为Linux系统指定的每台打印机都有自己的打印缓冲目录,每个目录中的minfree文件指定保存打印文件的磁盘块的数量。

    lpr同lpd守护进程通讯,lpd扫描/etc/printcap文件,查询打印机对应的缓存目录,然后由lpd控制打印,将需要打印的数据送到实际打印机上。如果没有指定文件,lpr就使用标准输入。

    lpr命令的格式为:

    lpr [-P printer] [#num] [其他选项] [name…]

    命令中各选项的含义如下:

    -P 指定打印机。如果不用此选项,则使用缺省打印机或环境变量PRINTER指定的打印机。

    -m 打印完毕后发送email。

    -#num 打印num份。

    lpq命令

    lpq是缓冲队列检查命令,它通过lpd在缓冲区中检查打印文件,报告指定作业的状态或指定用户的所有作业。不带任何参数的lpq命令显示现在队列中的任 何作业。lpq命令的显示结果中一个重要的信息就是作业标识号(作业ID),它标识一个特定的作业。如果用户想取消一个挂起的作业,就必须在命令中指定这 个标识号。

    lpq命令的格式为:

    lpq [-l] [-P printer] [job #] [user…]

    命令中各选项的含义如下:

    -P 指定一个打印机,否则使用缺省打印机或环境变量PRINTER指定的打印机。

    -l 打印组成作业的所有文件的信息。

    对提交的每一个作业,lpq报告用户名、在队列中的级别、组成作业的文件、作业标识以及总的大小等信息。

    lprm命令

    lprm命令用于从缓冲队列中删除打印作业,用户可以使用该命令从缓冲队列中删除属于自己的一个或多个打印作业。

    lprm命令的格式为:

    lprm [-P printer] [-] [job #] [user…]

    命令中各选项的含义如下:

    -P 指定一个打印机,否则使用缺省打印机或环境变量PRINTER指定的打印机。

    - 删除用户所有的打印作业。

    user 删除队列中属于用户user的作业(只有超级用户可以这样做)。

    job # 通过指定作业号#删除某个打印作业,作业号可以通过lpq命令得到,如:

    $ lpq –l

    lst:ken [job #013ucbarpa]

    (standard input) 100 bytes

    $ lprm 13

    打印缓冲区目录

    对打印而言,有一个非常重要的目录,就是打印缓冲区目录,要打印的数据在被打印之前都集中到这里。通常一台打印机对应一个打印缓冲区目录,这样比较容易管 理打印机。例如,系统使用/var/spool/lpd作为主打印缓冲区,每个单独的打印机都在主打印缓冲区下有一个与这台打印机同名的目录。因此,名为 ps_nff的打印机把/var/spool/lpd/ps_nff作为它的打印缓冲区目录。
    展开全文
  • windows常用命令行命令

    万次阅读 多人点赞 2017-08-31 11:16:21
    也可以通过cmd /c 命令和cmd /k 命令的方式来直接运行命令 注:/c表示执行完命令后关闭cmd窗口;/k表示执行完命令后保留cmd窗口 # 控制台命令窗口中一些技巧 复制内容:右键弹出快捷菜单,选择“标记(K)”,然后...
  • C# ZPL命令 实现打印中文

    万次阅读 2018-08-09 21:37:27
    对于直接使用ZPL命令打印中文,首先需要明确几个概念: 1.码表文件: 字符编码文件,打印中文需要制定的码表,常用中文码表为 GB.DAT,GB8BIT.DAT,GB2312.DAT,GB18030.DAT, 其中 GB.DAT,GB8BIT.DAT为较早的机型使用编码...
  • Gittag步骤命令

    千次阅读 2020-02-19 16:33:03
    通常在发布软件的时候一个tag,tag会记录版本的...使用git tag命令跟上tag名字,直接创建一个tag。 git tag v1.0 上面创建一个名为v1.0的tag。使用git tag命令可以看到新增加的tag。 还可以加上-a参数来...
  • bash脚本一条命令直接发送http请求

    千次阅读 2018-11-04 17:47:18
    nc命令的讲解请参照: ...nc是一个网络工具. 常用来连接tcp/udp....现在介绍通过shell脚本,一条命令直接发送http请求. 命令如下,可以对下面的地址等信息自行修改: #!/bin/bash echo -e "GET /hiknini/ite...
  • 使用maven命令直接打包war项目

    千次阅读 2019-06-20 13:05:13
    当你本地系统已经配置好了maven的变量,可以直接使用maven命令直接打包一个项目 首先使用cmd进入对应项目的位置 输入对应命令 mvn package -Dmaven.skip.test=true 后面的 Dmaven.skip.tes(跳试)是否进入测试 ...
  • (转)学习打印机,了解打印命令 .

    万次阅读 2012-02-23 14:54:25
    直接关系到打印输入质量的优劣。因为增强我们对打印机控制语言的了解,就可以更好地选择和使用打印机。  目前主流的打印机控制语言只要有三种:  Epson公司的Esc命令集  HP公司的PCL命令集  Ad
  • 1,创建gradle项目后2,在右侧的gradle选项卡中发现有红色曲线3,在终端执行gradle wrapper 整理执行需要的第三方依赖包。刷新 红线消失4,找到Project Structure5,6,在选择“from modules with dependencies”7,...
  • 方法1:msiexec /a pathtoMSIfile /qb TARGETDIR=pathtotargetfolder 方法2:直接用7.zip解压
  • 如果没有给普通用户配置过 NOPASSWD,那么每次非...如果希望在脚本中执行一个需要输入密码后回车的命令,我们可以使用管道 echo 密码 | sudo 命令 示例,如下 [admin@BizMsTestAlpha test]$ docker ps Got permissi...
  • Linux下patch补丁命令

    万次阅读 2013-09-05 09:28:16
    命令用于为特定软件包补丁,他使用diff命令对源文件进行操作。 基本命令语法: patch [-R] {-p(n)} [--dry-run] p:为path的缩写。 n:指将patch文件中的path第n条’/’及其左边部分取消。 -R:卸载patch包。 -...
  • Total Commander支持直接调用CMD命令窗口,并且设置路径为当前激活窗口,快捷方式为Ctrl+G。 PowerCMD 是一款方便的命令行工具,支持多标签、自动保存、高亮搜索、行号显示、折叠等功能。 下面介绍如何在Total ...
  • kali2020中不能直接使用ifconfig/reboot等命令

    万次阅读 多人点赞 2020-03-05 11:24:10
    发现有诸多不便,包括中文支持,有些命令不能直接使用,还有密码问题,在我前面都有介绍。 kali2020默认账户名和密码 各种Linux操作系统网络重启命令(kali、centos、redhat和其他) 当然,还有本篇文章。 ...
  • linux系列之常用运维命令整理笔录

    万次阅读 多人点赞 2019-10-28 17:33:21
    本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些...
  • disp命令直接在命令行中显示文字或者数组语法:disp(X)描述:disp(X)显示X的内容而不打印变量名称。 disp不显示空变量。实例:实例1 显示变量内容创建一个数字数组A和一个字符串SA = [15 150]; S = 'Hello World...
  • shell中打印命令执行的返回状态

    千次阅读 2012-12-28 13:52:20
    shell脚本文件中有时候需要依据命令执行的结果状态决定整个shell脚本文件的执行路径。 一个简单的需求就是:判断某个文件中是否存在某一行内容,存在则不做任何操作,否则插入该行。 判断文件中是否存在某行,可以...
  • 如何在android studio直接用git 命令

    千次阅读 2016-12-19 11:56:16
    http://git-scm.com/downloads安装,直接下一步下一步就好,记得下载位置就好,配置的时候要用2、在studio中设置git插件:File->Setting->Version Control->Git,添加您刚刚安装的git地址目录,例如: C:\Program Files\...
  • tar 命令详解

    万次阅读 多人点赞 2016-12-03 14:14:30
    tar命令 [root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 .... 参数: -c:建立一个压缩文件的参数指令(create 的意思); -x:解开一个压缩文件的参数指令! -t:查看 tarfile 里面的文件! -r:向压缩归档文件末尾...
  • 如何使用patch命令打补丁

    万次阅读 2018-11-09 10:01:15
    有时候因为条件限制,我们不能使用git仓库进行代码的更新工作。...确保你的服务器上安装了patch命令。如果没有安装,在联网状态下安装一下也就几分钟的事。 在你本地生成patch文件。在你的git仓...
  • newLISP运行scp命令并打印进度

    千次阅读 2016-05-22 18:10:58
    如果在终端直接运行scp命令,会看到类似的输出scp train.html root@your-host:/path/of/your/folder train.html 100% 149KB 149.4KB/s 00:00 如果用newlisp的exec运行这个...
  • Linuxtar包命令

    万次阅读 2015-07-02 20:37:18
    范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件! [root@linux ~]# cd /tmp [root@linux tmp]# tar -cvf – /etc | tar -xvf – # 这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的! ...
  • adb 命令 直接把日志存到text文件中

    千次阅读 2015-06-12 15:13:54
    adb 命令 直接把日志存到text文件中 adb logcat -v time > pay.log 就可以吧日志存到pay.log 中
  • linux命令详解之du命令

    千次阅读 2017-04-18 21:43:33
    du命令直接到文件系统内查找所有文件数据,所以命令执行时会耗费一点儿时间。 在默认情况下,输出结果大小是以KB为单位的。如果想以MB为单位,使用-m参数即可,如果只想知道目录占了多少容量,使用-s参数即可。du...
  • 本地cmd命令打war包、解压war包

    千次阅读 2019-09-05 15:50:53
    cmd进入项目目录下并执行命令:jar -cvf xxx.war * war包会生成在执行的目录下,但是会包含项目源文件和工作空间下的文件 建议在web程序的根目录下执行命令:jar -cvf xxx.war index.jsp WEB-INF/ 注意: 命令...
  • 在Window7中有时候直接打命令运行一个程序比在系统中找要方便快捷的多.下面整理一下WIN7中常用的命令大全.以方便给朋友们看。 Win7运行命令在哪? ALT旁边的WIN徽标键,再按R,即win+R,就是运行命令快捷键 ...
  • Linux文件操作高频使用命令

    万次阅读 多人点赞 2019-08-28 16:47:38
    文章目录0.新建操作:1.查看操作2.删除操作3.复制操作4.移动操作:5.重命名操作:6.... 0.新建操作: ...mkdir abc #新建一个文件夹 ...cat|head|tail命令 cat abc.txt #查看abc的内容 head -5 abc.txt #...
  • 解决CISCO命令等待的问题

    千次阅读 2013-06-18 18:49:42
    每当 CISCO 命令行中错了命令 总会显示 Translating "*******"...domain server (255.255.255.255) 要停上好几秒而且不支持中断,比较烦人。 这是由于,IOS把这条命令当成一个机器名字来解析。所以要停...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 544,991
精华内容 217,996
关键字:

如何直接打命令