دستور زیر یک عبارت را به رمزنگاری تبدیل میکند
$ echo "salam" | base64 output: c2FsYW0K $ base64 -d <<< c2FsYW0K output: salam
دستور زیر یک عبارت را به رمزنگاری تبدیل میکند
$ echo "salam" | base64 output: c2FsYW0K $ base64 -d <<< c2FsYW0K output: salam
برای pars کردن یک عبارت json میتوان از دستور زیر که تلفیقی از کد پایتون نیز میباشد استفاده نمود
echo '{"hostname":"test","domainname":"example.com"}' | python -c 'import json,sys;obj=json.load(sys.stdin);print obj["hostname"]'
برای اطلاعات بیشتر به لینک مراجعه نمایید
!!
execute last command.
!top
execute the most recent command that starts with ‘top’ (e.g. !).
!top:p
displays the command that !top would run (also adds it as the latest command in the command history).
!$
execute the last word of the previous command (same as Alt +., e.g. if last command is ‘cat tecmint.txt’, then !$ would try to run ‘tecmint.txt’).
!$:p
displays the word that !$ would execute.
!*
displays the last word of the previous command.
!*:p
displays the last word that !* would substitute.
[-f FILE, --file=FILE]
الگوها را از فابل بخواند. هر الگو در یک خط نوشته شود
The empty file contains zero patterns, and therefore matches nothing.
[-i, --ignore-case, -y]
عدم حساسیت به حروف بزرگ و کوچک
Ignore case distinctions in both the PATTERN and the input files.
y سوییچ قدیمی هست و i جدیدتری است
[-v, --invert-match]
الگوی مورد نظر را نشان ندهد
[-x, --line-regexp]Select only those lines containing matches that form whole words.$ grep -w ping #does not match “xxxpingxxx”
درصورتی چیزی پیدا کن که (دقیقا) تمام یک خط دقیق الگوی وارد شده باشد
$ grep "hello I am behrooz" sample3:hello I am behrooz sample3:hello I am behrooz! and what is this sample3:hello I am behrooz!, I am fine $ grep -x "hello I am behrooz" sample3:hello I am behrooz
Count the Number of Matches$ grep -c salam *.txt sample1.txt:7 sample2.txt:1 sample3.txt:31 sample4.txt:22
export GREP_COLOR='1;32' #setting green color for pattern
cat file.txt |grep PATTERN --color=auto
فایلهایی که الگو را دارا نمیباشند$ grep -L "how" *.txt #find all files (in the current directory) that do not contain the word "how" file1.txt file25.txt file67.txt
تنها نام فایلهایی که الگو در آن یافت شده است را نشان خواهد داد$ grep -l "how" *.txt #find all files (in the current directory) that do not contain the word "how"
file1.txt
file25.txt
file67.txt
توقف بعد از اینکه تعداد مشخص شده پیدا شده باشد
Quiet; do not write anything to standard outputExit immediately with zero status if any match is found, even if an error was detected.
نمایش همه ستونها بجز ستون شماره یکم و ستون شماره دوم
cat FIle | awk '{$1=$2="";print$0}'
tar:
archive: tar -cvf File.tar /directory
Extract: tar xf FileName.tar
Tar.gz:
Archive: tar czvf name.tar.gz files
Extract: tar xzvf name.tar.gz
tar.bz2:
Archive: tar -cvjSf folder.tar.bz2 folder
Extract: tar xjf File.tar.bz2
bz2:
Archive: bzip2 -z filename
[or] Archive: bzip2 filename
Extract: bunzip2 FileName.bunzip2
[or] Extract: bzip2 -d filename.bz2
rar:
archive:
Extract: unrar e FileName.rar
gz:
Archive: gzip file
Extract: gzip -d file.gz
Extract: gunzip FileName.gz
zip:
archive: zip file.zip file
archive: zip -r Folder.zip folder
Extract: unzip File.zip
7zip:
Archive: 7z a File.7z File
Extract: 7z e File.7z
directory_to_share client(share_option1,...,share_optionN)7- sudo exportfs -a
ابتدا یک فایل متنی را در برنامه vim باز نمایید
در ابتدای محدوده ctrl+v را بزنید و سپس محدوده را مشخص نمایید و سپس دکمه Shift+I را بزنید تا به حالت insert mode بروید -در حالت insert mode کاراکتر # را در ابتدای محدوده تایپ کنیدو سپس ESC را بزنید-هم اکنون کل محدوده تبدیل به کامنت شده است
نکته: با کاراکتر e به انتهای کلمه خواهید رفت
نکته: با de کلمه جاری را پاک خواهید کرد
با دستور زیر میتوان کلمات را درون فایل جایگزین نماید
sudo sed -i 's/OLD/NEW/g' FILENAME
عبارت اول یا عبارت دوم:
sudo sed -i 's/OLD|accent/NEW/g' FILENAME
حذف کاراکترهای اضافی مخفی (نظیر برنامه dos2unix)
# sed -i 's/\r//' myfile.txt
گرفتن بک آپ و بعد تغییر در فایل(بادستور زیر یک فایل با پسوند orig میسازد و سپس تغییرات را انجام میدهد-در این حالت دو فایل داریم)
sed -i'.orig' 's/this/that/gi' myfile.txt
نمای خطی که در آن کلمه word آمده باشد
sed -n '/WORD/p'
تبدیل چند تا اسپیس به یک اسپیس در متن
sed -e 's/ */ /g' فایل
حذف خطی که در آن کلمه word یافت شود(i برای این است که در فایل تغییر کند-اگر نباشد تغییر در فایل رخ نداده و فقط در خروجی مشاهده خواهد شد)
sed -i '/WORD/d' فایل
sed '1d' test
$ grep Expression File.txt
Search in file
$ grep [ -F, --fixed-strings] Expression File.txt
grep -F = fgrep
list of fixed string PATTERN (instead of regular expressions),
separated by newlines(any of which is to be matched)
$ grep –E “……”
هر چیز شش حرفی(اگر بیشتر هم شد اشکال ندارد فقط شش تا باشد)
$ cat فایل |grep -e Expression1 -e Expression2
search Multi pattern
both is equal
start with Expression
All lines have number
Search in all files in Directory looking for pattern
از این دستور می توان برای سرچی دقیق تر استفاده کرد . به این صورت که واقعا تک تک دایرکتوری ها را به صورت آنلاین جست و جو می کند
جستجوی یکی یکی فایل ها برای پیدا شدن فایل مورد نظر (برخلاف locate)
جستجوی مکان فعلی و زیر مسیر ها برای فایل هایی که با f شروع شود
find . -name “f*”
جستجو کرده و رکوردهای جستجو شده را پاک کند
find آرگومانهای ورودی -delete
جستجوی فایل و دایرکتوری در داخل پارتیشن لینوکس ( root )
find / -name file1
جستجوی فایل و دایرکتوری متعلق به user1
find / -user user1
جستجوی فایل های با پسوند bin در داخل دایرکتوری home/user1
find /home/user1 -name \*.bin
جستجوی فایل های باینری که در ۱۰۰ روز گذشته استفاده نشده اند
find /usr/bin -type f -atime +100
جستجوی فایل های ایجاد شده با تغییر کرده در طول ۱۰ روز گذشته
find /usr/bin -type f -mtime -10
جستجوی فایل های با پسوند rpm و تغییر مجوز آنها !
find / -name *.rpm -exec chmod 755 '{}' \;
جستجوی فایل های با پسوند mp3 و حذف آنها !
# find . -type f -name "*.mp3" -exec rm -f {} \;
جستجوی فایل های با پسوند rpm بدون جستجو در پارتیشن های جداشدنی مانند سی دی رام , حافظه فلش و ...
find / -xdev -name \*.rpm
پیدا کردن تمامی فایل های با پسوند log و ساختن یک فایل فشرده با فرمت bzip از آنها find
/var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2
پیدا کردن همه ی فایل های با پسوند txt و کپی آنها از یک دایرکتوری به دایرکتوری دیگر
find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents
نمایش تمام فایلهایی که پیدا شده(\ یعنی اتمام دستور)({} یعنی در اینجا پیدا شده ها را قرار بده)
جستجوی مسیرها و فایل ها -exec ls -ltrh “{}” \
پاک کردن تمام فایلهایی که پیدا شده(\ یعنی اتمام دستور)({} یعنی در اینجا پیدا شده ها را قرار
بده)
جستجوی مسیرها و فایل ها -exec rm “{}” \
نمایش همه ی فایل ها داخل پارتیشن لینوکس ( / ) که دارای مجوز مورد نظر هستند
find / -perm -u+s
از سویچ iname- برای مشخص کردن اسم فایل استفاده می کنیم
find ~/Desktop -iname "*pazhoheshi*"
از سویچ inum- برای سرچ عدد Inode ای خاص در تمامی فایل ها و دایرکتوری ها استفاده می کنیم
find ~ -inum 1723181
از سویچ perm- برای پیدا کردن تمامی فایل ها و دایرکتوری ها با پرمیشنی مشخص استفاده می کنیم
find /usr -perm 4755
توجه داشته باشید که علامت – قبل از عدد 4000 به مفهوم پیدا کردن تمامی فایل ها و دایرکتوری
هایی است که پرمیشنی بیش تر از 4000 دارد
find /usr -perm -4000
ابتدا با استفاده از سویچ -iname به دنبال تمامی فایل هایی با پسوند c می گردیم سپس به Group همه ی آن ها پرمیشن نوشتن یا همان write را اضافه می کنیم .
find ~/src -iname "*.c" -exec chmod g+w {} \;
ابتدا با استفاده از سویچ iname- تمامی فایل ها با پسوند conf در مسیر etc/ را پیدا کرده سپس تمام آن ها را در مسیر config/~ کپی می کنیم .
find /etc -iname "*.conf" -exec cp {} ~/config \;
جستجوی فایلهایی که خالی اند
# find /tmp -type f -empty
سوییچهای دستور find:
iname “ “
غیر حساس به حروف کوچک و بزرگ
iname “???”
غیر حساس بخه حروف کوچک و بزرگ و جستجوی فایل های سه حرفی
type d
جستجو براساس دایرکتوری(تمام دایرکتوری ها را می گردد)
type f
جستجوی فایل
type l
جستجوی لینک
size 100b
جستجوی فایل با حجم دقیقاً 100 بایت
size +100b
جستجوی فایل با حجم بزرگتر از 100 بایت
Size +1G
جستجوی فایلی با حجم بزرگتر از یک گیگا بایت
size 0
فایل با حجم صفر
(-atime)
جستجو بر اساس آخرین زمان دسترسی access Time
(-ctime)
جستجو بر اساس دسترسی از نوع change attribute نظیر owner، copy، touch و ...
(-mtime)
آخرین دسترسی براساس تغییر در محتوا (modify)
-atime +6
تغییرات در access time آن قدیمی تر از 6 روز باشد، بیشتر از شش روز اخیر
-atime -6
تغییرات در access time آن جدیدتر از 6 روز باشد، زمان کمتری از شش روز اخیر گذشته باشد(منفی بیانگر از زمان x تا حالا است)
-atime +1
تغییرات در access time آن قدیمی تر از 1 روز باشد، فایل هایی که دیروز تا امروز روی آن کار شده(امروز دست به فایل ها نخورده باشد)
-atime +4
تغییرات در access time آن قدیمی تر از 4 روز باشد، بیشتر از چهار روز اخیر، مثلاً هفت روز قبل
-atime -1
فایل هایی که امروز دست زده ایم، تا به لحظه حالا(جدیدتر از یک روز)
-amin -40
فایل هایی با تغییر در access در 40 دقیقه قبل تا حالا
-cmin -40
فایل هایی با تغییر در change در 40 دقیقه قبل تا حالا
-mmin -40
فایل هایی با تغییر در modify در 40 دقیقه قبل تا حالا
با استفاده از این دستور می توان در کل فایل سیستم به دنبال فایلی گشت . این دستور برای خود یک دیتابیس دارد که مسیر تمامی فایل ها و دایرکتوری ها را در خود دارد , طبیعتا اگر فایلی یا دایرکتوری ای به فایل سیستم اضافه شود دیگر با استفاده از این دستور پیدا نمی شود چرا که آدرس آن درون دیتابیس وجود ندارد
جستجوی سریع و کامل، برخلاف find که کند است و جهت مطابقت یکی یکی فایلها چک میکند،
دستور locate اطلاعات را از درون یک database که بصورت ofline است میخواند و مطابقت هارا از درون آن رکوردهای دیتابیس چک میکند
معمولا آپدیت شدن دیتابیس روزی یکبار انجام میشود و معمولا با دستورهای برنامه crown به اجرا درمی آید.
جستجوی کامل فایل سیستم جهت بروز رسانی database
updatedb
جستجوی فایل
locate نام فایل
دیدن فایلهای دیتابیس
locate -S
تنظیمات جستجوی دیتابیس در این فایل است
/etc/updated.conf
با استفاده از این دستور می توان دریافت که فایل اجرایی یک برنامه ( execute ) برای اجرا به چه کتابخانه (ها) ای وابسطه است.
برای دیدن وابستگی برنامه ی ls که به چه کتابخانههایی وابستگی دارد، ابتدا مسیر اجرایی را پیدا نموده و سپس با ldd توابع را جستجو میکنیم.
# which ls
خروجی دستور:
# /bin/ls
سپس دستور را به ldd میدهیم
# ldd /bin/ls
برای راحتی می توان به صورت زیر عمل کرد(خلاصه سازی دو مرحله در یک مرحله)
# ldd `which ls`
در مثال بالا ابتدا دستور داخل ‘` اجرا شده سپس خروجی آن دقیقا در جلوی دستور ldd قرار می گیرد.
نکته: دقیقا همین کار را برنامه ی xargs نیز انجام می دهد با این تفاوت که xargs خروجی دستور قبل را وارد ورودی دستور بعد می کند اما این روش دقیقا خروجی را در جلوی دستور ldd قرار میدهد
نکته: اگر از چند برنامه ldd بگیرید خواهید دید که یک خروجی در همه ی آن ها یکی است(مثلا مطابق زیر)
.../lib64/ld-linux-x86-64.so.2
نکته:برنامه whereis نیز همانند which عمل میکند
نمایش تمام توابع کتابخانه ای dynamic برای اجرای دستور ls
>> ldd /bin/ls
جستجوی تمام مسیرهایی که دارای تابع کتابخانه ای هستند و ذخیره آدرس ونام آنها در فایل
/etc/ld.so.cache
و در ادامه
>> ldconfig
تمام Library ها در این فایل هستند
# /etc/ld.so.cache