V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
codechaser
V2EX  ›  Linux

请教一下一个关于 Linux 的问题

  •  
  •   codechaser · 2018-11-19 09:34:20 +08:00 · 3729 次点击
    这是一个创建于 1956 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家好!在命令行界面可以通过敲击命令打开文件,例如:

    evince foo.pdf
    

    但是这样打开文件后这个终端里就不能干别的事了,按Ctrl+C就会退出程序。有没有啥方法可以像点快捷方式那样启动应用呢?而且我发现从 terminal 启动程序总是有很多警告,但文件是可以正常看的。

    30 条回复    2018-11-27 14:37:01 +08:00
    JavenXiao
        1
    JavenXiao  
       2018-11-19 09:38:09 +08:00
    screen 了解一下
    shylockhg
        2
    shylockhg  
       2018-11-19 09:38:46 +08:00   ❤️ 2
    evince foo.pdf &
    rrZ2C
        3
    rrZ2C  
       2018-11-19 09:40:01 +08:00
    可以尝试使用在命令后面加个符号:&

    比如我常用的命令是 gitk ,现在就用 "gitk&" 或者 "gitk &"都可以
    Shirakawa
        4
    Shirakawa  
       2018-11-19 09:40:15 +08:00
    试试 nohup 或者&?
    kernel
        5
    kernel  
       2018-11-19 09:44:04 +08:00
    单加一个&也会把输出到控制台,只能这样:

    cmd... &>/dev/null &

    如果用得多每次打后面一串烦的话可以写个在.bashrc 里写个小函数处理
    RemiliaForever
        6
    RemiliaForever  
       2018-11-19 09:44:07 +08:00   ❤️ 1
    因为命令行里直接运行 evince 并不是后台运行,自然就占用了这个终端。
    简单的话可以通过 mime 管理器打开,大部分情况下是 xdg-open。用&后台运行也可以,但是 terminal 退出的时候会发送 SIGHUP,导致程序也一起退出,需要加 nohup 或者其他手段。
    警告是 GTK 的 warning,可以无视。
    linuxchild
        7
    linuxchild  
       2018-11-19 09:55:00 +08:00
    tmux~~~~~~~~~~~~~~~~~~
    Hardrain
        8
    Hardrain  
       2018-11-19 09:56:29 +08:00   ❤️ 1
    直接在命令行尾加&可以让这个 terminal 继续使用,但你关闭这个 terminal 后,打开的程序也一并被关闭。

    如果不想打开的程序被关闭,可以在命令行前加 nohup

    如果还需要复用这个 terminal(e.g. 通过 SSH 连接到某服务器,编译某程序,编译过程中不保持 SSH 连接,编译完成后还需要到编译时用的那个 tty 下查看结果),应考虑使用 screen
    但 screen 的$TERM 是 screen,不是 xterm 之类的,功能上有些限制(e.g.一些可用鼠标点击 /右键的程序无法正常使用。)
    mccreefei
        9
    mccreefei  
       2018-11-19 10:00:40 +08:00
    ubuntu 里 alt+f2 可以输入一个命令
    nvliu66
        10
    nvliu66  
       2018-11-19 10:01:56 +08:00 via Android
    tmux 是真的好用
    chinvo
        11
    chinvo  
       2018-11-19 10:02:30 +08:00 via iPhone
    byobu
    jasonyang9
        12
    jasonyang9  
       2018-11-19 10:03:36 +08:00
    用了 screen 后看下 pstree 就明白了
    KingEngine
        13
    KingEngine  
       2018-11-19 10:05:14 +08:00
    setsid evince foo.pdf
    MarioxLinux
        14
    MarioxLinux  
       2018-11-19 10:07:58 +08:00
    Ctrl+Z 置入后台,fg 可以调回前台
    johnniang
        15
    johnniang  
       2018-11-19 10:11:16 +08:00
    https://wiki.archlinux.org/index.php/dmenu

    这可能是你想要的结果( dmenu )。
    dangyuluo
        16
    dangyuluo  
       2018-11-19 10:25:50 +08:00
    https://www.ibm.com/developerworks/cn/linux/l-cn-nohup/index.html
    不得不说,IBM 的文档库真是由全又好啊
    andy1ee11o2
        17
    andy1ee11o2  
       2018-11-19 10:26:44 +08:00
    tmux 了解一下
    fox1955
        18
    fox1955  
       2018-11-19 10:30:31 +08:00   ❤️ 1
    这个需求我也有,解决方法请参照我的 alias: https://github.com/derekchuank/gentoo-config/blob/master/bashrc.sh
    jasonyang9
        19
    jasonyang9  
       2018-11-19 10:43:18 +08:00
    @fox1955 #18 要我肯定用 mpv,而不是 smplayer
    pingpp00
        20
    pingpp00  
       2018-11-19 10:52:19 +08:00
    标签了解一下?
    Neojoke
        21
    Neojoke  
       2018-11-19 11:05:58 +08:00   ❤️ 1
    @codechaser 楼主了解一下 shell 环境的父子进程和进程列表,能从根本上帮你搞清这个问题
    opiviqo
        22
    opiviqo  
       2018-11-19 11:11:38 +08:00
    ubuntu 的话 (evince xxx.pdf &) 记得加括号
    stebest
        23
    stebest  
       2018-11-19 11:22:25 +08:00
    nohup 就行了,不满意再加个&
    fox1955
        24
    fox1955  
       2018-11-19 11:26:47 +08:00
    @jasonyang9 mpv 有什么优势吗,我也觉得 smplayer 外观有点丑
    codechaser
        25
    codechaser  
    OP
       2018-11-19 11:29:58 +08:00 via Android
    @Neojoke 好的,我去查查。其实我大致知道原理,但不知道如何操作
    jasonyang9
        26
    jasonyang9  
       2018-11-19 11:33:46 +08:00
    @fox1955 #24 如果没说错,smplyer 底层用的就是 mpv。

    mpv 的优势在我看来是几乎全键盘控制,UI 最小化,配置灵活,继承并发扬了 MPlayer 的精髓。
    Orzldzx
        27
    Orzldzx  
       2018-11-19 11:50:39 +08:00
    ctrl + z 和 jobs 一起用也行吧, http://man.linuxde.net/jobs
    Neojoke
        28
    Neojoke  
       2018-11-19 11:53:20 +08:00   ❤️ 1
    @codechaser 初学者,鉴于英文不太好看,建议买本 shell 手册的工具书,比方说《 Linux 命令行与 shell 脚本编程大全》,涉及到具体哪个地方有问题,可以随后翻开去查查,然后实际练习一下,这样会好很多
    markgor
        29
    markgor  
       2018-11-19 14:59:29 +08:00
    CTRL+ALT+F1 ~ F6
    这样你就有 6 个快捷方式了
    sfqr0414
        30
    sfqr0414  
       2018-11-27 14:37:01 +08:00 via Android
    当然是用 tty 啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1222 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 23:21 · PVG 07:21 · LAX 16:21 · JFK 19:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.