linux最经常因此命令整理

linux vim命令跳反到文档开头或最后

gg:命令将光标移动至文档开头 
G:命令将光标移动到文档末尾

<hr/>

网络

# ifconfig               # 查看所有网络接口的属性
# iptables -L            # 查看防火墙设置
# route -n               # 查看路由表
# netstat -lntp          # 查看所有监听端口
# netstat -antp          # 查看所有已经建立的连接
# netstat -s             # 查看网络统计信息

进程

# ps -ef                 # 查看所有进程
# top                    # 实时显示进程状态

[索引页]
[源码下载]

安装zip、unzip命令

yum install -y unzip zip

游玩人生Silverlight(5) – 星际竞技场[Silverlight 2.0(c#, Farseer
Physics Engine)]

解压文件

upzip  后缀为图片 1

tar zxvf  后缀为图片 2

 

作者:webabcd
物理引擎:Farseer Physics
Engine

显行号

:set  nu

介绍
使用 Silverlight 2.0(c#, Farseer Physics Engine)
开发一个放游戏:星际竞技场

vi编辑越反到稍微行

方法1:
输入:n,代表越反到第n尽,如:79,就跨反至第79行。
方法2:
输入nG,代表越反至第n推行,如79G,就逾反到第79行。

玩法
W 或者 ↑ = 前进;S 或者 ↓ = 后退:A 或者 ← = 左转;D 或者 → = 右转;J
或者 Ctrl = 开火

进程

1.查进程
    ps命令查找和经过有关的PID号:
    ps a 显示现行终端机下的富有程序,包括其他用户的次序。
    ps -A 显示有程序。
    ps c
列有程序时,显示每个程序真的的一声令下称,而无带有路径,参数或常驻服务之标示。
    ps -e 此参数的机能和指定”A”参数相同。
    ps e 列出程序时,显示每个程序所祭的环境变量。
    ps f 用ASCII字符显示树状结构,表达程序中的相互关系。
    ps -H 显示树状结构,表示程序中的相互关系。
    ps -N 显示有的次,除了实行ps指令终端机下的先后外。
    ps s 采用程序信号的格式显示程序状况。
    ps S 列出程序时,包括已中断的子程序资料。
    ps -t<终端机编号>
指定终端机编号,并列出属于该终端机的主次的光景。
    ps u 以用户为主底格式来显示程序状况。
    ps x 显示所有程序,不因为极端机来区分。
   
    最常用的法门是ps
aux,然后再度通过管道用grep命令过滤查找特定的经过,然后重新指向一定的历程展开操作。
    ps aux | grep program_filter_word,ps -ef |grep tomcat

    ps -ef|grep java|grep -v grep        
 显示有所有的java进程,去处掉当前的grep进程。

2.杀进程
   使用kill命令结束进程:kill xxx
   常用:kill -9 324
  
Linux下还提供了一个killall命令,可以一直行使过程的名而非是过程标识号,例如:#
killall -9 NAME

3.进入及过程的施行文书所在的路子下,执行文书 ./文件称

在线DEMO
图片 3

1     pwd

print working directory

打印工作途径

思路
1、使用一个开源之 Silverlight 物理引擎:Farseer Physics
Engine
2、将 Farseer Physics Engine 中之情理运算器 PhysicsSimulator
放到一个全局变量中,对 Body 和 Geom 做即时运算,
2、写个 IPhysicsControl
接口,用于描述物理对象的逐一属性,需要走与打的对象,要兑现该接口抽象出的逐条属性
3、写单抽象类(Sprite),在那个内封装好物理引擎。各种类型的情理对象的模拟器,都要再行写该抽象类的鲜独艺术GetForce()和GetTorque()即可,其分别要返回对象在眼前天天所遭遇的牵引力和力矩
4、写个 IFire 接口,所有可开火的目标还如落实该接口
5、写单控件 PhysicsBox,用于包装
IPhysicsControl,从而将模拟器计算出底位移以及碰撞结果呈现到界面及

2     ls

list short

差展示,只显示文件或目录名

重要代码
Sprite.cs(Sprite 模拟器的基类)

3     ll

list long

累加亮,等同于ls -l, 除显示文件或目录名之外

显示文件权限、类型、大小等等

图片 4using System;
图片 5using System.Net;
图片 6using System.Windows;
图片 7using System.Windows.Controls;
图片 8using System.Windows.Documents;
图片 9using System.Windows.Ink;
图片 10using System.Windows.Input;
图片 11using System.Windows.Media;
图片 12using System.Windows.Media.Animation;
图片 13using System.Windows.Shapes;
图片 14
图片 15using FarseerGames.FarseerPhysics;
图片 16using FarseerGames.FarseerPhysics.Mathematics;
图片 17using FarseerGames.FarseerPhysics.Dynamics;
图片 18using FarseerGames.FarseerPhysics.Collisions;
图片 19
图片 20namespace YYArena.Core
图片 21图片 22图片 23{
图片 24图片 25    /**//// <summary>
图片 26    /// Sprite 基类
图片 27    /// </summary>
图片 28    public abstract class Sprite
图片 29图片 30    图片 31{
图片 32        private PhysicsSimulator _physicsSimulator;
图片 33
图片 34        protected PhysicsBox playerBox;
图片 35        protected Geom playerGeometry;
图片 36
图片 37图片 38        /**//// <summary>
图片 39        /// 构造函数
图片 40        /// </summary>
图片 41        /// <param name=”physicsSimulator”>PhysicsSimulator</param>
图片 42        /// <param name=”physicsControl”>IPhysicsControl</param>
图片 43        /// <param name=”position”>初始位置</param>
图片 44        /// <param name=”angle”>初始转角</param>
图片 45        /// <param name=”originalVelocity”>初始速度</param>
图片 46        public Sprite(PhysicsSimulator physicsSimulator,
图片 47            IPhysicsControl physicsControl, Vector2 position, float angle, float originalVelocity)
图片 48图片 49        图片 50{
图片 51            _physicsSimulator = physicsSimulator;
图片 52
图片 53            playerBox = new PhysicsBox(physicsControl);
图片 54            playerBox.Body.Position = position;
图片 55            playerBox.Body.Rotation = (float)Helper.Angle2Radian(angle);
图片 56            playerBox.Body.LinearVelocity = Helper.Convert2Vector(originalVelocity, (float)Helper.Angle2Radian(angle));
图片 57
图片 58            // Body 和 Geom 的 Tag 保存也 Sprite,方便引用
图片 59            playerBox.Body.Tag = this;
图片 60            playerBox.Geom.Tag = this;
图片 61
图片 62            playerBox.Update();
图片 63        }
图片 64
图片 65图片 66        /**//// <summary>
图片 67        /// 即经常计算力和力矩
图片 68        /// </summary>
图片 69        void CompositionTarget_Rendering(object sender, EventArgs e)
图片 70图片 71        图片 72{
图片 73            if (Enabled)
图片 74图片 75            图片 76{
图片 77                var force = GetForce();
图片 78                var torque = GetTorque();
图片 79
图片 80                playerBox.Body.ApplyForce(force);
图片 81                playerBox.Body.ApplyTorque(torque);
图片 82
图片 83                playerBox.Update();
图片 84            }
图片 85        }
图片 86
图片 87图片 88        /**//// <summary>
图片 89        /// 返回 Sprite 当前给的能力
图片 90        /// </summary>
图片 91        protected abstract Vector2 GetForce();
图片 92图片 93        /**//// <summary>
图片 94        /// 返回 Sprite 当前受之力矩
图片 95        /// </summary>
图片 96        protected abstract float GetTorque();
图片 97
图片 98        public PhysicsBox PhysicsBox
图片 99图片 100        图片 101{
图片 102图片 103            get 图片 104{ return playerBox; }
图片 105        }
图片 106
图片 107        private bool _enabled = false;
图片 108图片 109        /**//// <summary>
图片 110        /// 是否启用这个 Sprite
图片 111        /// </summary>
图片 112        public bool Enabled
图片 113图片 114        图片 115{
图片 116图片 117            get 图片 118{ return _enabled; }
图片 119            set
图片 120图片 121            图片 122
图片 123                _enabled = value;
图片 124
图片 125                if (value)
图片 126图片 127                图片 128{
图片 129                    CompositionTarget.Rendering += new EventHandler(CompositionTarget_Rendering);
图片 130
图片 131                    _physicsSimulator.Add(playerBox.Body);
图片 132                    _physicsSimulator.Add(playerBox.Geom);
图片 133                }
图片 134                else
图片 135图片 136                图片 137{
图片 138                    CompositionTarget.Rendering -= new EventHandler(CompositionTarget_Rendering);
图片 139
图片 140                    GC.SuppressFinalize(this);
图片 141                    _physicsSimulator.Remove(playerBox.Body);
图片 142                    _physicsSimulator.Remove(playerBox.Geom);
图片 143                }
图片 144            }
图片 145        }
图片 146    }
图片 147}
图片 148

4     wget

用于下载

PlayerSprite.cs(玩家 Sprite 模拟器)

5     mkdir

make directory

用于创造目录

 

图片 149using System;
图片 150using System.Net;
图片 151using System.Windows;
图片 152using System.Windows.Controls;
图片 153using System.Windows.Documents;
图片 154using System.Windows.Ink;
图片 155using System.Windows.Input;
图片 156using System.Windows.Media;
图片 157using System.Windows.Media.Animation;
图片 158using System.Windows.Shapes;
图片 159
图片 160using System.Collections.Generic;
图片 161using FarseerGames.FarseerPhysics.Mathematics;
图片 162using FarseerGames.FarseerPhysics;
图片 163using FarseerGames.FarseerPhysics.Collisions;
图片 164
图片 165namespace YYArena.Core
图片 166图片 167图片 168{
图片 169图片 170    /**//// <summary>
图片 171    /// 玩家 Sprite
图片 172    /// </summary>
图片 173    public class PlayerSprite : Sprite, IFire
图片 174图片 175    图片 176{
图片 177图片 178        private List<Key> _upKeys 图片 179{ get; set; }
图片 180图片 181        private List<Key> _downKeys 图片 182{ get; set; }
图片 183图片 184        private List<Key> _leftKeys 图片 185{ get; set; }
图片 186图片 187        private List<Key> _rightKeys 图片 188{ get; set; }
图片 189图片 190        private List<Key> _fireKeys 图片 191{ get; set; }
图片 192
图片 193        private KeyboardHandler _keyHandler;
图片 194        private IPhysicsControl _physicsControl;
图片 195
图片 196图片 197        /**//// <summary>
图片 198        /// 构造函数
图片 199        /// </summary>
图片 200        /// <param name=”physicsSimulator”>PhysicsSimulator</param>
图片 201        /// <param name=”physicsControl”>IPhysicsControl</param>
图片 202        /// <param name=”position”>初始位置</param>
图片 203        /// <param name=”angle”>初始转角</param>
图片 204        /// <param name=”originalVelocity”>初始速度</param>
图片 205        /// <param name=”keyboardHandler”>KeyboardHandler</param>
图片 206        /// <param name=”up”>操作玩家向前移动的按键集合</param>
图片 207        /// <param name=”down”>操作玩家向后动的按键集合</param>
图片 208        /// <param name=”left”>操作玩家向左转动的按键集合</param>
图片 209        /// <param name=”right”>操作玩家向右侧转动的按键集合</param>
图片 210        /// <param name=”fire”>操作玩家开火的按键集合</param>
图片 211        public PlayerSprite(PhysicsSimulator physicsSimulator,
图片 212            IPhysicsControl physicsControl, Vector2 position, float angle, float originalVelocity,
图片 213            KeyboardHandler keyboardHandler,
图片 214            List<Key> up, List<Key> down, List<Key> left, List<Key> right, List<Key> fire)
图片 215            : base(physicsSimulator, physicsControl, position, angle, originalVelocity)
图片 216图片 217        图片 218{
图片 219            PrevFireDateTime = DateTime.MinValue;
图片 220            MinFireInterval = 500d;
图片 221
图片 222            _upKeys = up;
图片 223            _downKeys = down;
图片 224            _leftKeys = left;
图片 225            _rightKeys = right;
图片 226            _fireKeys = fire;
图片 227
图片 228            _keyHandler = keyboardHandler;
图片 229            _physicsControl = physicsControl;
图片 230
图片 231            CompositionTarget.Rendering += new EventHandler(CompositionTarget_Rendering);
图片 232        }
图片 233
图片 234        void CompositionTarget_Rendering(object sender, EventArgs e)
图片 235图片 236        图片 237{
图片 238            if (Enabled)
图片 239图片 240            图片 241{
图片 242                // 如果按照了开火键,是否只是开火
图片 243                if (_keyHandler.AnyKeyPressed(_fireKeys) && (DateTime.Now – PrevFireDateTime).TotalMilliseconds > MinFireInterval)
图片 244图片 245                图片 246{
图片 247                    PrevFireDateTime = DateTime.Now;
图片 248                    if (Fire != null)
图片 249                        Fire(this, EventArgs.Empty);
图片 250                }
图片 251            }
图片 252        }
图片 253
图片 254图片 255        public DateTime PrevFireDateTime 图片 256{ get; set; }
图片 257
图片 258图片 259        public double MinFireInterval 图片 260{ get; set; }
图片 261
图片 262        public event EventHandler<EventArgs> Fire;
图片 263
图片 264        protected override Vector2 GetForce()
图片 265图片 266        图片 267{
图片 268            Vector2 force = Vector2.Zero;
图片 269
图片 270            if (_keyHandler.AnyKeyPressed(_upKeys))
图片 271                force += Helper.Convert2Vector(_physicsControl.ForceAmount, playerBox.Body.Rotation);
图片 272            if (_keyHandler.AnyKeyPressed(_downKeys))
图片 273                force += Helper.Convert2Vector(_physicsControl.ForceAmount, playerBox.Body.Rotation – Helper.Angle2Radian(180));
图片 274
图片 275            // 最可怜线性速度限制
图片 276            if (playerBox.Body.LinearVelocity.Length() > _physicsControl.MaxLinearVelocity)
图片 277                force = Vector2.Zero;
图片 278
图片 279            return force;
图片 280        }
图片 281
图片 282        protected override float GetTorque()
图片 283图片 284        图片 285{
图片 286            float torque = 0;
图片 287
图片 288            if (_keyHandler.AnyKeyPressed(_leftKeys))
图片 289                torque -= _physicsControl.TorqueAmount;
图片 290            if (_keyHandler.AnyKeyPressed(_rightKeys))
图片 291                torque += _physicsControl.TorqueAmount;
图片 292
图片 293            // 用于修正 RotationalDragCoefficient (在并未其他 Torque 的情景下,如果转会小于 1.3 则使该也 0)
图片 294            // 如果非举行这修正的话,转速小于 1.3 后还会见改变好长时间
图片 295            if (!_keyHandler.AnyKeyPressed(_leftKeys) && !_keyHandler.AnyKeyPressed(_rightKeys) && Math.Abs(playerBox.Body.AngularVelocity) < 1.3)
图片 296                playerBox.Body.AngularVelocity = 0;
图片 297
图片 298            // 最老转折范围
图片 299            if (Math.Abs(playerBox.Body.AngularVelocity) > _physicsControl.MaxAngularVelocity)
图片 300                torque = 0;
图片 301
图片 302            return torque;
图片 303        }
图片 304    }
图片 305}
图片 306

6     tar

用于解压/压缩文件

解压:tar zxvf xxx.tar.gz

压缩:tar zcvf xxx.tar.gz /path

AISprite.cs(敌军 Sprite 模拟器)

7     source

受环境变量立即生效

图片 307using System;
图片 308using System.Net;
图片 309using System.Windows;
图片 310using System.Windows.Controls;
图片 311using System.Windows.Documents;
图片 312using System.Windows.Ink;
图片 313using System.Windows.Input;
图片 314using System.Windows.Media;
图片 315using System.Windows.Media.Animation;
图片 316using System.Windows.Shapes;
图片 317
图片 318using System.Collections.Generic;
图片 319using FarseerGames.FarseerPhysics.Mathematics;
图片 320
图片 321using FarseerGames.FarseerPhysics;
图片 322using FarseerGames.FarseerPhysics.Collisions;
图片 323using FarseerGames.FarseerPhysics.Dynamics;
图片 324
图片 325namespace YYArena.Core
图片 326图片 327图片 328{
图片 329图片 330    /**//// <summary>
图片 331    /// 敌军 Sprite
图片 332    /// </summary>
图片 333    public class AISprite : Sprite, IFire
图片 334图片 335    图片 336{
图片 337        private Sprite _attackTarget;
图片 338        private int _aiLevel;
图片 339        private IPhysicsControl _physicsControl;
图片 340
图片 341图片 342        /**//// <summary>
图片 343        /// 构造函数
图片 344        /// </summary>
图片 345        /// <param name=”physicsSimulator”>PhysicsSimulator</param>
图片 346        /// <param name=”physicsControl”>IPhysicsControl</param>
图片 347        /// <param name=”position”>初始位置</param>
图片 348        /// <param name=”angle”>初始转角</param>
图片 349        /// <param name=”originalVelocity”>初始速度</param>
图片 350        /// <param name=”attackTarget”>攻击目标</param>
图片 351        /// <param name=”aiLevel”>ai等级</param>
图片 352        public AISprite(PhysicsSimulator physicsSimulator,
图片 353            IPhysicsControl physicsControl, Vector2 position, float angle, float originalVelocity, Sprite attackTarget, int aiLevel)
图片 354            : base(physicsSimulator, physicsControl, position, angle, originalVelocity)
图片 355图片 356        图片 357{
图片 358            // 上次开火时间
图片 359            PrevFireDateTime = DateTime.Now.AddSeconds(3);
图片 360            // 最小开火间隔
图片 361            MinFireInterval = 3000d;
图片 362
图片 363            _attackTarget = attackTarget;
图片 364            _aiLevel = aiLevel;
图片 365            _physicsControl = physicsControl;
图片 366
图片 367            InitAI();
图片 368
图片 369            CompositionTarget.Rendering += new EventHandler(CompositionTarget_Rendering);
图片 370        }
图片 371
图片 372        private void InitAI()
图片 373图片 374        图片 375{
图片 376            // 根据 ai 等级设置极端小开火间隔
图片 377            double fireCoefficient = 1 + 30 / _aiLevel;
图片 378            MinFireInterval = Helper.GenerateRandom((int)MinFireInterval, (int)(fireCoefficient * MinFireInterval));
图片 379        }
图片 380
图片 381        void CompositionTarget_Rendering(object sender, EventArgs e)
图片 382图片 383        图片 384{
图片 385            if (Enabled && AttackTarget.Enabled)
图片 386图片 387            图片 388{
图片 389                // 是否开火
图片 390                if ((DateTime.Now – PrevFireDateTime).TotalMilliseconds > MinFireInterval)
图片 391图片 392                图片 393{
图片 394                    PrevFireDateTime = DateTime.Now;
图片 395
图片 396                    if (Fire != null)
图片 397                        Fire(this, EventArgs.Empty);
图片 398                }
图片 399            }
图片 400        }
图片 401
图片 402图片 403        public DateTime PrevFireDateTime 图片 404{ get; set; }
图片 405
图片 406图片 407        public double MinFireInterval 图片 408{ get; set; }
图片 409
图片 410        public event EventHandler<EventArgs> Fire;
图片 411
图片 412
图片 413        public Sprite AttackTarget
图片 414图片 415        图片 416{
图片 417图片 418            get 图片 419{ return _attackTarget; }
图片 420图片 421            set 图片 422{ _attackTarget = value; }
图片 423        }
图片 424
图片 425        protected override Vector2 GetForce()
图片 426图片 427        图片 428{
图片 429            Vector2 force = Vector2.Zero;
图片 430
图片 431            if (!_attackTarget.Enabled)
图片 432                return force;
图片 433
图片 434            force += Helper.Convert2Vector(_physicsControl.ForceAmount, playerBox.Body.Rotation);
图片 435
图片 436            // 根据 ai 等级做顶充分线性速度限制
图片 437            if (playerBox.Body.LinearVelocity.Length() > _physicsControl.MaxLinearVelocity * Helper.GenerateRandom(50, 200) / 1000)
图片 438                force = Vector2.Zero;
图片 439
图片 440            return force;
图片 441        }
图片 442
图片 443        protected override float GetTorque()
图片 444图片 445        图片 446{
图片 447            float torque = 0f;
图片 448
图片 449            if (!_attackTarget.Enabled)
图片 450                return torque;
图片 451
图片 452            // 按某个方向旋转,原则是为最小的旋角度对准目标
图片 453            Vector2 relativePosition = _attackTarget.PhysicsBox.Body.Position – playerBox.Body.Position;
图片 454            double targetRotation = Helper.Convert2Rotation(relativePosition);
图片 455            double currentRotation = playerBox.Body.Rotation;
图片 456            double relativeAngle = Helper.Radian2Angle(targetRotation – currentRotation);
图片 457            if (relativeAngle < 0)
图片 458                relativeAngle += 360;
图片 459
图片 460            if (relativeAngle > 1)
图片 461图片 462            图片 463{
图片 464                if (relativeAngle < 180 && relativeAngle > 0)
图片 465                    torque += _physicsControl.TorqueAmount;
图片 466                else if (relativeAngle > 180 && relativeAngle < 360)
图片 467                    torque -= _physicsControl.TorqueAmount;
图片 468            }
图片 469            else
图片 470图片 471            图片 472{
图片 473                playerBox.Body.AngularVelocity = 0;
图片 474            }
图片 475
图片 476
图片 477            // 最深转折范围
图片 478            if (Math.Abs(playerBox.Body.AngularVelocity) > _physicsControl.MaxAngularVelocity)
图片 479                torque = 0;
图片 480           
图片 481            return torque;
图片 482        }
图片 483    }
图片 484}
图片 485

8     touch

创建空文件

OK
[源码下载]

9     cd

chang directory

切换目录

10  mv

move

用以移动或更命名文件

11  rm

remove

去除文件要目录

12  groupadd/groupdel/groups

groupadd:创建用户组

groupdel:删除用户组

groups:查看用户所属组

 

13  useradd/userdel/usermod

useradd:创建用户

userdel: 删除用户

usermod:修改用户

14  passwd

改用户密码

15  chmod

用于转移文件权限

16  chgrp

用来转移文件所属组

17  chown

用来转移文件所属用户

18  yum

在线安装应用程序

 

相关文章