Input, Output, Redirection in Linux.


Hôm nay chúng ta sẽ học input, output, error và redirection trong linux.
  • Standard input(0)
  • Standard output(1)
  • Standard error(2)
  • Command Line argument

Default:

  • Standard input là keyboard.
  • Standart output là terminal.

Standard input và Standard ouput

[dt]% cat       
hello cat <-- standard input , ctrl + d 
hello cat <-- standard output
[dt-arco:testing]
[dt]% 

Khi ta gõ hello cat thì standard input là keyboard, khi nhấn ctrl+d kết thúc thì sẽ in ra standard output là terminal.

Standard Error

[dt]% rm abc         
rm: cannot remove 'abc': No such file or directory
[dt-arco:testing]

Khi có lỗi thì standard error sẽ in ra terminal.

Command line argument

[dt]% echo "welcome to linux"                          
welcome to linux
[dt-arco:testing]

Chúng ta có thể redirect Standard input, output, error.

  • > : ghi đè
  • >> : ghi thêm vào

Redirecting Standard output

[dt]% cat 1>out.txt 
hello    <-- nhấn ctrl + d để kết thúc
[dt-arco:testing]

[dt]% cat out.txt   
hello
[dt-arco:testing]
[dt]% 

1 nghĩa là standard output, ta cũng không cần gõ 1 bởi vì 1 là default standard output.

[dt]% cat >out2.txt  
welcome to linux

[dt-arco:testing]
[dt]% cat out2.txt 
welcome to linux
[dt-arco:testing]
[dt]%

Redirecting Standard Error

[dt]% rm abc 2>error.txt
[dt-arco:testing]

[dt]% cat error.txt 
rm: cannot remove 'abc': No such file or directory
[dt-arco:testing]

Khi ta không có abc mà remove thì sẽ báo lỗi, lỗi này được đưa vào file error.txt. Ta dùng lệnh cat để đọc file.

Hoặc ta dùng >> để append error.

[dt]% rm abc 2>error.txt
[dt-arco:testing]

[dt]% rm test 2>>error.txt
[dt-arco:testing]

[dt]% cat error.txt
rm: cannot remove 'abc': No such file or directory
rm: cannot remove 'test': No such file or directory
[dt-arco:testing]

Redirecting both Standard Output and Error.

Ta có thể redirection output và error cùng lúc luôn dùng &.

[dt]% echo "hello" &>error3.txt
[dt-arco:testing]

[dt]% cat error3.txt
hello
[dt-arco:testing]
[dt]% 

[dt]% rm abc  &>>error3.txt
[dt-arco:testing]

[dt]% cat error3.txt
hello
rm: cannot remove 'abc': No such file or directory
[dt-arco:testing]
[dt]%

Như vậy ta đã tìm hiểu xong input, output, error, redirection rồi nhé.