ubuntu 输出默认shell - CSDN
精华内容
参与话题
  • Ubuntu crontab定时执行shell脚本

    千次阅读 2018-12-13 15:06:28
    Ubuntu crontab定时执行shell脚本 最近打算让服务器定时的编译项目源码,及时产生二进制文件。写好了编译脚本后,就需要用到crontab设置定时任务。 Crontab与Cron 使用crontab命令来配置cron进程。cron进程...

    Ubuntu crontab定时执行shell脚本

    • 最近打算让服务器定时的编译项目源码,及时产生二进制文件。写好了编译脚本后,就需要用到crontab设置定时任务。(如果需要更强大的功能,就要考虑用Jenkins了)

    Crontab与Cron

    • 使用crontab命令来配置cron进程。cron进程是Linux中的一个守护进程,一般用来执行系统中的周期性任务。
    • Cron服务命令
    # 查看服务状态
    sudo  service cron status
    # 开启服务
    sudo service cron start
    # 停止服务
    sudo service cron stop
    # 重启服务
    sudo service cron restart
    
    • 设置定时任务
    # 如果服务没有开启,开启该服务
    sudo service cron restart
    # 输入该命令,修改crontab配置。第一次输入该命令时,会提示选择编辑工具,一般选择vim(vi)即可。
    crontab –e
    # 在上一步打开的终端中(第一次使用该命令的话,在选择编辑工具后),输入下面的内容
    # 该内容表示,在每天的0点0分,执行脚本MakeProject.sh
    0 0 * * * /home/linduo/Project/MakeProject.sh
    
    • Crontab定时任务命令格式
    # 格式如下
    # minute hour day-of-month month-of-year day-of-week commands
    # 00-59 00-23 01-31 01-12 0-6 (0 is sunday) 
    
    # 每天0点0分,执行指定脚本
    0 0 * * * /home/linduo/Project/MakeProject.sh
    
    # 星期1到星期5,11点30分,执行指定脚本
    30 11 * * 1,2,3,4,5 /home/linduo/Project/MakeProject.sh
    
    # 星期1、星期3、星期5,23点00,执行指定脚本,并将内容重定向到文件(使用日期命名)
    # 获取日期命令,必须使用如下格式,否则会导致cron执行失败。
    00 23 * * 1,3,5 /home/linduo/Project/MakeProject.sh all >> "/home/linduo/Project/Build_$(date +"\%Y-\%m-\%d")".log 2>&1
    

    相关问题

    • 打开cron.log:Unbutun默认是关闭这个log的,需要手动打开,一遍查看cron执行状态。
    # 找到cron.log行,取消注释
    sudo vim /etc/rsyslog.d/50-default.conf
    # 重启服务
    sudo  service rsyslog  restart
    # 查看cron.log
    vim /var/log/cron.log
    
    • No MTA installed, discarding output:cron默认把屏幕输出到email中,而ubuntu默认没有装MTA。导致cron执行失败,并在cron.log中输入该内容。将输出重定向到文件即可解决该问题(参见上面将内存重定向到文件的命令)
    • cron常用命令
    # 查看cron任务
    crontab -l
    # 为指定用户配置cron任务
    crontab -e -u linduo
    # 删除所有cron任务
     crontab -r
    
    展开全文
  • 第一次写 script脚本 按照鸟哥的hello world 的程序写了一下: #!/bin/bash # Program: # This program shows "hello World!" in your screen. #History: # 2015/07/17 Song First release PATH=${PATH}:~/Linux_...

    第一次写 script脚本 按照鸟哥的hello world 的程序写了一下:

    #!/bin/bash
    # Program:
    #	This program shows "hello World!" in your screen.
    #History:
    # 2015/07/17	Song	First release
    
    PATH=${PATH}:~/Linux_learn/bin
    
    export PATH
    
    echo -e "hello world!\a\n"
    exit 0
    
    然后按照书上的 

     

    liusong@liusong-PC:~/Linux_learn/bin$ sh hello-world.sh 
    发现输出结果是


    -e hello world!
    这是很奇怪的一件事,百度了一下,发现

    用 

    bash hello-wrold.sh
    可以。

    原因:

    GNU/Linux操作系统中的/bin/sh本是bash (Bourne-Again Shell) 的符号链接,但鉴于bash过于复杂,有人把bash从NetBSD移植到Linux并更名为dash (Debian Almquist Shell),并建议将/bin/sh指向它,以获得更快的脚本执行速度。Dash Shell 比Bash Shell小的多,符合POSIX标准。

    Ubuntu继承了Debian,所以从Ubuntu 6.10开始默认是Dash Shell。

    应该说,/bin/sh/bin/bash虽然大体上没什么区别,但仍存在不同的标准。标记为#!/bin/sh的脚本不应使用任何POSIX没有规定的特性 (如let等命令, 但#!/bin/bash可以)。Debian曾经采用/bin/bash更改/bin/dash,目的使用更少的磁盘空间、提供较少的功能、获取更快的速度。但是后来经过shell脚本测试存在运行问题。因为原先在bash shell下可以运行的shell script (shell 脚本),在/bin/sh下还是会出现一些意想不到的问题,不是100%的兼用。

    上面可以这样理解,使用man sh命令和man bash命令去观察,可以发现sh本身就是dash,也就更好的说明集成Debian系统之后的更改。

    原来因为shell其实有很多种,而且不同的shell 语法也不一定相同。

    因为dash比bash更加小,速度快,所以现在高版本的Ubuntu默认都为dash。sh命令作为链接  连接到dash。

    用命令ls -l /bin/sh 看看


    但很多教程第一行都写#!/bin/bash ,但默认是dash不是bash  所以就有以上错误 。


    关于脚本第一行的理解:

     #!/bin/sh

     #!/bin/bash

    这个说明可以让你在将这个脚本文件 +x 后 用 ./ 执行时,自动分配解释器










    展开全文
  • 使用: 脚本路径/脚本名 >/dev/null 2>&1 说明: 可以简单的理解/dev/null是Linux下的回收站 ...默认是把标准输出重定向 2>&1是把出错输出也定向到标准输出...

    使用:

    脚本路径/脚本名 >/dev/null 2>&1

    说明:

    可以简单的理解/dev/null是Linux下的回收站

    >默认是把标准输出重定向

    2>&1是把出错输出也定向到标准输出

    展开全文
  • ubuntu执行.sh文件几种方式区别

    万次阅读 多人点赞 2016-01-07 10:51:43
    script的执行方式区别 前言 使用sh testsh执行 使用bash testsh 执行 使用点 执行 使用source执行 区别前言不同的script执行方式会造成不一样的结果,尤其对bash的环境影响很大,脚本的执行方式有大概以下几种方式。...

    script的执行方式区别


    前言

    不同的script执行方式会造成不一样的结果,尤其对bash的环境影响很大,脚本的执行方式有大概以下几种方式。

    首先写一个简单的test.sh文件:

    #!/bin/bash
    
    read -p "Please input your first name:" firstname
    read -p "Please input your last name:" lastname
    echo -e "\nYour full name is: $firstname $lastname"

    使用sh test.sh执行

    使用 sh test.sh 来执行script文件,该方法标明使用 sh 这种shell来执行test.sh文件,sh已经是一种被bash替代的shell,尽管我们在test.sh中声明使用 #!/bin/bash 来执行我们的文件,但此时使用sh而不是bash,则#!/bin/bash 已不起作用。


    使用bash test.sh 执行

    该方法其实与 sh test.sh 的原理一样,只是使用了 /bin/bash 该种shell来执行我们的脚本文件。

    所以,其实使用 dash test.sh' 也是可以的,只是取决于自己想使用那种shell来执行脚本,但sh、bash、dash三者有些许差别,对于部分关键字如 let,bash支持,而sh和dash并不支持,对于部分关键字则选择使用bash。


    使用点 . 执行

    该种方式使用之前必须为文件添加执行的权限:

    $ chmod +x test.sh

    添加完执行权限之后,便可以使用 ./test.sh 来执行脚本,该方式与 bash test.sh 是一样的 ,默认使用 bin/bash 来执行我们的脚本。

    只有该种执行方式需要对文件添加执行权限,其他方式并不需要。


    使用source执行

    使用source则也能够直接执行我们的脚本:

    source test.sh

    区别

    当我们使用 sh test.shbash test.sh./test.sh 执行脚本的时候,该test.sh运行脚本都会使用一个新的shell环境来执行脚本内的命令,也就是说,使用这3种方式时,其实script是在子进程的shell内执行,当子进程完成后,子进程内的各项变量和操作将会结束而不会传回到父进程中

    无法理解??看下面例子:

    [root@ubuntu] # bash test.sh
    Please input your first name: yao    <==输入firstname
    Please input your last name: pentonBin    <==输入lastname
    
    Your full name is: yao pentonBin
    [root@ubuntu] # echo $firstname
                 <==这里没有输出

    如果使用source方法来执行脚本呢?

    [root@ubuntu] # source test.sh
    Please input your first name: yao    <==输入firstname
    Please input your last name: pentonBin    <==输入lastname
    
    Your full name is: yao pentonBin
    [root@ubuntu] # echo $firstname
    yao       <==这里输出firstname

    也就是说,source方法执行脚本是在父进程中执行的,test.sh的各项操作都会在原本的shell内生效,这也是为什么不注销系统而要让某些写入~/.bashrc的设置生效时,需要使用 source ~/.bashrc 而不能使用 bash ~/.bashrc

    展开全文
  • Ubuntu下创建新用户

    万次阅读 多人点赞 2018-07-31 15:25:19
    组里的服务器是Ubuntu系统,跑实验的话需要远程访问,这样的话需要在服务器上创建一个自己的账户,本文记录一下在Ubuntu系统下创建新用户的过程。(服务器的远程访问一般通过ssh来实现,关于ssh的使用可以参见Ubuntu...
  • 写在前面:不同的发行版里面文件的命名可能有所不同,如有的发行版etc目录下有bashrc,有的发行版下面是bash....并从/etc/profile.d目录的配置文件中搜集shell的设置.所以如果你有对/etc/profile有修改的话必须得重...
  • Ubuntu下设置默认编辑器

    千次阅读 2012-12-02 12:46:29
    默认情况下,Ubuntu 系统会为用户预设程序。就拿文本编辑器来说吧,Ubuntu 预设的是 Nano,对某些朋友来说,使用 Vim 可能更得心应手些。那么如何更改这些预设的程序呢? 你可以使用 sudo update-...
  • echo $SHELL:查看当前Linux系统默认Shell Shell文件格式: #!/bin/bash echo "hello, world\n" 第一行的 #!/bin/bash 意为用bash来解析shell 第二行的 echo “hello, world\n” 意为打印输出hello, world字样...
  • Ubuntu中如何使得程序在后台运行

    千次阅读 2019-08-01 21:17:00
    Ubuntu中如何使得程序在后台运行 一、前言 在Ubuntu中有的程序启动需要执行改程序./bin目录下的文件,并且启动之后这个shell就不能使用和关闭了,非常的麻烦,因此就有了相应的命令来解决这个问题。 二、nohup和...
  • Ubuntu配置sublime text 3的c编译环境

    千次阅读 2016-03-02 14:51:27
    新建编译系统c语言选择tool –> Build System –> New Build System
  • UbuntuUbuntu查找文件的命令

    千次阅读 2017-10-19 21:56:54
    默认为当前目录 [指定条件]: 所要搜索的文件的特征 [指定动作]: 对搜索结果进行特定的处理 常用的[指定条件] -name:按文件名来查找文件 -user:按照文件的属主来查找文件 -group:按照文件所属的组来查
  • 从历史的角度介绍了,控制台,终端,虚拟终端,tty,shell, bash , sh, csh等概念的区别
  • ubuntu 定时任务

    千次阅读 2018-05-30 17:25:30
    1.查看定时任务sudo crontab -l2.定制定时任务sudo crontab -e在文件中输入任务命令*/1 * * * * /bin/sh /etc/init.d/test.sh此命令每分钟执行一次test.sh脚本或1 * * * * cd /etc/init.d &...
  • Ubuntu——Makefile文件与make命令

    万次阅读 2019-03-22 11:12:22
    make命令是一个常用的编译命令,尤其在C/C++开发中,make命令通过makefile文件中描述源程序之间的依赖关系进行自动编译; makefile文件是按照规定格式编写,需说明如何编译各个源文件并连接生成可执行文件,并...
  • Shell:环境变量

    千次阅读 2016-07-19 22:05:47
    在大家初次接触到Linux系统中,相信环境变量会让你头疼不已。习惯了在Windows设置PATH的你,被Linux上各种文件可以...2.bash shell使用环境变量来存储有关shell会话和工作环境信息; 允许你在内存中存储数据,以便运行
  • ubuntu下获取对应内核源码命令

    万次阅读 2012-04-04 22:12:45
    输入:apt-get install linux-source-3.0.0 //获取对应版本的内核,默认安装在/usr/src目录下 见: Ubuntu下构建内核源码树的方法   ubuntu下编译本机模块是否需要下载内核源码呢? 答案是...
  • Shell 脚本等待上一行执行完成再执行下一行的方法

    万次阅读 多人点赞 2016-04-08 11:17:06
    在开发中,我们有时候需要使用 Shell 脚本完成一些简单的操作,但是往往有的操作比较耗时,但是我们又不得不等待它执行完成后才能进行下面的步骤,所以许多朋友往往使用sleep等方法来强制等待操作完成,其实完全没有...
  • /bin/bash // bin/bash来执行文件程序,一般Ubuntu默认shell脚本在此目录下,可以用echo $SHELL查看。  echo "input three numbers:" // echo用来显示输出。  read var1 // 将读入的数据赋值给var1。
  • Ubuntu 10.04.4,QT Creator 2.4.1 在QT Creator里面新建一个纯C++项目,代码如下, #include using namespace std; int main() { cout !" ; return 0; } 编译运行后,终端死活不显示任何信息。双击
  • VirtualBox虚拟机安装Ubuntu操作系统

    万次阅读 多人点赞 2018-03-14 08:49:50
    刚开始学习Linux系统时候,有些纠结到底用哪个版本的好用那,对于程序开发人员大多数,使用CentOS和Ubuntu的。我当时就闲着没事干就都装上了,当时还买了本,《Linux命令行与shell脚本编辑大全》挺经典的一本书。 ...
1 2 3 4 5 ... 20
收藏数 25,067
精华内容 10,026
热门标签
关键字:

ubuntu 输出默认shell