2014-06-12 22:23:34 zcc_0015 阅读数 10281
  • 玩转Linux:常用命令实例指南

    本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通 。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 注意: 1、本课程原价99元,现在仅需29元!购课就送5门价值300元的编程课! 2、购课后登陆csdn学院官网,在课程目录页面即可下载课件。 学完即可轻松应对工作中 85% 以上的 Linux 使用场景 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本课程【现在享受秒杀价39元】 3)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 注意: 1)现在购买至少享受60元优惠; 2)购课后添加微信eduxy-1,发送订单截图领取300元编程礼包。 --------------------------------------------------------------- 这门课程,绝对不会让你觉得亏! 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+300元编程礼包。   人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。   在这门课中,我们保证你能收获到这些 1)快速掌握 Linux 常用命令及配置 2)Linux核心知识点 3) 文件、进程、磁盘、用户管理,以及网络工具命令、文件传输等 4)Vi/Vim编辑器用法  

    7155 人正在学习 去看看 良许

    作者:张昌昌

     在一些情况下,往往需要同时启动多个终端并让终端执行自动执行相应的命令,进而达到提高操作效率的目的。在linux下gnome-terminal启动终端命令,

gnome-terminal -x 后跟执行的命令,bash是linux启动子shell的命令,bash -c "所要执行的命令串",通过嵌套gnome-terminal -x bash -c ......,表示启动新终端,

并在新启动的终端里执行bash -c,即启动子shell,由子shell执行-c后面的双引号括起来的命令串。同时为保证gnome-terminal新启的终端不退出,要在bash -c的命令串后

加bash让其有一个进程在运行,本例中加的是erl命令,直接进入erl终端,当然不会退出。

c语言版:

 #include <unistd.h> 
#include <sys/types.h> 
#include <stdio.h> 
#include <stdlib.h> 
int main(int argc,char * argv[]) 
{ 
int count = atoi(argv[1]),i; 
for(i=0;i<count;i++) 
{ 
pid_t pid = fork(); 
if(pid == 0) 
{ 
//printf("child=%d ",getpid()); 
system("gnome-terminal -x bash -c 'ulimit -n 1000000;cd /home;erl'"); 
exit(0); 
} 
} 
exit(0); 
}   

执行 ./a.out 3
该程序采用异步多进程方式,fork子进程,通过system(。。。。)系统调用执行相应的命令,该程序需要注意的是(1)main函数如何带参数,所带的参数是从argv[1]开始的,argv[0]默认的参数为“0”,实际上argv数组的长度是外面参数的个数加1;(2)fork出的子进程,照样会执行for循环,因此为避免此现象发生,fork子进程执行后,exit(0)让子进程退出,启动下一个子进程;(3)fork返回值在子进程里是0,在父进程里是生成的子进程进程号;(4)c语言的atoi()可以把字符串转化为整型。

Bash shell版

#!/bin/bash
for((i=0;i<$1;i++))
do
((port=2+i))
gnome-terminal -x bash -c "cd /home;ulimit -n 1000000;erl +K true -run io format $port" &
done

该脚本更加轻量灵活,注意&是切换到后台运行,防止阻塞当前进程的for的下一次执行,由此可知shell也是多进程模型,而js脚本是单进程模型。

转载注明出处。
2020-02-06 18:46:11 as4589sd 阅读数 205
  • 玩转Linux:常用命令实例指南

    本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通 。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 注意: 1、本课程原价99元,现在仅需29元!购课就送5门价值300元的编程课! 2、购课后登陆csdn学院官网,在课程目录页面即可下载课件。 学完即可轻松应对工作中 85% 以上的 Linux 使用场景 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本课程【现在享受秒杀价39元】 3)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 注意: 1)现在购买至少享受60元优惠; 2)购课后添加微信eduxy-1,发送订单截图领取300元编程礼包。 --------------------------------------------------------------- 这门课程,绝对不会让你觉得亏! 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+300元编程礼包。   人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。   在这门课中,我们保证你能收获到这些 1)快速掌握 Linux 常用命令及配置 2)Linux核心知识点 3) 文件、进程、磁盘、用户管理,以及网络工具命令、文件传输等 4)Vi/Vim编辑器用法  

    7155 人正在学习 去看看 良许

tmux简介

tmux(terminal multiplexer)是Linux上的终端复用神器,可从一个屏幕上管理多个终端(准确说是伪终端)。使用该工具,用户可以连接或断开会话,而保持终端在后台运行,类似的工具还有screen。

tmux基本结构

tmux的结构包括会话(session)、窗口(window)、窗格(pane)三部分,会话实质是伪终端的集合,每个窗格表示一个伪终端,多个窗格展现在一个屏幕上,这一屏幕就叫窗口。基本结构及状态信息如下图所示:

tmux安装

1.对于ncurses-devel,可用yum安装。

yum install ncurses-devel

2. 对于libevent,这里我使用的是libevent源码安装,使用版本为libevent-2.0.20-stable.tar.gz (可百度)。安装步骤如下:

tar -xzf libevent-2.0.20-stable.tar.gz
cd libevent-2.0.20-stable
./configure --prefix=/tmp/libevent
make 
make install

3. 这里使用的tmux版本为tmux-1.7.tar.gz (自行下载),安装步骤如下:

tar -xzf tmux-1.7.tar.gz
cd tmux-1.7
CFLAGS="-I/tmp/libevent/include" LDFLAGS="-L/tmp/libevent/lib" ./configure --prefix=/usr/local/tmux
make
sudo make install

 4.在.bashrc 文件中加入 PATH=/usr/local/tmux/bin:$PATH,使得命令查找路径含有/usr/local/tmux/bin/ 。然后执行source ~/.bashrc 使得的配置生效。 
5.执行tmux命令,若出现下面的错误:tmux: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
可执行下面的命令将库拷到默认路径下

sudo cp /tmp/libevent/lib/libevent-2.0.so.5 /usr/lib

若依然无法找到,可在/etc/ld.so.conf中增加一行/usr/lib 保存后,执行

ldconfig

此后,再执行tmux即可。

tmux配置

解压包中,取出tmux.conf,进行配置自己的快捷键,可以编辑~/.tmux.conf里面的配置项,如下

set-option -g base-index 1 #窗口的初始序号;默认为0,这里设置为1 
set-option -g display-time 5000 #提示信息的持续时间;设置足够的时间以避免看不清提示,单位为毫秒
set-option -g repeat-time 1000 #控制台激活后的持续时间;设置合适的时间以避免每次操作都要先激活控制台,单位为毫秒
set-option -g status-keys vi #操作状态栏时的默认键盘布局;可以设置为vi或emacs
set-option -g status-right "#(date +%H:%M' ')" #状态栏右方的内容;这里的设置将得到类似23:59的显示
set-option -g status-right-length 10 #状态栏右方的内容长度;建议把更多的空间留给状态栏左方(用于列出当前窗口)
set-option -g status-utf8 on #开启状态栏的UTF-8支持
#setw -g window-status-format "#{pane_current_path}".
#set -g status-left "#{pane_current_path}"
#此类设置可以在命令行模式中输入show-window-options -g查询
set-window-option -g mode-keys vi #复制模式中的默认键盘布局;可以设置为vi或emacs
set-window-option -g utf8 on #开启窗口的UTF-8支持
#将激活控制台的快捷键由Ctrl+b修改为Ctrl+a,Ctrl+a是Screen的快捷键
set-option -g prefix C-a
unbind-key C-b
bind-key C-a send-prefix
bind-key R source-file ~/.tmux.conf \; display-message "~/.tmux.conf reloaded."
#新建会话
tmux new -s fp # 新建名称为 foo 的会话
prefix c  创建一个新窗口
#添加自定义快捷键
bind-key z kill-session #按z结束当前会话;相当于进入命令行模式后输入kill-session
bind-key h select-layout even-horizontal #按h将当前面板布局切换为even-horizontal;相当于进入命令行模式后输入select-layout even-horizontal
bind-key v select-layout even-vertical #按v将当前面板布局切换为even-vertical;相当于进入命令行模式后输入select-layout even-vertical
bind-key C-s last-window
#水平或垂直分割窗口 (C+A+ :split-window + v/h)
unbind '"' 
bind - splitw -v # 分割成上下两个窗口
unbind %
bind | splitw -h # 分割成左右两个窗口
#选择分割的窗格
bind k selectp -U # 选择上窗格
bind j selectp -D # 选择下窗格
bind h selectp -L # 选择左窗格
bind l selectp -R # 选择右窗格
#重新调整窗格的大小
bind-key J resize-pane -D 10
bind-key K resize-pane -U 10
bind-key H resize-pane -L 10
bind-key L resize-pane -R 10
#交换两个窗格
bind ^u swapp -U # 与上窗格交换 Ctrl-u
bind ^d swapp -D # 与下窗格交换 Ctrl-d
#两行设置状态行的背景和前景色: 
#set -g status-bg black
#set -g status-fg yellow

set -g default-terminal "screen-256color"

tmux基本操作


基本的操作无非就是对会话、窗口、窗格进行管理,包括创建、关闭、重命名、连接、分离、选择等等。

一般使用命令和快捷键进行操作,可在系统shell终端和tmux命令模式(类似vim的命令模式)下使用命令,或者在tmux终端使用快捷键。

1.退出(detach)当前tmux

ctrl+d

2.重新进入tmux

tmux attach -t <target-session>

如:当前有很多session,那么选择哪一个呢?

2.1 使用命令tmux ls来获取target-session

jello@jello:~$ tmux ls

1: 1 windows (created Tue Jan 17 09:28:05 2019) [207x86]
13: 1 windows (created Tue Jan 17 17:49:10 2019) [207x86]
16: 1 windows (created Thu Jan 17 10:41:44 2019) [207x86]
19: 5 windows (created Tue Jan 17 10:53:06 2019) [207x86]

2.2 进入target-session为13的窗口

tmux attach -t 13

3.新建会话

新建名称为 foo 的会话

tmux new -s foo 

4.将激活控制台的快捷键

Ctrl+a

tmux默认的快捷键前缀是Ctrl+b(下文用prefix指代),按下前缀组合键后松开,再按下命令键进行快捷操作,比如使用prefix d分离会话(应该写作prefix d而不是prefix+d,因为d键不需要与prefix同时按下)。

快捷键可以自定义,比如将前缀(prefix)改为Ctrl+a,但需要保留shell默认的Ctrl+a快捷键,按如下所示修改~/.tmux.conf文件(见tmux配置):

  • 1 set-option -g prefix C-a
  • 2 unbind-key C-b
  • 3 bind-key C-a send-prefix
  • 4 bind-key R source-file ~/.tmux.conf \; display-message "~/.tmux.conf reloaded."

现在已将原先的Ctrl+a用prefix Ctrl+a取代,即需要按两次Ctrl+a生效。

第4行的作用是使用prefix r重新加载配置文件,并输出提示否则需要关闭会话后配置文件才能生效也可手动加载配置文件,在tmux终端输入"prefix :"进入命令模式,用source-file命令加载配置文件。

注意,将多个命令写在一起作为命令序列时,命令之间要用空格分号分隔

tmux会话管理

常用命令 

tmux new  创建默认名称的会话(在tmux命令模式使用new命令可实现同样的功能,其他命令同理,后文不再列出tmux终端命令)
tmux new -s mysession  创建名为mysession的会话
tmux ls  显示会话列表
tmux a  连接上一个会话
tmux a -t mysession  连接指定会话
tmux rename -t s1 s2  重命名会话s1为s2
tmux kill-session  关闭上次打开的会话
tmux kill-session -t s1  关闭会话s1
tmux kill-session -a -t s1  关闭除s1外的所有会话
tmux kill-server  关闭所有会话

常用快捷键

Ctrl+a(prefix) s  列出会话,可进行切换
Ctrl+a(prefix) $  重命名会话
Ctrl+a(prefix) d  分离当前会话
Ctrl+a(prefix) D  分离指定会话

窗口管理

Ctrl+a(prefix) c  创建一个新窗口
Ctrl+a(prefix) ,  重命名当前窗口
Ctrl+a(prefix) w  列出所有窗口,可进行切换
Ctrl+a(prefix) n  进入下一个窗口
Ctrl+a(prefix) p  进入上一个窗口
Ctrl+a(prefix) l  进入之前操作的窗口
Ctrl+a(prefix) 0~9  选择编号0~9对应的窗口
Ctrl+a(prefix) .  修改当前窗口索引编号
Ctrl+a(prefix) '  切换至指定编号(可大于9)的窗口
Ctrl+a(prefix) f  根据显示的内容搜索窗格
Ctrl+a(prefix) &  关闭当前窗口

窗格管理

Ctrl+a(prefix) %  水平方向创建窗格
Ctrl+a(prefix) "  垂直方向创建窗格
Ctrl+a(prefix) Up|Down|Left|Right  根据箭头方向切换窗格
Ctrl+a(prefix) q  显示窗格编号
Ctrl+a(prefix) o  顺时针切换窗格
Ctrl+a(prefix) }  与下一个窗格交换位置
Ctrl+a(prefix) {  与上一个窗格交换位置
Ctrl+a(prefix) x  关闭当前窗格
Ctrl+a(prefix) space(空格键)  重新排列当前窗口下的所有窗格
Ctrl+a(prefix) !  将当前窗格置于新窗口
Ctrl+a(prefix) Ctrl+o  逆时针旋转当前窗口的窗格
Ctrl+a(prefix) t  在当前窗格显示时间
Ctrl+a(prefix) z  放大当前窗格(再次按下将还原)
Ctrl+a(prefix) i  显示当前窗格信息

其他命令

tmux list-key  列出所有绑定的键,等同于Ctrl+a(prefix) ?
tmux list-command  列出所有命令
  
以上为tmux的常见操作,基本可以满足大部分的工作需求,至于更高端的操作,可以对tmux.conf文件中的配置,进行增添操作。

 

 


 

 

 

2011-05-26 10:41:00 aben_2005 阅读数 2745
  • 玩转Linux:常用命令实例指南

    本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通 。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 注意: 1、本课程原价99元,现在仅需29元!购课就送5门价值300元的编程课! 2、购课后登陆csdn学院官网,在课程目录页面即可下载课件。 学完即可轻松应对工作中 85% 以上的 Linux 使用场景 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本课程【现在享受秒杀价39元】 3)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 注意: 1)现在购买至少享受60元优惠; 2)购课后添加微信eduxy-1,发送订单截图领取300元编程礼包。 --------------------------------------------------------------- 这门课程,绝对不会让你觉得亏! 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+300元编程礼包。   人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。   在这门课中,我们保证你能收获到这些 1)快速掌握 Linux 常用命令及配置 2)Linux核心知识点 3) 文件、进程、磁盘、用户管理,以及网络工具命令、文件传输等 4)Vi/Vim编辑器用法  

    7155 人正在学习 去看看 良许

对Linux系统进行管理时,我们经常需要通过终端窗口输入各种操作命令。在GNOME集成桌面环境下,GNOME终端(gnome- terminal)是我们经常使用的终端程序,每次运行该程序都将打开一个单独的终端窗口。当我们进行命令行操作时,有时需要打开多个终端窗口,并且希望这些窗口能同时平铺显示,那该怎么办呢?其实,借助一款小巧而实用的软件——Terminator就可以轻松实现这一功能。
使用Terminator可以在一个窗口中显示多个GNOME终端窗口,并且可以按照用户的要求对窗口进行任意分割。本文的介绍基于Linux发行版Ubuntu desktop 8.04.1。
安装Terminator软件包
Ubuntu系统默认没有安装Terminator,我们可以使用apt-get命令从Ubuntu的软件源中下载并安装该软件。在GNOME集成桌面环境中,打开一个终端窗口,输入以下命令:sudo apt-get install Terminator来进行安装,Terminator的当前版本为0.8.1-1。
Terminator使用技巧
安装好Terminator软件后,我们可以在Ubuntu系统桌面的菜单“应用程序”→“附件”下找到“Terminator”项,单击该项可运行Terminator。另外,我们也可以直接在X-Window终端窗口中输入命令“terminator”来运行它。
Terminator运行后,在当前桌面显示一个终端窗口,乍一看,与GNOME的终端窗口很相似,只不过标题栏显示为“Terminator”,且没有菜单栏。
“Terminator”窗口的上方是标准的GNOME终端窗口。
1.分割终端窗口
如何通过Terminator来运行多个GNOME终端窗口呢?我们在Terminator窗口的空白区域点击鼠标右键,在弹出的快捷菜单中可以看到“水平分割”和“垂直分割”两项。“水平分割”是从水平方向将窗口分为左右两个部分,每部分放置一个终端窗口;“垂直分割”是从竖直方向将当前窗口分为上下两个部分,每部分放置一个终端窗口。
根据屏幕大小及实际需要,我们可以将Terminator窗口分割为若干个小的终端窗口。例如,我们在打开的Terminator空白窗口中,点击鼠标右键,在弹出的快捷菜单中选择“水平分割”项,此时,窗口被分为左右两个部分,在左边的终端窗口的空白处再点击鼠标右键,在弹出的快捷菜单中选择 “垂直分割”项,则左侧的终端窗口被分为上下两个终端窗口,即在一个Terminator窗口中打开了三个GNOME终端窗口。我们可以在各个终端窗口中输入命令,并可以同时查看到命令执行的结果。当执行多个需要长时间运行的命令时,我们可以随时了解各个命令的执行情况;而在多个单独的GNOME 终端窗口中执行类似操作时,往往需要在终端窗口间进行切换才能查看到所有结果。
2.关闭多个终端窗口
在Terminator窗口中添加的若干终端窗口该如何关闭呢?我们可以在每个终端窗口的命令行提示符后输入命令“exit”来关闭该窗口,也可以通过点击每个终端窗口的右键快捷菜单中的“close”项来关闭该终端窗口。
3.设置终端窗口
在Terminator窗口中添加的多终端窗口实质就是GNOME终端窗口,如要设置这些终端窗口的字体、背景色等属性,只要在标准的 GNOME终端窗口中设置就可以了。具体方法是打开一个单独的GNOME终端窗口(gnome-terminal),在程序菜单“编辑”下点击“当前配置文件”项,修改当前终端窗口的配置信息,信息保存后,在Terminator窗口中的终端窗口会同步生效,即使用新的终端窗口设置。

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