What is 'Linking' used for?
First things first, I suggest you check the official Blender Manual on the Linked Libraries chapter

1. What's "Link" usually used for?

Like references in Maya. In fact here's what's writen in the manual:


  Link creates a reference to the data in the source file such that changes made there will be reflected in the referencing file the next
  time it is reloaded. But linked data is not editable (to some extent,
  see Proxies).


2. I think append is what we're using in maya as "reference"

No, that's what links do. Appends are more like a simple import, you fully copy-paste some data from one blend file to another. Once it's done, the files have no "link" whatsoever.

2.1. How can I know if something is appended? Is there a icon showing that?

For appended content, they are no different from any other data so there is nothing to sort them apart.
As for linked libraries, they have a chain-link icon in the outliner:


And if you set your outliner to "Blender file" display mode, all your linked libraries are displayed individually at the bottom of the list:


2.2 Collection should be a "group" in maya, but why can't I move/rotate/scale a collection? I have to move/rotate/scale and object on by one?

Because groups in Maya work like a container object which has an origin point, and with this little detail comes the possibility to have a position, a rotation and a scale.
While Blender's collections are nothing more than an abstract group. Like a folder containing your files on your disk.

That's why we keep a very formal object-based hierarchy on Blender, because for now there are only objects which can be moved/rotated/scaled. Or in one word: transformed.

2.3 What's the different between "unlink" (...)

It's not implemented yet, so for now it doesn't do what it should. For what I've understood, "delete" will only remove your object from the scene, while "unlink" will also get rid of the object's materials, textures, object data, ...

2.4 There's an answer said that I can reload a linked data in outliner, but I didn't saw any reload function in outliner.

Set the display mode to "Blender file", and then you will be able to right click any linked data and have the reload operator:


3. I know there's a function "make local", I think it's "import" in maya? (...) But after I make an object "local", I can still click "make local" function again and again and again... ... I don't understand what's the different after I make something local?

It's not really like an import. The result is the same, but you added so many extra steps. It's like walking all around the city just for getting to your postal box in front of your house. If you want to import, use append.  

When you use the "make local" from the outliner, only the concerned object is made local. Not its materials, textures, and so on. So you basically made your object local, but not what comes with it so the menu is still available. It's nor intuitive at all but that's how it is for now.
If you want to make a full "make local", you can do this from the viewport's Object menu → Relations → Make Local → All.  

4. I totally can't undertand what's "Proxy Objects" used for.

That's what will give you the ability to make some changes to a linked object. But only to some extend.
This is what will enable you to link a rigged character and animate it. First you link your character (but you can't edit because it's a link). Then you make a proxy which is animatable.

5. Can I append a .blend file directly without select "collection", "object"...etc. first?

Nope. Blend file contain lots of stuff you don't always want to link or import, really. It's a bit annoying but that's also what makes blender strong : you can import pretty mutch anything from a blend file.

Good to note that once you've linked/appended something from a blend file, the next time you want to link/append it will open up where you were.

6. Can I append a file which also have and append file in it

Yes, not sure you needed to ask this though, you could have tested it for yourself.