لینوکس و شبکه

لینوکس و شبکه
طبقه بندی موضوعی
آخرین مطالب
  • ۹۹/۱۱/۱۳
    java

۱۵ مطلب با موضوع «FileSystem/Search/TextFilter» ثبت شده است

۰۴
بهمن

دستور زیر یک عبارت را به رمزنگاری تبدیل میکند

$ echo "salam" | base64
output:
       c2FsYW0K

$ base64 -d <<< c2FsYW0K
output:
       salam

 

 

 

 

 

  • behrooz mohamadi nsasab
۲۱
دی

برای pars کردن یک عبارت json می‌توان از دستور زیر که تلفیقی از کد پایتون نیز می‌باشد استفاده نمود

 

echo '{"hostname":"test","domainname":"example.com"}' | python -c 'import json,sys;obj=json.load(sys.stdin);print obj["hostname"]'

 

برای اطلاعات بیشتر به لینک مراجعه نمایید

  • behrooz mohamadi nsasab
۰۱
مرداد


!! 

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.

  • behrooz mohamadi nsasab
۲۱
تیر

Matcher Selection

[-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]

الگوی مورد نظر را نشان ندهد

[-w, --word-regexp]
Select  only those lines containing matches that form whole words.
$ grep -w ping  #does not match “xxxpingxxx”
[-x, --line-regexp]

درصورتی چیزی پیدا کن که (دقیقا) تمام یک خط  دقیق الگوی وارد شده باشد

$ 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


General Output Control

[-c, --count]
Count the Number of Matches
$ grep -c salam *.txt
sample1.txt:7
sample2.txt:1
sample3.txt:31
sample4.txt:22
--color[=WHEN], --colour[=WHEN]
export GREP_COLOR='1;32'    #setting green color for pattern
cat file.txt |grep PATTERN --color=auto
[-L, --files-without-match]
فایل‌هایی که الگو را دارا نمی‌باشند
$ grep -L "how" *.txt     #find all files (in the current directory) that do not contain the word "how"
file1.txt
file25.txt
file67.txt
[-l, --files-with-matches]
تنها نام فایل‌هایی که الگو در آن یافت شده است را نشان خواهد داد
$ grep -l "how" *.txt     #find all files (in the current directory) that do not contain the word "how"
file1.txt
file25.txt
file67.txt
 [-m NUM, --max-count=NUM]
توقف بعد از اینکه تعداد مشخص شده پیدا شده باشد
[-q, --quiet, --silent]
Quiet; do not write anything to standard output
Exit immediately with zero status if any match is found, even if an error was detected.
[-s, --no-messages]
              Suppress error messages about nonexistent or unreadable files.

  • behrooz mohamadi nsasab
۲۰
اسفند

  • yum install curlftpfs             [# if error: yum install fuse ]
  • $ftphost = [FTP host]
  • $mount = [Mounted to folder]
  • $user = [FTP username]
  • $pass = [FTP password]
  • curlftpfs $ftphost $mount -o user=$user:$pass,allow_other     [# Mount the CurlFtpFS]
  • fusermount -u $mount      [# Unmount the CurlFtpFS]
                          • behrooz mohamadi nsasab
                          ۱۱
                          اسفند

                          نمایش همه ستون‌ها بجز ستون شماره یکم و ستون شماره دوم

                          cat FIle | awk '{$1=$2="";print$0}'

                          • behrooz mohamadi nsasab
                          ۰۱
                          اسفند

                          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

                          • behrooz mohamadi nsasab
                          ۰۷
                          فروردين
                          برای ساختن یک فایل سیستم از نوع NTFS از دستور زیر استفاده نمایید
                          mkntfs -Q -v -F -L “” /dev/sdb1
                          برای ساختن یک فایل سیستم از نوع EXT4 از دستور زیر استفاده نمایید
                          mkfs.ext4 -F -L “” /dev/sdb1
                          برای ساختن یک فایل سیستم از نوع FAT32 از دستور زیر استفاده نمایید
                          mkfs.fat -F32 -v -I -n " " /dev/sdb1
                          چک فایل سیستم و فیکس شدن ارورهای موجود(اگر اروری موجود باشد)
                          e2fsck -f -y -v -C 0 /dev/sdb1
                          shirink کردن (کوچک کردن حجم)
                          Shrink /dev/sdb1 from 7.50 GiB to 6.01 GiB : resize2fs -p /dev/sdb1 6306816K
                          grow کردن (بزرگ کردن حجم)
                          Grow  /dev/sdb1 from 1.39 GiB to 7.50 GiB :  resize2fs -p /dev/sdb1

                          • behrooz mohamadi nsasab
                          ۰۳
                          اسفند
                          در این آموزش می‌خواهیم هارد سرور 192.168.200.3 را به کلاینت 192.168.200.2 بعنوان پارتیشن لوکالی معرفی نماییم.
                          نیازمندی:
                          در سرور: نصب بسته  nfs-kernel-server
                          در کلاینت :‌نصب بسته  nfs-common

                          در سرور (192.168.200.3):
                          1-$ sudo apt-get update
                          2-$ sudo apt-get install nfs-common
                          3- create one DIRECTORY to share
                          4- sudo chown nobody:nogroup DIRECTORY
                          5- sudo nano /etc/exports
                          6- DIRECTORY       192.168.200.2(rw,sync,no_root_squash,no_subtree_check)
                          directory_to_share       client(share_option1,...,share_optionN)
                          7- sudo exportfs -a
                          8- sudo service nfs-kernel-server start



                          در کلاینت (192.168.200.2)
                          1- sudo apt-get update
                          2- sudo apt-get install nfs-common
                          3-create MountPoint
                          4- sudo mount 192.168.200.3:DIRECTORY    #Directory on server 192.168.200.3
                          5- df -h
                          6- sudo mount -a
                          for permanently mount:
                          7-vim /etc/fstab
                          8- 192.168.200.3:DIRECTORY    MountPoint   nfs auto,noatime,nolock,bg,nfsvers=4,intr,tcp,actimeo=1800 0 0

                          LINK
                          • behrooz mohamadi nsasab
                          ۲۸
                          بهمن

                          گذاشتن کامنت در اول چندین خط به صورت همزمان

                          ابتدا یک فایل متنی را در برنامه vim  باز نمایید
                          در ابتدای محدوده  ctrl+v  را بزنید و سپس محدوده را مشخص نمایید و سپس دکمه  Shift+I را بزنید تا به حالت insert mode بروید -در حالت insert mode کاراکتر # را در ابتدای محدوده تایپ کنیدو سپس ESC را بزنید-هم اکنون کل محدوده تبدیل به کامنت شده است


                          نکته: با کاراکتر e به انتهای کلمه خواهید رفت

                          نکته: با de کلمه جاری را پاک خواهید کرد

                          • behrooz mohamadi nsasab
                          ۱۶
                          بهمن

                          با دستور زیر میتوان کلمات را درون فایل جایگزین نماید

                          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

                          • $ sed '3d' file #Delete 3rd line 
                          • $ sed '$d' file #Delete the last line
                          • $ sed '2,4d' file # Delete a range of lines(from 2nd line till 4th line)
                          • $ sed '2,4!d' file #Delete lines other than the specified range, line other than 2nd till 4th here-پاک کردن همه خطوط بجز خطوط ذکر شده
                          • $ sed '1d;$d' file #Delete the first line AND the last line of a file
                          • $ sed '/^L/d' file #Delete all lines beginning with a particular character: 'L'  
                          • $ sed '/x$/d' file #Delete all lines ending with a particular character, 'x' حرف مورد نظر
                          • $ sed '/[xX]$/d' file #Delete all lines ending with either x or X,  i.e case-insensitive delete
                          • $ sed '/^$/d' file #Delete all blank lines in the file
                          • $ sed '/^ *$/d' file #Delete all lines which are empty or which contains just some blank spaces
                          • $ sed '/^[A-Z]*$/d' file #Delete all lines which are entirely in capital letters:
                          • $ sed '/Unix/d' file # Delete the lines containing the pattern 'Unix'
                          • $ sed '/Unix/!d' file #Delete the lines NOT containing the pattern 'Unix'
                          • $ sed '/Unix\|Linux/d' file #Delete the lines containing the pattern 'Unix' OR 'Linux'
                          • $ sed '1,/Linux/d' file #Delete the lines starting from the 1st line till encountering the pattern 'Linux'
                          • $ sed '/Linux/,$d' file # Delete the lines starting from the pattern 'Linux' till the last line
                          • $ sed '${/AIX/d;}' file #Delete the last line ONLY if it contains the pattern 'AIX'
                          • $ sed '${/AIX\|HPUX/d;}' file #Delete the last line ONLY if it contains either the pattern 'AIX' or 'HPUX'
                          • $ sed '1,4{/Solaris/d;}' file #Delete the lines containing the pattern 'Solaris' only if it is present in the lines from 1 to 4
                          • $ sed '/Unix/{N;d;}' file #Delete the line containing the pattern 'Unix' and also the next line
                          • $ sed '/Unix/{N;s/\n.*//;}' file #Delete only the next line containing the pattern 'Unix', not the very line
                          • $ sed -n '/Linux/{s/.*//;x;d;};x;p;${x;p;}' file | sed '/^$/d' #Delete the line containing the pattern 'Linux', also the line before the pattern
                          • $  sed -n '/Linux/{x;d;};1h;1!{x;p;};${x;p;}' file #Delete only the line prior to the line containing the pattern  'Linux', not the very line
                          • $ sed -n '/Linux/{N;s/.*//;x;d;};x;p;${x;p;}' file | sed '/^$/d' #Delete the line containing the pattern 'Linux', the line before, the line after

                          • behrooz mohamadi nsasab
                          ۰۳
                          آذر

                          Examples

                          $ 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

                          $ grep     -E   Expression   =   egrep     Expression
                          both is equal
                          $ grep ^Expression file
                          start with Expression
                          $ grep [0-9] file
                          All lines have number
                          $ grep Expression -R Directory
                          Search in all files in Directory looking for pattern

                          Switch

                          [-n, --line-number] #Show line number
                          [-i, --ignore-case               #Ignore case distinctions in  both  the  PATTERN  and  the  input files.
                          ]

                          • behrooz mohamadi nsasab
                          ۰۳
                          آذر

                          از این دستور می توان برای سرچی دقیق تر استفاده کرد . به این صورت که واقعا تک تک دایرکتوری ها را به صورت آنلاین جست و جو می کند
                          جستجوی یکی یکی فایل ها برای پیدا شدن فایل مورد نظر (برخلاف 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 دقیقه قبل تا حالا


                          • behrooz mohamadi nsasab
                          ۰۳
                          آذر

                          با استفاده از این دستور  می توان در کل فایل سیستم به دنبال فایلی گشت . این دستور برای خود یک دیتابیس دارد که مسیر تمامی فایل ها و دایرکتوری ها را در خود دارد , طبیعتا اگر فایلی یا دایرکتوری ای به فایل سیستم اضافه شود دیگر با استفاده از این دستور پیدا نمی شود چرا که آدرس آن درون دیتابیس وجود ندارد
                          جستجوی سریع و کامل، برخلاف find که کند است و جهت مطابقت یکی یکی فایلها چک میکند،
                          دستور locate اطلاعات را از درون یک database که بصورت ofline است میخواند و مطابقت هارا از درون آن رکوردهای دیتابیس چک میکند
                          معمولا آپدیت شدن دیتابیس روزی یکبار انجام میشود و معمولا با دستورهای برنامه crown به اجرا درمی آید.

                          جستجوی کامل فایل سیستم جهت بروز رسانی database

                          updatedb

                          جستجوی فایل

                          locate     نام فایل

                          دیدن فایلهای دیتابیس

                          locate     -S

                          تنظیمات جستجوی دیتابیس در این فایل است

                          /etc/updated.conf

                          • behrooz mohamadi nsasab
                          ۲۵
                          شهریور

                          با استفاده از این دستور می توان دریافت که فایل اجرایی یک برنامه ( 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    




                          • behrooz mohamadi nsasab