Chia sẻ  Một số biện pháp tạo file trên linux

Mtdev
Hôm qua mình có chia sẻ về cách đọc file trên linux thông qua các cách đặc biệt cái này vô cùng hữu hiệu khi các bạn tham gia các cuộc thi an toàn thông tin như CTF..... hoặc ứng dụng xử lý khi dùng trong các phần mềm liên quan container như docker chả hạn...

1587831649546.png

Bài phần trước:
Bash:
https://vn-z.vn/threads/mot-so-cach-dung-lenh-de-doc-file-tren-linux-ma-ban-khong-tuong.21320/

Trong bài này mình sẽ chia sẻ về cách tạo 1 file mà không thông qua các editor như vim, vi áp dụng cho các chương trình bash shell khá hiệu quả:

1: Dùng lệnh echo cái này thì rất phổ thông rồi
Bash:
echo "data" > file.txt
hoặc thêm nội dung vào file
Bash:
echo "data" >> file.txt

Lưu ý khi dùng echo thì > và >> khác nhau nhé các bạn 1 dấu > sẽ xóa toàn bộ dữ liệu cũ tạo mới và 2 dấu > sẽ thêm bên dưới các bạn tránh sài nhầm rồi mất dữ liệu.

2: Dùng lệnh cp
lệnh cp như ở phần trước thì nó dùng để đọc file tuy nhiên nó cũng có thể tạo ra 1 file mới bằng cách dùng lệnh như sau:
lần trước là cp dùng file stdout để in ra nội dung file thì lần này mình dùng stdin để đưa dữ liệu vào file như sau

Bash:
LFILE=file_to_write
echo "DATA" | cp /dev/stdin "$LFILE"

3: Sử Dụng awk

Bash:
LFILE=file_to_write
awk -v LFILE=$LFILE 'BEGIN { print "DATA" > LFILE }'

4: Dùng lệnh busybox

Bash:
LFILE=file_to_write
busybox sh -c 'echo "DATA" > $LFILE'

5: dùng lệnh less.

lệnh less cho phép chúng ta đọc file thông thường tuy nhiên chúng ta dùng nó để tạo file mới khá ngon như sau:

Bash:
less file_to_write

sau đó các bạn nhấn v để chuyển qua giao diện nano để edit file.

6: sử dụng PIP

Mã:
export LFILE=/tmp/file_to_save
TF=$(mktemp -d)
echo "open('$LFILE','w+').write('DATA')" > $TF/setup.py
pip install $TF

7: sử dụng lệnh screen

Bash:
LFILE=file_to_write
screen -L -Logfile $LFILE echo DATA

hoặc:

Bash:
LFILE=file_to_write
screen -L $LFILE echo DATA

8: dùng sed
Bash:
LFILE=file_to_write
sed -n "1s/.*/DATA/w $LFILE" /etc/hosts

9: dùng lệnh openssl

Bash:
LFILE=file_to_write
echo DATA | openssl enc -out "$LFILE"
hoặc:

Bash:
LFILE=file_to_write
TF=$(mktemp)
echo "DATA" > $TF
openssl enc -in "$TF" -out "$LFILE"

10: dùng lệnh dd

Bash:
LFILE=file_to_write
echo "DATA" | dd of=$LFILE

Tạm thời 10 lệnh này đã.các lệnh này bạn muốn hiểu sâu nên đọc trên các trang man linux nhé.
 
Trả lời

gotiengviet

Búa Đá
Rất hữu ích bạn, nhất là đối với các quản trị viên server Linux sẽ hay dùng :)
 

jylzwfk

Gà con
Rất hữu ích bạn, nhất là đối với các quản trị viên server Linux sẽ hay dùng
 

AlexanderTN

Gà con
Hình như thiếu lệnh touch :p cách dùng dạng dạng như less
Đúng là cần thêm touch vào list (vì tiêu đề là tạo file). Nhưng mà touch nó chỉ tạo file chứ ko có mở file ra xong bấm v để edit như là less.
Ngoài ra mình thấy touch khá hữu ích trong việc sửa đổi thời gian truy cập/chỉnh sửa của file đã có sẵn theo ý mình. Ví dụ :
touch -c <filename> sẽ sửa thời gian chỉnh sửa cuối của file tới hiện tại.
Hay
touch -t 202202261150.30 <filename>