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

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

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

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

    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     Solana     1169 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 40ms UTC 17:39 PVG 01:39 LAX 10:39 JFK 13:39
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86