construct a TM decides in linear time, if valid bracket
If you are not allowed to use two or more tapes then as Yuval Filmus commented you cannot solve in linear time. Otherwise you can convert the following steps into TM instructions:

 Initially input on the tape 1, the tape 2 is empty. 
 Machine reads input symbols stored on the tape 1, and tape 2 is used as stack (for push/pop operations). 

 1)  x = Read a symbol.
 2)  If x is '[' or '(' Then
 3)    push x and go to 1)
 4)  Else If x is ')' Then
 5)    sym = pop() 
 6)    If sym != '(' Then 
 7)       Reject and Halt.
 8)    Else
 9)       go to 1) 
 10) Else If x is ']' Then
 11    sym = pop()
 12)   If sym != '[' Then 
 13)      Reject and Halt.
 14)   Else
 15)      go to 1) 
 16) Else If x is '$' Then (if end of input)
 17)   If stack is empty Then
 18)      Accept and Halt
 19)   Else
 20)      Reject and Halt
 21) Else  
 22)   Reject and Halt


I think translation to a TM of this piece of code is quite tedious work. 

In computability theory if you want to prove existence of a TM then informal description (or just description using one of the high-level programming languages) is enough. You may use a single tape TM model or multitape model. However, when dealing with time complexity selection of a model matters.