2016-09-21 09:27:54 qq_28018283 阅读数 14716
  • 韦东山嵌入式Linux第一期视频

    掌握写汇编代码的能力,可以分析任意裸板包括U-boot、内核里的相关汇编代码; 掌握常用的硬件部件的操作,比如GPIO,UART,I2C,LCD,触摸屏; 深入理解ARM体系统架构,可以写出具备中断功能的裸板程序,对程序现场的保存、恢复有所了解,这些原理适用于任何架构CPU,适用于内核及应用程序; 熟悉裸板程序的结构,给你一个Bootloader就能分析它的初始化部分、内存使用情况、链接地址、重定位、程序的相对跳转/绝对跳转等;掌握Bootloader启动内核的原理,能完全自己写出一个Bootloader。

    234360 人正在学习 去看看 韦东山

用到两个命令 。


1  删除xx行至xx行。


: 1,10d


命令解释:删除第一行到第10行

2  直接跳转到文件结尾行 

按下大写的g  --- G


在文尾输入 


: 1,.d


命令解释: 删除从第一行到本行,即删除第一行到结尾



如果你觉得有用的话,顶一下吧 ! ^o^ 

2018-07-16 15:12:34 kaikai0720 阅读数 318
  • 韦东山嵌入式Linux第一期视频

    掌握写汇编代码的能力,可以分析任意裸板包括U-boot、内核里的相关汇编代码; 掌握常用的硬件部件的操作,比如GPIO,UART,I2C,LCD,触摸屏; 深入理解ARM体系统架构,可以写出具备中断功能的裸板程序,对程序现场的保存、恢复有所了解,这些原理适用于任何架构CPU,适用于内核及应用程序; 熟悉裸板程序的结构,给你一个Bootloader就能分析它的初始化部分、内存使用情况、链接地址、重定位、程序的相对跳转/绝对跳转等;掌握Bootloader启动内核的原理,能完全自己写出一个Bootloader。

    234360 人正在学习 去看看 韦东山

Bash的基础特性(3)

(1)bash的快捷键
    Ctrl+l:相当于clear,清屏操作
    Ctrl+a:将光标跳转至命令首部
    Ctrl+e:将光标跳转至结尾处
    Ctrl+c:取消命令执行
    Ctrl+u:删除光标所在之前的命令
    Ctrl+k:删除光标所在处至命令尾部的所有内容

(2)bash中的I/O重定向及管道
    程序=指令+数据
        读入数据:Input
        输出数据:Output
    Note:每一个打开的文件都有一个文件描述符(fd)
    标准输入:键盘(如果不指定标准输入,则默认为键盘),文件描述符为0
    标准输出:显示器(如果不指定输出位置,则默认输出在显示器)文件描述符为1
    标准错误输出:显示器,文件描述符为2

        I/O重定向:改变输入输出位置
        输出重定向:COMMAND > NEW_POS(通常是文件),COMMAND >> NEW_POS
            >:覆盖重定向,将输出内容覆盖至目标文件
            >>:追加重定向,将输出内容追加至目标文件末尾
            例子:
                ls /etc > /tmp/etc.out #将"ls /etc"的结果输出到"/tmp/etc.out"
                ls /var > /tmp/etc.out #将"ls /var"的结果输出到"/tmp/etc.out"从而覆盖原有的etc.out
                ls /var/log >> /tmp/etc.out #将"ls /var/log"内容追加输出到"/tmp/etc.out"

            #set -C:禁止将内容覆盖输出至已有文件中,这样比较安全,防止将重要文件覆盖(仅对当前shell有效)
                强制覆盖:>|
            #set +C:将不允许覆盖重定向功能关闭

        标准错误输出重定向:
            2>:覆盖,重定向错误输出数据流
            2>>:追加,重定向错误输出数据流

        标准输出和错误输出各自定向至不同位置
            COMMAND > NEW_POS1 2> NEW_POS2 #如果命令成功则将输出保存至NEW_POS1,如果命令失败,则将错误输出保存至
                                            NEW_POS2中

        合并标准输出和错误输出为同一个数据流进行重定向:
            &>:合并后做覆盖重定向
            &>>:合并后追加重定向
        COMMAND > "文件路径" 2>&1     #将标准输出覆盖重定向到"文件路径"中,然后将错误输出覆盖重定向到"文件路径中"
        COMMAND >> "文件路径" 2>>&1  #将标准输出追加输入到"文件路径"中,然后将错误输出追加重定向到"文件路径中"

        输入重定向: < (下列"tr"的例子中有关于输入重定向的语句,可以结合命令理解一下)

        tr命令:转换或删除字符(这个命令后期会比较常用的,我建议你最好常用,然后记住怎么用)
          tr[OPTION]...SET1[SET2](从标准输入读数据,而标准输入就是键盘)
            例子:
              1 [root@bogon ~]# tr abc ABC
                hello #手动输入hello,查看结果
                hello #输入hello后的结果
                alpha #手动输入alpha
                AlphA #结果"a"就会替换为了"A"
                abcdefg #手动输入abcdefg
                ABCdefg #结果中输入的"abcdefg"中的"abc"全都替换为了大写
                只替换对应的字符集,你也可以再去试试

            2 [root@bogon ~]# tr 'a-z' 'A-Z' < /etc/fstab #将/etc/fstab中所有小写字母替换为大写,这就是
                                                              输入重定向,本来只能从标注输入读取,我们改变了
                                                              它的读取方向,改为/etc/fstab文件了

        -d:删除指定的字符
            例子:
                [root@bogon ~]#tr -d abc
                abcdd #手动输入要处理的字符
                dd    #最后只会剩下dd,因为"-d"选项后面指定了要删除的"abc"字符

    HERE Documentation: <<(创建文档)
        例子:
          1 [root@bogon ~]#cat << EOF
            > how are you?         #手动键入字符串
            > how old are you?     #手动键入字符串
            > EOF                  #手动键入字符串,代表结束输入
            how are you?           #输出结果
            how old are you?       #输出结果

          2 [root@bogon ~]# cat >> /tmp/test.out << EOF #将下列键盘输入的字符重定向到test.out中
            > how are you?                              #手动输入要重定向到test.out的字符
            > how old are you?                          #手动输入要重定向到test.out的字符
            > EOF                                       #表示手动输入结束,最终会在test.out中看到输入内容

管道:将前一个命令的结果作为标出输出到下一个命令上,将第二个命令结果输出到第三个命令上执行,以此类推.....
    COMMAND1 | COMMAND2 | COMMAND3 |.... 
Note:最后一个命令会在当前shell进程中的子shell进程中执行;
    例子:
        [root@bogon ~]# echo '$PATH' | tr 'a-z' 'A-Z' | tr -d 'U'
            解释:打印'$PATH'变量,将结果做"tr"处理(将所有小写字母转换为大写),然后再将结果传送到下一个"tr"处理
                "-d"删除所有"U"字母!

    tee命令:从标准输入读数据,输出到屏幕上同时也可以输出到文件中
        tee [OPTION]... [FILE]...
            例子:
                [root@bogon ~]# tee /tmp/tee.out  #结果输出到了屏幕上,同时也输出到了tee.out文件中
                first line.       #手动输入的字符
                first line.       #输入后输出的字符
                www.test.com      #手动输入的字符
                www.test.com      #输入后输出的字符

练习

1、将/etc/passwd文件中的前5行内容转换为大写后保存至/tmp/passwd.out文件中?
        解:head -n5 /etc/passwd | tr '[[:lower:]]' '[[:upper:]]' | tee /tmp/passwd.out
#首先使用"head -n5"筛出"/etc/passwd"的前五行,然后输出至"tr"命令中做大小写替换的处理"[[:lower:]]与[[:upper:]]"
在上一章有讲过,如果看了上一章还不知道什么意思就去好好再看看吧,再将"tr"处理的结果输出至"tee"命令做处理,得到结果

如果不想输出到屏幕上则使用head -n5 /etc/passwd | tr '[[:lower:]]' '[[:upper:]]' > /tmp/passwd.out

2、将登陆至当前系统上用户信息中的前3位的信息转化为大写后保存至/tmp/who.out文件中?
        解:who | head -n3 | tr '[[:lower:]]' '[[:upper:]]' | tee /tmp/who.out
#首先使用"who"命令查看出当前登录至系统的用户信息,标准输出至"head"命令处理取前三行之后,再标准输出至"tr"命令转换
字母大小写,最后标准输出至"tee"命令输出至屏幕同时输出至"/tmp/who.out"的文件中

如果不想输出到屏幕上则使用who | head -n3 | tr '[[:lower:]]' '[[:upper:]]' > /tmp/who.out
文本处理工具:wc,sort,cut,uniq
    wc命令:
        wc [OPTION]...[FILE]...
            例子:
                [root@bogon ~]# wc /etc/passwd
                38   77 1989 /etc/passwd   #38行,77个单词,1989个字节,逐一对应的是"行数","单词数","字节数",单词
                                            是以空白字符分隔来区分的,不是英语中的那种单词
    常用选项:
        -l:只统计行数
        -w:只统计单词数
        -c:只统计字节数

    cut命令:以指定"字符"作为"分隔符"对一行文本进行切割,然后取出第几列,默认以空白字符进行切割
        cut [OPTION]... [FILE]...
常用选项:(如果选项看不太明白,案例中有详细说明还有图片)
    -d:指定分隔符
    -f:指定要取出的列
        #:第几个字段比如"-f1"就是第一个字段也就是第一列
        #,#:第几个字段和第几个字段,比如"-f1,3"就是第一个字段和第三个字段
        #-#:第几个字段到第几个字段,比如"-f1-3"就是第一个字段到第三个字段
    --output-delimiter= :指定输出分隔符
        例子:
            1 [root@bogon ~]# cut -d' ' -f1 /etc/fstab #指定"空白字符"作为分隔符,并取出第一列
                                        -f1,3 #取出第一个和第三个字段
                                        -f1-3 #取出第一个到第三个字段

这里写图片描述

            2 [root@bogon ~]# cut -d: -f1 /etc/passwd  #指定":"为分隔符,并取出第一列
                                      -f1,7  #取出第一列和第七列,输出时的分隔符跟指定的一样
                                      -f1,7 --output-delimiter=' ' #取出第一列和第七列,指定输出分隔符为"空白"

这里写图片描述


    sort命令:
        常用选项:
            -r:逆序方法排序
            -f:忽略字符大小写
            -k:以第几个字段为标准排序
            -t:指明字段分隔符
            -n:以数值大小排序
            -u:排序后去重显示

        例子:
            1 sort /etc/passwd   #默认显示出的结果是以每一行的字母"a-z"排序
            2 sort -t: -k3 /etc/passwd #指定":"为分隔符,以第三列为标准排序,如图,看完图之后肯定很疑惑,为什么有数
                                        值小的在数值大的下面,其实已经排序了,只不过这里面是以"ASCII"表中字符排的
                                        序,也就是说,把第三列的数字都看成了字符来进行排的序,第二张图是"ascii"表
                                        如果想以数值大小排列,再加一个"-n"选项即可

这里写图片描述
这里写图片描述


uniq命令:
    uniq [OPTION]... [FILE]...
    Note:连续且完全相同方位重复
    常用选项:
        -c:显示每行重复出现的次数
        -d:仅显示重复过的行
        -u:仅显示未重复过的行

练习

    以冒号分隔,取出/etc/passwd文件中的第6至第10行,并将这些信息按第三个字段的数值大小进行排序,最后仅显示各自的第一个
字段?
    解:sed -n 6,10p /etc/passwd | sort -n -t: -k3 | cut -d: -f1   
      #sed命令后面还会在讲,此处你只要知道"sed"能打印出第6行到第10行就ok了,然后标准输出到"sort"命令,来对第三个字段
      排序进行,再标准输出到"cut"命令来剪切出第一个字段
2018-04-09 16:59:24 sinat_17358633 阅读数 351
  • 韦东山嵌入式Linux第一期视频

    掌握写汇编代码的能力,可以分析任意裸板包括U-boot、内核里的相关汇编代码; 掌握常用的硬件部件的操作,比如GPIO,UART,I2C,LCD,触摸屏; 深入理解ARM体系统架构,可以写出具备中断功能的裸板程序,对程序现场的保存、恢复有所了解,这些原理适用于任何架构CPU,适用于内核及应用程序; 熟悉裸板程序的结构,给你一个Bootloader就能分析它的初始化部分、内存使用情况、链接地址、重定位、程序的相对跳转/绝对跳转等;掌握Bootloader启动内核的原理,能完全自己写出一个Bootloader。

    234360 人正在学习 去看看 韦东山

linux服务器配置Tomcat服务

下载tomcat服务

tomcat 官网,点击跳转
对于linux作为系统的服务器可以选tar.gz结尾的文件下载

拷贝tomcat服务到服务器

如果是mac系统或者linux给服务器发送文件,可以使用scp命令传输。如果是window系统给linux发送文件,可以下载图形软件操作。或者下载git下载地址。在git提供命令窗口上使用scp命令发送文件。
scp命令示例如下:

scp /usr/zhiwei/apache-tomcatxxx.tar.gz root@47.92.xxx.0:/usr/apache-tomcatxxx.tar.gz
scp 发送方地址 对方服务器用户名@对方服务器地址:对方服务器保存文件路径

修改tomcat配置

解压接受的tomcat文件包

tar zxvf apache-tomcatxxx.tar.gz

进入解压之后的文件路径,进入bin文件夹,使用如下命令运行tomcat,查看tomcat,是否启动正常。

./catalina.sh run

使用此命令的好处是,可以像window上一样看见运行窗口。

http服务

使用vim命令修改conf/server.xml文件即可,不在此文章讨论。

https服务

在conf文件夹中新建ssl文件夹
拷贝ssl证书中jks结尾的文件到文件夹中
使用vim命令修改server.xml文件

<Connector port="443" protocol="HTTP/1.1" scheme="https" 
    secure="true"  maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/ssl/www.myloveqian.cn.jks" 
             certificateKeystorePassword="02yb3p5icd" clientAuth="false" sslProtocol="TLS" type="RSA" />
        </SSLHostConfig>
</Connector>

再次启动服务,以https方式访问,查看是否可以访问

配置tomcat以服务方式启动

  1. 编译文件
    进入tomcat/bin文件夹中,解压文件
tar -zxvf commons-daemon-native.tar.gz

解压后会生成commons-daemon-1.0.15-native-src目录,进入unix目录下

cd commons-daemon-1.0.15-native-src/unix

执行配置并进行编译
注意需要预先安装gcc,如果没有安装,则使用 yum install -y gcc进行安装

./configure
make

将生成的jsvc文件拷贝到Tomcat的bin目录下
在/etc/init.d中创建tomcat文件,并写入如下脚本内容
2. 修改配置
使用配置之前,要修改java_home等配置信息

#!/bin/sh
# tomcat: Start/Stop/Restart tomcat
#
# chkconfig: 2345 85 15
# description: Apache tomcat7

# Small shell script to show how to start/stop Tomcat using jsvc
# If you want to have Tomcat running on port 80 please modify the server.xml
# file:
#
#    <!-- Define a non-SSL HTTP/1.1 Connector on port 80 -->
#    <Connector className="org.apache.catalina.connector.http.HttpConnector"
#               port="80" minProcessors="5" maxProcessors="75"
#               enableLookups="true" redirectPort="8443"
#               acceptCount="10" debug="0" connectionTimeout="60000"/>
#

#根据实际jdk路径进行配置
JAVA_HOME=/usr/java/jdk1.8.0_161/
#根据实际tomcat路径进行配置
CATALINA_HOME=/usr/apache-tomcat-9.0.6 
CATALINA_BASE=$CATALINA_HOME
DAEMON_HOME=$CATALINA_HOME/bin

# for multi instances adapt those lines.
#根据实际tomcat路径进行配置,设置为tomcat路径/temp形式
TMP_DIR=$CATALINA_HOME/temp
#根据实际tomcat路径进行配置,设置为tomcat路径/jsvc/run/jsvc.pid形式
PID_FILE=/usr/apache-tomcat-9.0.6/jsvc/run/jsvc.pid
#. /etc/rc.d/init.d/functions
CATALINA_OPTS="$CATALINA_OPTS -server -Xms2048m -Xmx2048m -XX:PermSize=512m -XX:MaxNewSize=512m -XX:MaxPermSize=1024m"
CLASSPATH=\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar:\
$CATALINA_HOME/bin/tomcat-juli.jar

case "$1" in
  start)
    #
    # Start Tomcat
    #
    $DAEMON_HOME/jsvc \
    -home $JAVA_HOME \
    -Dcatalina.home=$CATALINA_HOME \
    -Dcatalina.base=$CATALINA_BASE \
    -Dfile.encoding=utf-8 \
    -Djava.io.tmpdir=$TMP_DIR \
    -wait 10 \
    -pidfile $PID_FILE \
    -outfile $CATALINA_HOME/logs/catalina.out \
    -errfile '&1' \
    $CATALINA_OPTS \
    -cp $CLASSPATH \
    org.apache.catalina.startup.Bootstrap
    #
    # To get a verbose JVM
    #-verbose \
    # To get a debug of jsvc.
    #-debug \
    exit $?
    ;;

  stop)
    #
    # Stop Tomcat
    #
    $DAEMON_HOME/jsvc \
    -stop \
    -pidfile $PID_FILE \
    org.apache.catalina.startup.Bootstrap
    (ps -e | awk '{ if($4== "jsvc") printf "%s ",$1}' | xargs kill -9)2>/dev/null
    exit $?
    ;;

  restart)
    #
    # Restart Tomcat
    #
    $0 stop
    $0 start
    ;;

  status)
    #
    # Restart Tomcat
    #
    ps ax --width=1000 | grep "[o]rg.apache.catalina.startup.Bootstrap" | awk '{printf $1 " "}' | wc | awk '{print $2}' > /tmp/tomcat_process_count.txt
    read line < /tmp/tomcat_process_count.txt
    if [ $line -gt 0 ]; then
       echo -n "tomcat ( pid "
       ps ax --width=1000 | grep "[o]rg.apache.catalina.startup.Bootstrap" | awk '{printf $1 " "}'
       echo ") is running                             "
    else
       echo "tomcat is stopped"
    fi
    ;;

  *)
    echo "Usage tomcat start/stop/restart/status"
    exit 1;;
esac
  1. 添加到系统配置中,修改权限

修改tomcat文件的属性

chmod 755 tomcat

添加系统服务

chkconfig --add tomcat

查看是否添加tomcat系统服务

chkconfig --list

启动tomcat服务

service tomcat start

查看是否启动成功

service tomcat status

关闭tomcat服务

service tomcat stop
2016-01-20 06:59:35 matthewei6 阅读数 3554
  • 韦东山嵌入式Linux第一期视频

    掌握写汇编代码的能力,可以分析任意裸板包括U-boot、内核里的相关汇编代码; 掌握常用的硬件部件的操作,比如GPIO,UART,I2C,LCD,触摸屏; 深入理解ARM体系统架构,可以写出具备中断功能的裸板程序,对程序现场的保存、恢复有所了解,这些原理适用于任何架构CPU,适用于内核及应用程序; 熟悉裸板程序的结构,给你一个Bootloader就能分析它的初始化部分、内存使用情况、链接地址、重定位、程序的相对跳转/绝对跳转等;掌握Bootloader启动内核的原理,能完全自己写出一个Bootloader。

    234360 人正在学习 去看看 韦东山

编辑文件

vim .bashrc  (使修改在当前用户下有效)

或者

vim /etc/profile (需要在root用户下执行,使修改在所有用户下有效)

在文件结尾添加别名
alias cd1='cd ..'
alias cd2='cd ../..'
alias cd3='cd ../../..'
alias cd4='cd ../../../..'
alias cd5='cd ../../../../..'
alias cd6='cd ../../../../../..'

保存文件退出
为了使修改生效,执行命令
source .bashrc  或 source /etc/profile

下面就可以使用了
例如,想跳转到上4层目录,就执行
cd4

切换终端窗口后如果执行无效,再执行上面的source命令语句就可以了
2018-09-15 13:57:06 weixin_42836860 阅读数 30
  • 韦东山嵌入式Linux第一期视频

    掌握写汇编代码的能力,可以分析任意裸板包括U-boot、内核里的相关汇编代码; 掌握常用的硬件部件的操作,比如GPIO,UART,I2C,LCD,触摸屏; 深入理解ARM体系统架构,可以写出具备中断功能的裸板程序,对程序现场的保存、恢复有所了解,这些原理适用于任何架构CPU,适用于内核及应用程序; 熟悉裸板程序的结构,给你一个Bootloader就能分析它的初始化部分、内存使用情况、链接地址、重定位、程序的相对跳转/绝对跳转等;掌握Bootloader启动内核的原理,能完全自己写出一个Bootloader。

    234360 人正在学习 去看看 韦东山

3.bash的快捷方式
crtl+l: 清屏
crtl+a 跳转至命令开始处
crtl+e 跳转命令结尾处
ctrl+c 取消命令执行
ctrl+u 删除命令行首至光标所在处的所有内容。
ctrl+k:删除光标所在处至命令行尾部的所有内容。
4.bash的I/O重定向及管道
程序:指令+数据
读入数据:input
输出数据:output
标准输入:keyborad,0
标准输出:monitor,1
标准错误输出:moitor,2
输出重定向:COMMNA > NEW_POS,COMMAN >> NEW_POS

覆盖重定向:目标文件中原有内容会被消除。

追加重定向:新内容会追加至目标文件尾部。
#set -C:禁止将内容覆盖输出至已有文件中;
强制覆盖:>
#set +C:取消
2>:覆盖重定向错误输出数据流;
2>>:追加重定向错误输出数据流;

    标准输出和错误输出定向至不同位置
        COMMAD > /path/to/file.out 2> /path/to/error.out

    合并标准输出和错误输出为同一个数据流进行重定向;
        &>:覆盖重定向
        &>>:追加重定向

        COMMAND > /path/to/file.out 2> &1
        COMMAND >> /path/to/file.out 2>> &1
输入重定向
    tr命令:转换或删除字符
        tr [option]...set1 [set2]
        tr abc ABC  同位对应,把a转换成A.
    此处生成文件:<<
    #cat << eof 在屏幕中输出,直到输入eof结束 

管道:
    COMMAND1 | COMMAND2 | COMMAND3 | ....

    注意:最后一个命令是在当前shell进程的了shell进程中执行。

    tee [option] file...:
        一条输入,两方输出。
        ls /etc | tee /tmp/file.txt   先输出一份到屏幕,再保存一份到file.txt内。

文本处理工具:
wc,cut,sort,uniq
wc命令:计数命令
wc [option]…[file]..
-l:lines 只例出行数
-w:words 只例出例数
-c:characters 只例出字符数
cut命令:切割
cut [option]….file…
-d:指明分隔符
-f:
#:第#个字段
#,#:离散的多个字段,例如,1,3,4
#-#:连续的多个字段,例如1-5

        混合使用:1-3,7
sort命令:
    sort [option] ...[file]...
        -f:忽略字符大小写
        -r:逆序
        -t:字段分隔符
        -k #:以指定字段为标准排序。
        -n:以数值大写排序
        uniq:去重
uniq:命令
    uniq [option]...[file]..
        -c:显示重复出现的次数
        -d:只显示重复过的行
        -u:仅显示不曾重复的行

Linux 初学

阅读数 19

没有更多推荐了,返回首页