2019-12-28 22:40:21 weixin_45505313 阅读数 147
  • 编程思维启蒙(Raptor)

    Raptor是一种基于流程图的可视化编程开发环境。程序设计初学 者普遍存在“编程没思路”的问题,这与同时学计算机语言与编程 方法造成的认知负荷过大有关。Raptor用一系列相互连接的图形 符号以及符号之间的连接(流程图)可视化表达编程思路,不涉 及语言细节,有效地降低学习者的认知负荷,达到“会思考”的目 标,这为进一步学习用计算机语言(如C、C++、Java等)编程奠 定思维基础。

    8624 人正在学习 去看看 贺利坚

1. & 符号的作用

Linux 终端命令的末尾加上一个 & 符号表示将这个任务放到后台去执行,例如以下命令表示将复制任务放到后台执行:

cp -R original/dir/ backup/dir/ &

对于需要长时间执行的任务,&符号可以使当前终端窗口不被占用,这样就能继续在同一个终端上工作,甚至关闭终端窗口也不会影响任务的正常执行。不过需要注意的是,如果要求这个任务输出内容到标准输出中(例如 echols),即便使用了 &,也会等待这些输出任务在前台运行完毕

当使用 &将一个进程放置到后台运行的时候,Bash 会提示这个进程的进程 ID。在 Linux 系统中运行的每一个进程都有一个唯一的进程 ID,我们可以使用进程 ID 来暂停、恢复或者终止对应的进程,因此进程 ID 是非常重要的

2. 后台进程的管理

将任务置入后台执行后,也可以对其进行管理,以下是相关命令

  • jobs
    jobs 命令可以显示当前终端正在运行的进程,包括前台运行和后台运行的进程。它对每个正在执行中的进程任务分配了一个序号(这个序号不是进程 ID),可以使用这些序号来引用各个进程任务
    $ jobs
    [1]  + running    ./sshproxy/sshproxy -remoteHost=10.0.20.99 -remotePort=3306   -localPort=3600
    

  • fg
    fg 命令可以将后台运行的进程任务放到前台运行,这样可以比较方便地进行交互。根据 jobs 命令提供的进程任务序号,再在前面加上 %符号,就可以把相应的进程任务放到前台运行, 如果这个进程任务是暂停状态,fg 命令会将它启动起来
    // 将上面序号为 1 的 cp 任务放到前台运行,
    $ fg %1
    [1]  + 15000 running    ./sshproxy/sshproxy -remoteHost=10.0.20.99 -remotePort=3306   -localPort=3600
    

  • 当前耗时较长的任务已经在终端中前台运行的时候,使用 ctrl+z 组合键可以将前台运行的任务暂停,仅仅是暂停,而不是将任务终止。当使用 fg 或者 bg 命令将任务重新启动起来的时候,任务会从被暂停的位置开始执行

  • bg
    bg 命令会将任务放置到后台执行,类似于 & 符号的作用,但是需注意该命令的执行前提是已经有任务存在,而这可能需要配合ctrl+z 组合键将前台正在运行的任务暂停。如果任务是暂停状态,也会被启动起来。终止后台正在执行的任务可以通过 kill -15 %1来完成,类似 bg命令
    $ bg %1
    [1]  + 15000 continued  ./sshproxy/sshproxy -remoteHost=10.0.20.99 -remotePort=3306   -localPort=3600
    

以上几个命令只能在启动任务的同一个终端里使用,如果启动任务的终端被关闭了,或者切换到了另一个终端,就需要使用 ps命令来筛选进程号,然后使用kill命令来控制进程任务,常用参数表如下

kill 命令 功能
kill -1 HUP (hang up) 挂起
kill -2 INT (interrupt) 中断
kill -3 QUIT (quit) 退出
kill -6 ABRT (abort) 放弃
kill -9 KILL (non-catchable, non-ignorable kill) 强制杀死
kill -15 TERM (software termination signal) 结束
2019-07-08 14:48:48 a1085075119 阅读数 319
  • 编程思维启蒙(Raptor)

    Raptor是一种基于流程图的可视化编程开发环境。程序设计初学 者普遍存在“编程没思路”的问题,这与同时学计算机语言与编程 方法造成的认知负荷过大有关。Raptor用一系列相互连接的图形 符号以及符号之间的连接(流程图)可视化表达编程思路,不涉 及语言细节,有效地降低学习者的认知负荷,达到“会思考”的目 标,这为进一步学习用计算机语言(如C、C++、Java等)编程奠 定思维基础。

    8624 人正在学习 去看看 贺利坚

在Linux中命令后加&,表示该进程后台运行;

在Linux中使用curl,get方式传值时,必须使用斜线转移&符号否者无法传值,会被当成多个命令执行;

2016-05-23 19:31:50 zjc 阅读数 21819
  • 编程思维启蒙(Raptor)

    Raptor是一种基于流程图的可视化编程开发环境。程序设计初学 者普遍存在“编程没思路”的问题,这与同时学计算机语言与编程 方法造成的认知负荷过大有关。Raptor用一系列相互连接的图形 符号以及符号之间的连接(流程图)可视化表达编程思路,不涉 及语言细节,有效地降低学习者的认知负荷,达到“会思考”的目 标,这为进一步学习用计算机语言(如C、C++、Java等)编程奠 定思维基础。

    8624 人正在学习 去看看 贺利坚
列出若干种情形,便于这几个命令及参数的理解:

在命令最后加上&符号,表示让这个进程到后台去执行,这样立刻返回到提示符状态,我们可以接着做下面的事。如:command &

但此时如果这个进程有输出,还是会显示出来,这又会干扰到我们的shell窗口。所以可以考虑把标准输出重定向到某个文件去,如:command >output &

现在清净了。但有时我们会发现后台运行的进程出错了,我们希望把错误信息也保存起来。那就用到了linux中默认定义两个变量:1指标准输出;2指错误输出,所以写成这样:command 1>output 2>error & ,正常的输出在output文件里,错误的输出在error文件里。这里也等同于command >output 2>error &

有时候只想保留一种,另外一个既不输出又不保存,那就用到这个设备/dev/null,所以忽略错误输出:command 1>output 2>/dev/null & ;忽略标准输出:command 1>/dev/null 2>error &;忽略全部输出: command 1>/dev/null 2>/dev/null

1,2两种信息之间还可以进行重定向,所以这种:command 1>output 2>&1 & 表示错误输出也重定向回标准输出,即两种信息都保存到output里。那干嘛不写成command 1>output 2>output & 呢?答案是这样不行,别看都输出到/dev/null可以,但如果写成相同的文件名会导致冲突,所以如果想同时保留只能是上面的写法;同理:忽略全部输出还可以写成: command >/dev/null 2>&1 &

这样的文件输出,每次运行会覆盖现有的文件,如果我们希望追加而不是覆盖,那么就用>>符号,这样命令就是: command 1>>log 2>>error &

基本上参数的各种写法都在这里了,但有个问题。这种“后台”进程在shell一直打开的情况下是没有问题的,如果我们关了shell窗口甚至退出ssh登录或vnc登录,那么进程自动就结束了。所以如果想退出窗口乃至退出登录仍然保持程序运行,再加上nohup,形如:nohup command 1>output 2>&1 &

大概就这些情况了。
2014-01-23 19:57:33 lyhDream 阅读数 1368
  • 编程思维启蒙(Raptor)

    Raptor是一种基于流程图的可视化编程开发环境。程序设计初学 者普遍存在“编程没思路”的问题,这与同时学计算机语言与编程 方法造成的认知负荷过大有关。Raptor用一系列相互连接的图形 符号以及符号之间的连接(流程图)可视化表达编程思路,不涉 及语言细节,有效地降低学习者的认知负荷,达到“会思考”的目 标,这为进一步学习用计算机语言(如C、C++、Java等)编程奠 定思维基础。

    8624 人正在学习 去看看 贺利坚

在linux中有时候我们会看到&& 跟|| 的符号

列如 : cp  ~/aaa.txt  /home/desktop/aaa.txt  && echo  "sucess"

              cp  ~/aaa.txt  /home/desktop/aaa.txt  || echo  "fail"


&&    表示,&&左边的命令返回真时,&&右边的命令才执行

||        表示,||左边的命令返回假,||右边的命令才执行


案列如下:

liyuanhong@liyuanhong-VirtualBox:~$ true && echo "aaa"
aaa
liyuanhong@liyuanhong-VirtualBox:~$ false && echo "aaa"
liyuanhong@liyuanhong-VirtualBox:~$ false || echo "aaa"
aaa
liyuanhong@liyuanhong-VirtualBox:~$ true || echo "aaa"
liyuanhong@liyuanhong-VirtualBox:~$ 

2018-03-30 20:36:22 spirit_artist 阅读数 79
  • 编程思维启蒙(Raptor)

    Raptor是一种基于流程图的可视化编程开发环境。程序设计初学 者普遍存在“编程没思路”的问题,这与同时学计算机语言与编程 方法造成的认知负荷过大有关。Raptor用一系列相互连接的图形 符号以及符号之间的连接(流程图)可视化表达编程思路,不涉 及语言细节,有效地降低学习者的认知负荷,达到“会思考”的目 标,这为进一步学习用计算机语言(如C、C++、Java等)编程奠 定思维基础。

    8624 人正在学习 去看看 贺利坚

Linux常见符号和命令

重定向符号

  • 在shell中常见的重定向符号有 > 和 >>

    • >符号

    表示将符号左侧的内容,以覆盖的方式输入到右侧的文件中

    • >>符号

    表示将符号左侧的内容,以追加的方式输入到右侧文件的末尾

管道符

  • 命令格式

    命令1 | 命令2

    命令1执行后的结果,传递给命令2使用

其他符号

  • 后台展示符 &

    & 就是将一个命令从前台转入到后台执行

  • 全部信息符号 2>&1

    1 表示正确输出的信息

    2 表示错误输出的信息

    2>&1 代表所有输出的信息

  • Linux系统垃圾桶

    /dev/null 是Linux下的一个设备文件,特点是无限大

常见命令

  • grep命令 文本搜索命令

    命令格式 grep [参数] [关键字] <文件名>

    • 参数详解

    -c 只输出匹配行的计数

    -n 显示匹配行及行号

    -v 显示不包含匹配文本的所有行

    • 精确定位错误代码

    grep -nr [错误关键字]

  • sed命令 编辑文件 以行为单位

    命令格式 sed [参数]'匹配条件 动作' 文件名

    • 参数详解

    参数为空 表示sed的操作效果,实际上不对文件进行编辑

    -i 表示读文件进行编辑

    ​ 注意在mac中使用-i参数,需要用-i ''

    • 匹配条件

    数字行号 或者关键字匹配

    ​ 关键字匹配格式:'/关键字/' 隔离符号 /可以换成 @ # !

    • 动作详解

    -a 在匹配到的内容下一行增加内容

    -i 在匹配到的内容上一行增加内容

    -d 删除匹配到的内容

    -s 替换匹配到的内容

    • 命令演示

    s#原内容#替换后内容#

    • 替换每行首个匹配内容

      sed -i 's#原内容#替换后内容#' 文件名

    • 替换全部匹配内容

      sed -i 's#原内容#替换后内容#g'

    • 指定行号替换首个匹配内容

      sed -i'行号s#原内容#替换后内容#' 文件名

    • 首航指定列号替换匹配内容:

      sed -i 's#原内容#替换后内容#列号' 文件名

    • 指定行号列号匹配内容

      sed -i '行号s#原内容#替换后内容#列号' 文件名

    • 在指定行号的下一行增加内容

      sed -i '行号a\增加内容' 文件名

      如果增加多行,可以在行号位置写个范围值,彼此中间用逗号隔开

    • 在指定行号的当行增加内容

      sed -i '行号i\增加的内容' 文件名

      如果增加多行,可以在行号位置写个范围值,彼此中间用逗号隔开

    • 指定行号删除

      sed -i '行号d' 文件名

      如果增加多行,可以在行号位置写个范围值,彼此中间用逗号隔开

  • awk命令 能以行和列来处理文件

    命令格式 awk [参数] '动作' 文件名

    • 常见参数

    -F 指定行的分隔符

    • 常见动作

    print 显示内容

    $0 显示当前所有内容

    $n 显示当前行的第n列内容,如果存在多个$n,中间用,隔开

    • 常见内置变量

    NR 指定显示行的行号

    NF 输出最后一列的内容

    OFS 输出格式的列分隔符,缺省是空格

    FS 输入文件的列分隔符,缺省是连续的空格和tab

  • find命令

    命令格式 find [路径] [参数] [关键字]

    • 参数详解

    -name 按照文件名查找文件

    -perm 按照文件权限来查找文件

    -user 按照文件属主来查找文件

    -group 按照文件所属的组来查找文件

    -type 查找某一类型的文件

    -size n: [c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计算

    -depth 查找文件时,首先查找当前目录中的文件,然后在其子目录中查找

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