Pistons are blocks that will push other blocks one block in any direction when given a Redstone signal they can push up to 12 blocks. Unlike Sticky Pistons, however, they cannot pull blocks back towards them. They cannot push blocks with tile entities (a "personalized" ID that has to do with what is contained in a block, such as the data of a command block) either.
Pistons face the player when put down.
They will push their arm out when given a Redstone signal.
They will move any blocks without tile entities (up to 12 at one time) in the direction they extend.
They will not pull blocks back toward them, unlike a sticky piston, which uses a slimeball when crafting.