echo $PATH
❑ /bin: Binaries, programs used in booting the system
❑ /usr/bin: User binaries, standard programs available to users
❑ /usr/local/bin: Local binaries, programs specific to an installation
<
>
<<
>>
ls *.deb >> mydebs.txt
این دستور نام هرچی فایل دبین در پوشه جاری باشه رو داخل یک فایل در فلدر جاری به نام mydebs.txt اضافه میکنهls *.deb > mydebs.txt
اگه فایل موجود نباشه که ساخته میشه اما در غیر این صورت فایل قبلی با مقادیر جدید جایگزین میشهps > psout.txt
sort psout.txt > pssort.out
در عبارت فوق ابتدا خروجی دستور ps رو در یک فایل ذخیره میکنیم و بعد خروجی رو با دستور sort منظم میکنیم و در یک فایل دیگه ذخیره میکنیمps | sort > pssort.out
همونطوری که دیده میشه فایل میانی که اضافه هم بود حذف شد و سرعت عملیلت هم بیشتر شد در صورتی که اگه این لوله کشی مجازی بود در واقه قسمتی از حافظه به عنوان temp قرار می گرفت و خروجی ابتدا در اون ذخیره میشد و سپس sort میشد در صورتی که در عبارت لوله کشی این فرایند به صورت موازی انجام میشهcat mydata.txt | sort | uniq | > mydata.txt
اگه این فرایند مجازی بود نباید مشکلی پیش میومد اما در دستور فوق به علت موازی بودن فرایند شما فقط یه فایل خالی گیرتون میاد.for file in *
do
if grep -l POSIX $file
then
more $file
fi
done
ls my_{finger,toe}s
عبارت فوق فایل های my_fingers و my_toes رو نشون میده(در دایرکتوری جاری)gedit
kate
vim
nano
emacs
#!/bin/sh
# fist
# this is my first script and it is from forum.ubuntu.ir
for file in *
do
if grep -q POSIX $file
then
echo $file
fi
done
exit 0
chmod +x first
ویا اینکه بنویسید/bin/sh first
واگر با chmod مجوز اجرا را بهش داده باشین با دستور زیر اجراش کنینfirst
اگه با ویغامی مبنی بر اینکه دستور پیدا نشد مواجه شدید معنیش اینکه آدرس محل فایل در PATH وجود نداره پس شما چنتا راه دارین./first
که به این معنیع که این فایل در آدرس جاری قرار دارهPATH=$PATH:.
به اون نقطه آخر دقت کنین که به معنیه فولدر جاری هستشاگه یادتون یاشه گفم که اسکریپت ها هرگر مستقیم اجرا نمیشن و از طریق یک برنامه دیگه اجرا میشن پس میتونیم روش اجرای اون رو در خط اول بزاریم و یا اینکه در هنگام استفاده دستی وارید کنیم
یه سوال این chmod +x چه سطح اجرایی به فایلمون میده ؟ چرا مثلا" از chmod 775 یا chmod 777 اتفاده نمیکنیم ؟بهتره منوال chmod رو بخونید. در کل، با دستور chmod به دو روش میتونیم مجوزهای دسترسی فایل رو تغییر بدیم:
$HOME
اما زمان مقدار دهی فقط از نام اون متغیر استفاده می کنیمsalutation=Hello
echo $salutation
خروجی این دستورات همونجوری که انتظار میره Hello هستشsalutation="Yes Dear"
echo $salutation
که بازهم عبارت Yes Dear نمایش داده خواهد شد(به نظر شما چرا در ذستور اول استفاده از علامت " اختیاری بود اما در دومی اجباریه؟)salutation=7+5
echo $salutation
خروجی این دستور برای ما خیلی مهمه چون درک مارو از متغیر های استرینگ و تعریف متغیر ها در شل درست میکنه!!!7+5
هستش و نه هیچ چیز دیگه ای (یعنی عمل جمع انجام نمیشه)read salutation
و بر فرض اینکه کاربر مقداری مانند Wie geht's رو با تمام فاصله ها تایپ بکنه خروجی دستور زیرecho $salutaion
مقدار Wie geht's خواهد بود#!/bin/sh
myvar="Hi there"
echo $myvar
echo "$myvar"
echo '$myvar'
echo \$myvar
echo Enter Some Text
read myvar
echo '$myvar' now equals $myvar
exit 0
$HOME
$PATH
$PS1 [\u@ \h \W]
$PS2
$IFS
$0
$#
$$
$1 $2 $3 ....
$*
$@
myvar="Hi there"
echo $myvar
echo "$myvar"
خروجی دو تا echo با هم فرقی نداره، چون در حالت اول، دو کلمهٔ Hi و there بعنوان دو تا آرگومان دستور echo محسوب میشن و دستور echo هم تمام آرگومانهاش رو با یه فاصله بینشون چاپ میکنه. در حالت دوم فقط یه آرگومان به دستور echo داده میشه که حاوی کل رشتهٔ Hi there هست. البته در اینجا تفاوتی در خروجی وجود نداره، چون بین دو کلمه فقط یه فاصله وجود داره. اما این چطور:myvar="Hi there"
echo $myvar
echo "$myvar"
طبق توضیحاتی که دادم میشه پیشبینی کرد که echo اولی بیط یه فاصله بین دو کلمه چاپ میکنه(چون بین دو تا آرگومان، هر چند تا فاصله هم بذارید فرقی نمیکنه) اما echo دومی چند تا فاصله بین دو کلمه چاپ میکنه(در واقع عین رشتهٔ myvar$ رو چاپ میکنه.touch 'my file'
touch 'ilius\'s file'
اما این دستور اشکال داره:touch 'ilius's file'
در واقع با زدن اینتر، شل منتظر میمونه(با چاپ یه کاراکتر < منتظره تا بلوک تموم بشه) چون شما یه سینگلکوت باز کردید(آخرین کاراکتر دستور) که هنوز نبستید!touch my\ file
touch kill\ micro\$oft\'s\ office
به تکتک کاراکترها(مخصوصاً $ و \ و ' و فاصله) دقت کنید. حالا خودتون میتونید بکاسلشها رو دونهدونه حذف کنید و نتیجه رو ببینید(اسم فایلهایی که میسازه) تا متوجه تاثیر بکاسلش بشید.
Environment Variable | Description
_____________________________________________________________________________________________
$HOME | The home directory of the current user.
$PATH | A colon-separated list of directories to search for commands.
$PS1 | A command prompt, frequently $, but in bash you can use some
more complex values; for example, the string [\u@\h \W]$ is a
popular default that tells you the user, machine name, and current
directory, as well as giving a $ prompt.
$PS2 | A secondary prompt, used when prompting for additional input;
usually >.
$IFS | An input field separator; a list of characters that are used to sepa-
rate words when the shell is reading input, usually space, tab, and
newline characters.
$0 | The name of the shell script.
$# | The number of parameters passed.
$$ | The process ID of the shell script, often used inside a script for
generating unique temporary filenames; for example /tmp/tmp-
file_$$.
Parameter Variable | Description
__________________________________________________________________________________________________________
$1, $2, ... | The parameters given to the script.
$* | A list of all the parameters, in a single variable, separated by the first
| character in the environment variable IFS.
$@ | A subtle variation on $*; it doesn’t use the IFS environment variable,
| so parameters may be run together if IFS is empty.
for DIR in $PATH ; do
echo $DIR
done
حالا یه بار دیگه، اما این دفعه اولش مقدار IFS رو برابر دونقطه میذاریم:IFS=:
for DIR in $PATH ; do
echo $DIR
done
تفاوت رو دیدید؟ علتش اینه که توی متغیر محیطی PATH$ مسیر دایرکتوریها با کاراکتر : از هم جدا شده. و مقدار متغیر محیطی IFS بطور پیشفرض یه فاصله هست، پس در حالت اول توی حلقهٔ for اون رشته رو فرض میکنه که قسمتهای مختلفش(که توی حلقه استفاده میشه) با یه فاصله از هم جدا شدن. ولی احتمالاً توی مقدار متغیر PATH اصلاً کاراکتر فاصله وجود نداره(مسیر دایرکتوریها با : جدا شده و خود مسیر دایرکتوریها هم احتمالا فاصله نداره) پس در حالت اول حلقه یکبار اجرا میشه و کل متغیر PATH رو یکدفعه چاپ میکنه.IFS=''
set foo bat bam
echo "$@"
echo "$*"
unset IFS
echo "$*"
#!/bin/sh
salutation="Hello"
echo $salutation
echo "the program $0 is now running"
echo "The second parameter is $2"
echo "The first parameter is $1"
echo "The parameter list is $*"
echo "The user's home directory is $HOME"
echo "Please enter the new greeting"
read salutation
echo $salutation
echo "The script is now complited"
exit 0
./myfile foo bar baz
به خروجی دقت کنید!!!!ls -l /usr/bin/[
./test
test -f <filename>
if test -f fred.c
then
....
fi
if [ -f fred.c ]
then
....
fi
if [ -f fred.c ] ; then
....
fi
باز هم تشکر از دوستان و خسته نباشیدموافقم
پیشنهاد میکنم تاپیک مهم بشه
موفق باشید
String Comparison | Result
____________________________________________________________________________
string1 = string2 | True if the strings are equal.
string1 != string2 | True if the strings are not equal.
-n string | True if the string is not null.
-z string | True if the string is null (an empty string).
Arithmetic Comparison | Result
_______________________________________________________________________________________
expression1 -eq expression2 | True if the expressions are equal.
expression1 -ne expression2 | True if the expressions are not equal.
expression1 -gt expression2 | True if expression1 is greater than expression2.
expression1 -ge expression2 | True if expression1 is greater than or equal to
| expression2.
expression1 -lt expression2 | True if expression1 is less than expression2.
expression1 -le expression2 | True if expression1 is less than or equal to
| expression2.
! expression | True if the expression is false, and vice versa.
File Conditional | Result
_______________________________________________________________________________________________
-d file | True if the file is a directory.
-e file | True if the file exists. Note that, historically, the -e option has not
| been portable, so -f is usually used.
-f file | True if the file is a regular file.
-g file | True if set-group-id is set on file.
-r file | True if the file is readable.
-s file | True if the file has nonzero size.
-u file | True if set-user-id is set on file.
-w file | True if the file is writable.
-x file | True if the file is executable.
if condition
then
statements(TRUE)
else
statements(FALSE)
fi
#!/bin/sh
echo "Is it morning? Please answer yes or no"
read timeofday
if [ $timeofday = "yes" ]; then
echo "Good morning"
else
echo "Good afternoon"
fi
exit 0
#!/bin/sh
echo "Is it morning? Please answer yes or no"
read timeofday
if [ $timeofday = "yes" ]; then
echo "Good morning"
elif [ $timeofday = no ]; then
echo "Good afternoon"
else
echo "Sorry, $timeofday not recogonized. Enetr yes or no"
fi
exit 0
[: =: unary operator expected
if [ = "yes"]
فکر کنم مشکل معلوم شد از کجاستif [ "$timeofday" = "yes" ]
حالا اگه مقادیر رو جایگزین متغیر ها کنیم مشکلی پیش نمیاد زیرا کد به شکل زیر تبدیل میشه (با اینتر زدن بجای وارد کردن مقدار برای متغیر)if [ "" = "yes"]
خوب پس کد ما در نهایت به شکل زیر در اومد#!/bin/sh
echo "Is it morning? Please answer yes or no"
read timeofday
if [ "$timeofday" = "yes" ]; then
echo "Good morning"
elif [ "$timeofday" = no ]; then
echo "Good afternoon"
else
echo "Sorry, $timeofday not recogonized. Enetr yes or no"
fi
exit 0
که این کد خیلی امن تره و اطمینان بیشتری بهش میرهhttp://www.yolinux.com/و با کمی تشکر از مترجم گوگل ;) برای ترجمه خنده دارش
http://linux.org.mt/article/terminal
for variable in values
do
statements
done
#!/bin/sh
for foo in bar fud 43
do
echo $foo
done
exit 0
for foo in "bar fud 43"
#!/bin/sh
for file in $(ls f*.sh);do
lpr $file
done
exit 0
#!/bin/sh
for foo in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
do
echo “here we go again”
done
exit 0
while condition do
statements
done
#!/bin/sh
echo “Enter password”
read trythis
while [ “$trythis” != “secret” ]; do
echo “Sorry, try again”
read trythis
done
exit 0
#!/bin/sh
foo=1
while [ “$foo” -le 20 ]
do
echo “Here we go again”
foo=$(($foo+1))
done
exit 0
for foo in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
until condition
do
statements
done
#!/bin/sh
until who | grep “$1” > /dev/null
do
sleep 60
done
# now ring the bell and announce the expected user.
echo -e \\a
echo “**** $1 has just logged in ****”
exit 0
case variable in
pattern [ | pattern] ...) statements;;
pattern [ | pattern] ...) statements;;
...
esac
#!/bin/sh
echo “Is it morning? Please answer yes or no”
read timeofday
case “$timeofday” in
yes) echo “Good Morning”;;
no ) echo “Good Afternoon”;;
y ) echo “Good Morning”;;
n ) echo “Good Afternoon”;;
* ) echo “Sorry, answer not recognized”;;
esac
exit 0
#!/bin/sh
echo “Is it morning? Please answer yes or no”
read timeofday
case “$timeofday” in
yes | y | Yes | YES ) echo “Good Morning”;;
n* | N* ) echo “Good Afternoon”;;
* ) echo “Sorry, answer not recognized”;;
esac
exit 0
#!/bin/sh
echo “Is it morning? Please answer yes or no”
read timeofday
case “$timeofday” in
n* | N* ) echo “Good Afternoon”;;
yes | y | Yes | YES ) echo “Good Morning”;;
* ) echo “Sorry, answer not recognized”;;
esac
exit 0
y | yes | Yes | YES
از این به بعد کمتر در باره سرعت اجرا حرف میزنیم زیرا اصل سرعت تنها یک دید و برداشت توسط برنامه نویسه و به نظر اون بستگی داره#!/bin/sh
echo “Is it morning? Please answer yes or no”
read timeofday
case “$timeofday” in
yes | y | Yes | YES )
echo “Good Morning”
echo “Up bright and early this morning”
;;
[nN]*)
echo “Good Afternoon”
;;
*)
echo “Sorry, answer not recognized”
echo “Please answer yes or no”
exit 1
;;
esac
exit 0
[yY]|[Yy][Ee][Ss]
#!/bin/sh
echo “Is it morning? Please answer yes or no”
read timeofday
case “$timeofday” in
[yY] | [Yy] [Ee] [Ss] )
echo “Good Morning”
echo “Up bright and early this morning”
;;
[nN]*)
echo “Good Afternoon”
;;
*)
echo “Sorry, answer not recognized”
echo “Please answer yes or no”
exit 1
;;
esac
exit 0
if [ -f this_file ]; then
if [ -f that_file ]; then
if [ -f the_other_file ]; then
echo “All files present, and correct”
fi
fi
fi
if [ -f this_file ]; then
foo=”True”
elif [ -f that_file ]; then
foo=”True”
elif [ -f the_other_file ]; then
foo=”True”
else
foo=”False”
fi
if [ “$foo” = “True” ]; then
echo “One of the files exists”
fi
while [ “$foo” -le 20 ]
ایا درستش این نیست؟while [ $foo -le 20 ]
و اینcase “$timeofday” in
درستش این نیست؟case $timeofday in
و این یکی هم [yY] | [Yy] [Ee] [Ss] )
درستش اینه [yY] | [Yy][Ee][Ss] )
بعد از امتحان کردن کدها دیدم درستشون ایناست که گفتم.
[yY]|[Yy][Ee][Ss] )
T && .... = ?
F && ...= F
T || ... = T
F || ... = ?
در جاهایی که از ؟ استفاده شده منظور اینه که نتیجه معلوم نیست و به قسمت نامعلوم جمله یعنی (....) بستگی داره و باید بقیه جمله رو مطالعه کرد و همچنین || معادل با OR و عبارت && برابر با AND منطقی استstatement1 && statement2 && statement3 && ...
همونجوری که گفته شد عبارات به ترتیب از سمت چپ اجرا میشن.در صورتی که ارزش True داشته باشن بعدی هم اجرا میشه و لی اگر غلط باشه ارزش کل برابر False قرار میگیره و دیگه عبارتی اجرا نمیشه.#!/bin/sh
touch file_one
rm -f file_two
if [ -f file_one ] && echo “hello” && [ -f file_two ] && echo “ there”
then
echo “in if”
else
echo “in else”
fi
exit 0
statement1 || statement2 || statement3 || ...
if [ -f file_one ] || echo “hello” || echo “ there”
#!/bin/sh
rm -f file_one
if [ -f file_one ] || echo “hello” || echo “ there”
then
echo “in if”
else
echo “in else”
fi
exit 0
get_confirm && {
grep -v “$cdcatnum” $tracks_file > $temp_file
cat $temp_file > $tracks_file
echo
add_record_tracks
}
function_name () {
statements
}
#!/bin/sh
foo() {
echo “Function foo is executing”
}
echo “script starting”
foo
echo “script ended”
exit 0
foo () { echo JAY;}
...
result=”$(foo)”
#!/bin/sh
sample_text=”global variable”
foo() {
local sample_text=”local variable”
echo “Function foo is executing”
echo $sample_text
}
echo “script starting”
echo $sample_text
foo
echo “script ended”
echo $sample_text
exit 0
#!/bin/sh
yes_or_no() {
echo “Is your name $* ?”
while true
do
echo -n “Enter yes or no: “
read x
case “$x” in
y | yes ) return 0;;
n | no ) return 1;;
* ) echo “Answer yes or no”
esac
done
}
echo “Original parameters are $*”
if yes_or_no “$1”
then
echo “Hi $1, nice name”
else
echo “Never mind”
fi
exit 0
#!/bin/sh
rm -rf fred*
echo > fred1
echo > fred2
mkdir fred3
echo > fred4
for file in fred*
do
if [ -d “$file” ]; then
break;
fi
done
echo first directory starting fred was $file
rm -rf fred*
exit 0
while :
این عبارت معادل با عبارت زیرهwhile true
که هر دو یک حلقه بی پایان رو به وجود میارن: ${var:=value}
بدون : شل عبارت $var رو به صورت یک دستور تفسیر میکنه و قصد اجرای اون رو خواهد داشت#!/bin/sh
rm -f fred
if [ -f fred ]; then
:
else
echo file fred did not exist
fi
exit 0
#!/bin/sh
rm -rf fred*
echo > fred1
echo > fred2
mkdir fred3
echo > fred4
for file in fred*
do
if [ -d “$file” ]; then
echo “skipping directory $file”
continue
fi
echo file is $file
done
rm -rf fred*
exit 0
ٰٰٰٰٰٰٰٰfor x in 1 2 3
do
echo before $x
continue 1
echo after $x
done
before 1
before 2
before 3
. ./shell_script
به صورت دیفالت وقتی یک اسکریپت اجرا میشه و یا یک دستور خارجی رو اجرا میکنید یک محیط جدید (subshell) ساخته میشه و دستورات در این محیط جدید اجرا میشه اما دستور دات و منابع خارجی (دو هم معنی) باعث میشن تا در همون جایی که اسکریپت صدا زده شده یا دستور اجرا شده اجرا بشن#!/bin/sh
version=classic
PATH=/usr/local/old_bin:/usr/bin:/bin:.
PS1=”classic> “
#!/bin/sh
version=latest
PATH=/usr/local/new_bin:/usr/bin:/bin:.
PS1=” latest version> “
$ . ./classic_set
classic> echo $version
classic
classic> . latest_set
latest version> echo $version
latest
latest version>
echo -n “string to output”
گاهی هم به شکل زیرecho -e “string to output\c”
.... O0 .....
foo=10
x=foo
y='$'$x
echo $y
foo=10
x=foo
eval y='$'$x
echo $y
exec wall "Thanks for all the fish"
در این اسکریپت - شل با دستور wall جایگزین خواهد شدexec 3<afile
.... O0 .....
آقا چقدر مو داری شما!!! خدا ازت نگیره ;)
شوخی کردم ;D به دل نگیری یک وقتا
امشب خیلی خستم اما چون دوستمون firethumbs جان پست داده بودند دلم نیومد که هیچی پست ندم ولذا همینقدر رو از من قبول کنید
یک گله هم کنم از اساتید محترم
آقا چرا در این تاپیک پست نمیدید؟؟؟؟ دست مارم بگیرید. چرا تحویل نمیگیرید دوستان؟ یه لطفی مرحمتی!!!
اگه کاری ازم بر میاد بگو دریغ نمی کنم. ما هم مبتدی هستیم. بلکه چیزی یاد بگیریم.
از پست اولت شروع کردم به خوندن.
یه اشکال کوچیک هم دارم. من در همون مثال اول که گفته بودی فایل first بسازیم. اینکار را کردم ولی برنامه ای که نوشتم اجرا نمی شه.
این پیغام را می ده
The program 'first' is currently not installed. You can install it by typing:
sudo apt-get install yagiuda
bash: first: command not found
اشکال چیه ؟
البته در یک فلدر دیگه ای(جدید) این کار را کردم. می تونه اشکال این باشه؟
یه سوال دیگه شما در همون پستهای اولیه ات گفته بودی :
نکته : تغییر دادن PATH به شکل فوق برای سوپر یوزر ویا همون root کار خیلی خطرناکته چون یک شکاف امنیتی محسوب میشه چون با اجرای یک دستور توسط root ممکنه که یک برنامه اشتباه و دروغین اجرا بشه!!!(حالا پس با کپی کردن یک اسکریپت با نام یکی از دستورات مشهور و پر استفاده شما میتونید هر کار ی رو در سیستم قربانی انجام بدین Silenced چون با دسترسی root قراره اجرا بشه)
حالا سوال من :چرا؟مگه مسیر جاری را در path قرار دادن اشکال داره و چطور می شه که این خطر پیش میاد
/usr/bin/nautilus
cd /home/abcd/Desktop
cd ./Desktop
خوب واضحه که در جاهایی که بشه از آدرس دهس نسبی استفاده کرد این کار بهتره و راحت تره/home/abcd/xyz/first
./xyz/first
اگر هنوز جایی از این بحث گنگه لطفا بفرمایید تا بیشتر توضیح بدم~/xyz/first
ویا برای جابجا شدن به فولدر خانگی در ترمینال از دستور زیر استفاده کردcd ~
~/ttt/first
Exit Code | Description
____________________________________________________
126 | The file was not executable.
127 | A command was not found.
128 and above | A signal occurred.
#!/bin/sh
if [ -f .profile ]; then
exit 0
fi
exit 1
[ -f .profile ] && exit 0 || exit 1
#!/bin/sh
echo “$foo”
echo “$bar”
#!/bin/sh
foo=”The first meta-syntactic variable”
export bar=”The second meta-syntactic variable”
export2
$ export1
The second meta-syntactic variable
$
set -a
set -allexport
x=`expr $x+1`
دقت داشته باشید که کاراکتر استفاده شده در دو سمت عبارت بعد از مساوی back-tick هست!x=$(expr $x+1)
Expression Evaluation | Description
___________________________________________________________________________________
expr1 | expr2 | expr1 if expr1 is nonzero, otherwise expr2
expr1 & expr2 | Zero if either expression is zero, otherwise expr1
expr1 = expr2 | Equal
expr1 > expr2 | Greater than
expr1 >= expr2 | Greater than or equal to
expr1 < expr2 | Less than
expr1 <= expr2 | Less than or equal to
expr1 != expr2 | Not equal
expr1 + expr2 | Addition
expr1 - expr2 | Subtraction
expr1 * expr2 | Multiplication
expr1 / expr2 | Integer division
expr1 % expr2 | Integer modulo
X/Open suggests that we should use it in
preference to echo for generating formatted output.
printf “format string” parameter1 parameter2 ...
Escape Sequence | Description
__________________________________________________________________
\\ | Backslash character
\a | Alert (ring the bell or beep)
\b | Backspace character
\f | Form feed character
\n | Newline character
\r | Carriage return
\t | Tab character
\v | Vertical tab character
\ooo | The single character with octal value ooo
Conversion Specifier | Description
________________________________________________________
d | Output a decimal number.
c | Output a character.
s | Output a string.
% | Output the % character.
printf "%s\n" hello
hello
printf "%s %d\t%s" "Hi There" 15 People
Hi There 15 people
#!/bin/sh
echo "Is it morning? Please answer yes or no"
read timeofday
if [$timeofday = "yes" ]; then
echo "Good morning"
else
echo "Good afternoon"
fi
exit 0
hamid@hamid-desktop:~/Desktop/Learn$ /bin/sh First
Is it morning? Please answer yes or no
yes
First: 10: [yes: not found
Good afternoon
if [$timeofday = "yes" ]; then
if [ $timeofday = "yes" ]; then
راستی اگر امکانش هست دوستانی که در زمینه برنامه نویسی تجربه دارن یه دیسک شبیه دیسک هما ایجا کنن تا کسایی که سرعت اینترنتشون پایین هست بتونن ازش استفاده کنن
من خودم به خاطر سرعت پایین تاحالا نتونستم در اوبونتو برنامه نویسی کنم
ممنون
راستی اگر امکانش هست دوستانی که در زمینه برنامه نویسی تجربه دارن یه دیسک شبیه دیسک هما ایجا کنن تا کسایی که سرعت اینترنتشون پایین هست بتونن ازش استفاده کنن
من خودم به خاطر سرعت پایین تاحالا نتونستم در اوبونتو برنامه نویسی کنم
ممنون
ببخشید میشه لطفا بیشتر توضیح بدید؟
IDE های برنامه نویسی رو میخاین یا آموزشش رو؟
هرکدوم رو میخاین بگین تا در روز جشن تقدیم کنم (البته قبلش بگید که باخودم بیارم)
در صورت لزوم خودم ساختش رو بر عهدا میگیرم ولی باید بیشتر شرح بدید که چی میخاین
حالا اگه یک مقایسه ساده با محص.لات لینوکس شاپ و سیتو بکنید میبینید که این بنده خدا ها وقت و انرژی و ... میذارن اما دارن مفت این سی دی هارو به ما میدن
سلام عزیز جون
چرا باید ناراحت بشم - خیلی هم خوشحال شدم
چشم
سعی میکنم مجموعه IDE های معروف رو برای لینوکس آماده کنم و در اختیار دوستان خوبمون در لینوکس شاپ و سیتو قرار بدم برای فروش در سراسر کشور
اما این پروژه زمان بره!! ولی سعی خودم رو خواهم کرد که سریع تر آماده کنمش
aptitude
سلام
از دوستان گرامی درخواست میکنم از این به بعد فقط پستهای مربوط به آموزش برنامه نویسی و هماهنگ با روند آموزش رو قرار بدن.
اگر کسی قصد تشکر، ارائه پیشهاد، تذکر مطلبی یا سوالی رو داره بصورت خصوصی برای آقای سجادی بفرسته.
پیشاپیش از همه دوستان ممنون.
Command Line Option | set Option | Description
=========================================================================================
sh -n <script> | set -o noexec | Checks for syntax errors only;
| set -n | doesn’t execute commands.
_________________________________________________________________________________________
sh -v <script> | set -o verbose | Echoes commands before
| set -v | running them.
_________________________________________________________________________________________
sh -x <script> | set -o xtrace | Echoes commands after processing
| set -x | on the command line.
_________________________________________________________________________________________
| set -o nounset | Gives an error message when an
| set -u | undefined variable is used.
set -o xtrace
و دستور زیر اون رو خاموش یا غیر فعال میکنهset +o xtrace
موقعیت exit رو هم میشه به سادگی با خطی مانند خط زیر در شل پیدا کرد که در اون exit یا سیگنال exit رو به تله انداختیم (trap) و البته معلومه که این خط حتما باید در ابتدای اسکریپت شما قرار داشته باشه!trap 'echo Exiting: critical variable = $critical_variable' EXIT
امید وارم این افزایش سرعت ناگهانی من در آموزش شما رو به دردسر نندازه و بتونید دنبال کنید این تاپیک روdialog --msgbox "hello World" 9 18
این hello world هم برای خودش چیزی شده ها. نمیدونم چرا اگه اولین برنامم این نباشه هیچی یاد نمیگیرم ???Type | Option Used to | Meaning
| Create Type |
=================================================================================================================
Check boxes | --checklist | Allows you to display a list of items, each of which
| | may be individually selected.
-----------------------------------------------------------------------------------------------------------------
Info boxes | --infobox | A simple display in a box that returns immediately,
| | without clearing the screen.
-----------------------------------------------------------------------------------------------------------------
Input boxes | --inputbox | Allows the user to type in text.
-----------------------------------------------------------------------------------------------------------------
Menu boxes | --menu | Allow the user to pick a single item from a list.
-----------------------------------------------------------------------------------------------------------------
Message boxes | --msgbox | Displays a message to the user with an OK button
| | when they wish to continue.
-----------------------------------------------------------------------------------------------------------------
Radio selection boxes | --radiolist | Allows the user to select an option from a list.
-----------------------------------------------------------------------------------------------------------------
Text boxes | --textbox | Allows you to display a file in a scrolling box.
-----------------------------------------------------------------------------------------------------------------
Yes/No boxes | --yesno | Allows you to ask a question, to which the user
| | can select either yes or no.
سلام دوستان من تازه وارد هستم دنبال یک نفر می گردم که راهنماییم کنه
من می خوام برنامه نویسی php یاد بگیرم
لطفا یکی به من بگه که باید از کجا شروع کنم؟
ممنون عزیزم از راهنماییت یه سوال دیگه برای شروع آموزشش بهتره چه کاری انجام بدم یعنی از کجا شروع کنم کلاس برم یا از منابع دیگه مثلا سایت های آموزشی وکتاب استفاده کنم؟نقلقولسلام دوستان من تازه وارد هستم دنبال یک نفر می گردم که راهنماییم کنه
من می خوام برنامه نویسی php یاد بگیرم
لطفا یکی به من بگه که باید از کجا شروع کنم؟
سلام
اگه زبان انگلیسیت خوب باشه مشکلی پیدا نمیکنی، منابع آموزشی زیادی هست فقط کافیه یه جستجو کنی. برای آموزش به زبان فارسی من سایتها و وبلاگهایی رو دیدم ولی جامع نبودن و هر کدوم یه سری نکات یا کد گذاشته بودن.
میتونی اول LAMP رو نصب کنی (Linux Apache Mysql PHP) تا سیستمت به سرور تبدیل بشه و سایتهایی که میسازی بصورت لوکال اجرا کنی یا اینکه برای شروع چون مبتدی هستی و شاید نخوای خودت رو درگیر کارهای دیگه بکنی میتونی از سایتهایی مثل http://www.writecodeonline.com/php/ (http://www.writecodeonline.com/php/) استفاده کنی تا استکریپتهای سادهای که نوشتی رو اجرا کنی
ممنون عزیزم از راهنماییت یه سوال دیگه برای شروع آموزشش بهتره چه کاری انجام بدم یعنی از کجا شروع کنم کلاس برم یا از منابع دیگه مثلا سایت های آموزشی وکتاب استفاده کنم؟انتخاب بین اینها به خیلی چیزا بستگی داره مثلا اینکه کیفیت کلاسهایی که تشکیل میشه در چه حدی هست یا منابعی که در اختیار داری مثل سایت یا کتاب خوب هستن یا نه، و مهمتر از اینها خودت با کدومش راحت هستی و بهتر یاد میگیری. رفتن به کلاس یه مزیت داره اون هم اینکه راهی که باید طی کنی مشخصه و استادی وجود داره که جواب سوالاتت رو بده ولی همین مزیت میتونه بدی رفتن به کلاس باشه، یعنی شاید اگه خودت وقت بزاری چیزای بیشتر و بهتری یاد بگیری و از وقتی که میزاری بهره بیشتری ببری. انتخاب با خودته
خیلی خیلی ممنون و متشکرمنقلقولممنون عزیزم از راهنماییت یه سوال دیگه برای شروع آموزشش بهتره چه کاری انجام بدم یعنی از کجا شروع کنم کلاس برم یا از منابع دیگه مثلا سایت های آموزشی وکتاب استفاده کنم؟انتخاب بین اینها به خیلی چیزا بستگی داره مثلا اینکه کیفیت کلاسهایی که تشکیل میشه در چه حدی هست یا منابعی که در اختیار داری مثل سایت یا کتاب خوب هستن یا نه، و مهمتر از اینها خودت با کدومش راحت هستی و بهتر یاد میگیری. رفتن به کلاس یه مزیت داره اون هم اینکه راهی که باید طی کنی مشخصه و استادی وجود داره که جواب سوالاتت رو بده ولی همین مزیت میتونه بدی رفتن به کلاس باشه، یعنی شاید اگه خودت وقت بزاری چیزای بیشتر و بهتری یاد بگیری و از وقتی که میزاری بهره بیشتری ببری. انتخاب با خودته
سلام
از دوستان کسی نمیدونه چرا آقای سجادی ادامه آموزش رو نمیگذارند ؟
من خیلی دلگرم شده بودم چون جای دیگه ای یک آموزش تو این حالت تا حالا ندیده بودم .
در ضمن انجمنی هم که معرفی کردن خالی بود.
dialog --title “Check me” --checklist “Pick Numbers” 15 25 3 1 “one” “off” 2 “two” “on” 3 “three” “off”
#!/bin/sh
# Ask some questions and collect the answer
dialog --title “Questionnaire” --msgbox “Welcome to my simple survey” 9 18
dialog --title “Confirm” --yesno “Are you willing to take part?” 9 18
if [ $? != 0 ]; then
dialog --infobox “Thank you anyway” 5 20
sleep 2
dialog --clear
exit 0
fi
dialog --title “Questionnaire” --inputbox “Please enter your name” 9 30 2>_1.txt
Q_NAME=$(cat _1.txt)
dialog --menu “$Q_NAME, what music do you like best?” 15 30 4 1 “Classical” 2
“Jazz” 3 “Country” 4 “Other” 2>_1.txt
Q_MUSIC=$(cat _1.txt)
if [ “$Q_MUSIC” == “1” ]; then
dialog --msgbox “Good choice!” 12 25
fi
sleep 5
dialog --clear
exit 0
خسته نباشی :)
آقا فکر گنم اگه میشد برات تشکر فرستاد تا حالا رکورد زده بودی ;)
دمت گرم.اگه pdf بشه که دیگه محشره!
#!/bin/bash
if [ $# -lt 1 ]
then
echo "Your Should enter at least one argument to $0 Script !"
exit
fi
cd /home/$1
SPACE='du -s | cut -f 1'
echo "$1 account has used $SPACE Kilobytes of his/her space"
SPACE='du -s | cut -f 1'
باید بنویسید:SPACE=`du -s | cut -f 1`
شما بجای back quote (که دکمهش بالای Tab هست) سینگلکوت گذاشته بودید.
برای اجرای این اسکریپت شما باید اول اجازه اجرا شدن رو بهش بدینکد: [انتخاب]chmod +x first
ویا اینکه بنویسیدکد: [انتخاب]/bin/sh first
واگر با chmod مجوز اجرا را بهش داده باشین با دستور زیر اجراش کنینکد: [انتخاب]first
اگه با ویغامی مبنی بر اینکه دستور پیدا نشد مواجه شدید معنیش اینکه آدرس محل فایل در PATH وجود نداره پس شما چنتا راه دارین
۱- این فایل رو در یک آدرس معتبر کپی کنین
۲-دستور رو به شکل زیر اجرا کنینکد: [انتخاب]./first
که به این معنیع که این فایل در آدرس جاری قرار داره
۳- دایرکتوری جاری رو به PATH اضافه کنین یعنیکد: [انتخاب]PATH=$PATH:.
به اون نقطه آخر دقت کنین که به معنیه فولدر جاری هستش
۴-ویا اینکه با همون روش بند ۳ آدرس مطلق فلدر جاری رو به PATH اضافه کنین تا از هر جایی بتونین اسکریپت رو اجرا کنین
سلام
دادش گلمم این آموزش ها خیلی عالییییییییییییییییییییییییی بودن.
ولی چرا دیگه ادامه نداره.
منتظر بمونیم؟
یعنی میخای بگی ایشون ازدواج کردنسلام
دادش گلمم این آموزش ها خیلی عالییییییییییییییییییییییییی بودن.
ولی چرا دیگه ادامه نداره.
منتظر بمونیم؟
میگن برنامهنویسها هیچ وقت ازدواج نمیکنن، اگه هم کردن دیگه برنامه نویس نیستن ;D
سلام
ببخشید من یه مقدار #C میدونم و برنامه های ساده ای که کارم رو راه میندازه برای ویندوز نوشتم
حالا میخواستم این برنامه هایی که نوشتم رو یجوری دوباره نویسی کنم برای لینوکس که ازشون استفاده کنم
چه زبونی شبیه به #C هست که توی ابونتو بتونم باهاش کار کنم میخوام محیط مثل #C باشه مثلا ارور بگیره و کسل کننده نباشه کار باهاش
ممنون میشم مثل همیشه راهنمایی کنید
سلام
ببخشید من یه مقدار #C میدونم و برنامه های ساده ای که کارم رو راه میندازه برای ویندوز نوشتم
حالا میخواستم این برنامه هایی که نوشتم رو یجوری دوباره نویسی کنم برای لینوکس که ازشون استفاده کنم
چه زبونی شبیه به #C هست که توی ابونتو بتونم باهاش کار کنم میخوام محیط مثل #C باشه مثلا ارور بگیره و کسل کننده نباشه کار باهاش
ممنون میشم مثل همیشه راهنمایی کنید
سلام
ببخشید من یه مقدار #C میدونم و برنامه های ساده ای که کارم رو راه میندازه برای ویندوز نوشتم
حالا میخواستم این برنامه هایی که نوشتم رو یجوری دوباره نویسی کنم برای لینوکس که ازشون استفاده کنم
چه زبونی شبیه به #C هست که توی ابونتو بتونم باهاش کار کنم میخوام محیط مثل #C باشه مثلا ارور بگیره و کسل کننده نباشه کار باهاش
ممنون میشم مثل همیشه راهنمایی کنید
با سلامسلام
محیط مثل #C نه ! محیطی مثل Net. .
من سی شارپ کار کردم و زبان کاربردی هم هست و الان به پایتون رو آوردم.
به نظره من پایتون رو شروع کن چون هم آسانه هم شیرین هم کاربردی.(اگه سی شارپ رو بلد باشید حدودا 2 هفته ای پایتون رو یاد گرفتید. تضمینی ;) )
البته بستگی به خوده شما داره .(درس - درآمد و . . . در نظر بگیرید بعد شروع به یادگیری کنید. )
ممنون حق با شماست منظورم محیطی مثل زبون هایی تحت ویژوال استودیو هست من با بقیشون کار نکردم
البته من #C رو بصورت حرفه ای نمیدونم به خاطر همین چند نفر گفتن دنبال زبون دیگه ایی نرو و همین رو کار کن پیشرفته از طرف دیگه یه سری گفتن با چندتای دیگه هم کار کن شاید ساده تر و بهتر پیدا کنی!
نرمافزار میخونم ولی دانشگاه زیاد وقت نمیزارن رو یه مبحث هدفم اینه که فقط یوزر نباشممحیط که ربطی به زبون نداره. من به شما با توجهبه این که #C میدونی ++C با Eclipse رو پیشنهاد میدم و همینطور Qt در محیط Qt Creatorسلام ممنون
منظورم این بود که زبان نزدیک به #C باشه و محیط هم به قول دوستمون به NET. شبیه
http://www.mono-project.comسلام ممنون
اگه اطلاعات بیشتری دارید ممنون میشم بفرمایید
این طور که من متوجه شدم با این میشه به همون #C برای لینوکس کد نویسی کرد
------------------------
خیلی خیلی ممنون از دوستان برای راهنمایی
[left]int a=2;
int b=5;
cout<<a+++a+++b+++b<<endl;[/left]
سلاممگه میشه کامپایلر نداشته باشی؟؟؟
من واسه ++C هیچ کامپایلری تو لینوکس ندارم
لطفا این تکه کد رو تو دو سه تا کامپایلر کامپایل کنید و حاصل عبارت رو بگیدکد: [انتخاب][left]int a=2;
int b=5;
cout<<a+++a+++b+++b<<endl;[/left]
با تشکر
سلاممیشه 14
من واسه ++C هیچ کامپایلری تو لینوکس ندارم
لطفا این تکه کد رو تو دو سه تا کامپایلر کامپایل کنید و حاصل عبارت رو بگیدکد: [انتخاب][left]int a=2;
int b=5;
cout<<a+++a+++b+++b<<endl;[/left]
با تشکر
من الان خودم جمع کردم شد 17 ??? اشتباهم کجا بود یعنی؟سلاممیشه 14
من واسه ++C هیچ کامپایلری تو لینوکس ندارم
لطفا این تکه کد رو تو دو سه تا کامپایلر کامپایل کنید و حاصل عبارت رو بگیدکد: [انتخاب][left]int a=2;
int b=5;
cout<<a+++a+++b+++b<<endl;[/left]
با تشکر
جوابش رو که خودم میدونمسلاممیشه 14
من واسه ++C هیچ کامپایلری تو لینوکس ندارم
لطفا این تکه کد رو تو دو سه تا کامپایلر کامپایل کنید و حاصل عبارت رو بگیدکد: [انتخاب][left]int a=2;
int b=5;
cout<<a+++a+++b+++b<<endl;[/left]
با تشکر
سلام خدمت تمامی دوستان عزیزچه طوری میخاین بخرین؟ توی بازار ایران هست؟
خسته نباشید
بنده قصد خرید یه لپتاپ gazelle professional از کمپانی system 76 رو دارم
https://www.system76.com/laptops/model/gazp7
همونطور که دوستان میدونن، این لپتاپ از اول سیستم عامل اوبونتو رو داره
تواناییش هاش هم نبست به قیمتش عالیه، واسه همین شکی تو خریدش ندارم
فقط یه مورد میمونه که میخواستم بپرسم
من از پاییز امسال وارد دانشگاه میشم و توی رشته مهندسی نرم افزار مشغول به تحصیل میشم
میخواستم از دوستان برنامه نویس بپرسم که آیا هیچ مشکلی برای نوشتن برنامه با این سیستم عامل دارن با نه؟
یا در واقع بگم که نرم افزار های مخصوص برنامه نویسی، آیا همگی تو لینوکس هم هستن یا نه؟
ممنون
سلام خدمت تمامی دوستان عزیزلینوکس بهشت برنامهنویساس ! ولی خب دلیل نمیشه همه رو داشته باشه. ویژوال استودیو رو به هیچ وجه نمیتونی اون تو پیدا کنی و از دات نت کلا خبری نیست! بقیه چیزا همه هستن سالم و سر حال ! ;) و لذت هم در اینه که زبانی که استفاده میکنی کتابخانه هاش انحصاری نباشه ;)
خسته نباشید
بنده قصد خرید یه لپتاپ gazelle professional از کمپانی system 76 رو دارم
https://www.system76.com/laptops/model/gazp7
همونطور که دوستان میدونن، این لپتاپ از اول سیستم عامل اوبونتو رو داره
تواناییش هاش هم نبست به قیمتش عالیه، واسه همین شکی تو خریدش ندارم
فقط یه مورد میمونه که میخواستم بپرسم
من از پاییز امسال وارد دانشگاه میشم و توی رشته مهندسی نرم افزار مشغول به تحصیل میشم
میخواستم از دوستان برنامه نویس بپرسم که آیا هیچ مشکلی برای نوشتن برنامه با این سیستم عامل دارن با نه؟
یا در واقع بگم که نرم افزار های مخصوص برنامه نویسی، آیا همگی تو لینوکس هم هستن یا نه؟
ممنون
مگه میشه دو تا کامپایلر سی پلاس ، یک گزاره رو دو جور کامپایل کنه ؟جوابش رو که خودم میدونمسلاممیشه 14
من واسه ++C هیچ کامپایلری تو لینوکس ندارم
لطفا این تکه کد رو تو دو سه تا کامپایلر کامپایل کنید و حاصل عبارت رو بگیدکد: [انتخاب][left]int a=2;
int b=5;
cout<<a+++a+++b+++b<<endl;[/left]
با تشکر
یا میشه 14
و یا 16
میخوام ببینم کامپایلرهای مختلف چه جوابی میدن
شما با کدوم امپایلر کامپایل کردین ؟
من الان خودم جمع کردم شد 17 ??? اشتباهم کجا بود یعنی؟این را بکاپمایلید
int a=2;
int b=5;
cout<<a+++a+++b+++b<<endl;
cout <<"a="<<a<<"\n b="<<b<<endl;
چه طوری میخاین بخرین؟ توی بازار ایران هست؟نه متاسفانه توی بازار ایران نیست
چه طوری میخاین بخرین؟ توی بازار ایران هست؟نه متاسفانه توی بازار ایران نیست
اما واسه من فرقی نداره چون زیاد سفر میکنم احتمالا تو یکی از سفرهام به آمریکا یا کشور دیگه ای بخرمش ^_^
________________
از بقیه دوستان هم ممنونم، یه سوال دیگه هم داشتم برنامه wine به چه صورته؟
اون رو اگر بریزم میتونه کمبود های نرم افزار ها رو برام برطرف کنه؟
من الان خودم جمع کردم شد 17 ??? اشتباهم کجا بود یعنی؟به این صورت بخونیدش:
cout<< (a++) + (a++) + (b++) + b << endl;
list<tower> towers_list ;
list<tower> :: iterator beginning=towers_list.begin();
list<tower> :: iterator temp_iter=beginning;
temp_iter--;
if(temp_iter)
cout <<"is in range"<<endl;
else
cout <<"out of range"<<endl;
l#include <iostream>
#include <list>
using namespace std;
int main ()
{
list<int> mylist;
for(int i=0;i<100;i++)
{
mylist.push_back(i);
}
list<int>::iterator temp_iter=mylist.begin();
for(int i=0;i<10000;i++)
{
temp_iter++;
}
cout <<"\n 10000th element of list:"<<*temp_iter<<"!!!"<<endl;
return 0;
}
اگر از iterator استفاده میکنید با اپراتور ! میشه فهمید.کد: [انتخاب]list<tower> :: iterator temp_iter=beginning;
if(!beginning)
cout << "Beginning is in range";
if(!temp_iter) : test.cpp:20: error: no match for ‘operator!’ in ‘!temp_iter’
test.cpp:20: note: candidates are: operator!(bool) <built-in>
فکر باید چک کنی که آیا در رنج begin و end لیست هست یا نه.خوب این پاسخ رهنمایاند بنده را به اینکه :
ولی تا آنجا که من می دونم معمولا iterator را با for استفاده می کنند که این مشکل را ندارد.
http://stackoverflow.com/questions/2062956/c-best-way-to-check-if-an-iterator-is-valid (http://stackoverflow.com/questions/2062956/c-best-way-to-check-if-an-iterator-is-valid)
if (temp_iter >towers_vector.begin() && temp_iter<towers_vector.end() )
خوب حالا راهنمایی بفرمایید کدام کانتینر است هم ویژگی های لیست را داشته باشد هم دسترسی تصادفی به عناصر؟
سلام
ببخشید من یه مقدار #C میدونم و برنامه های ساده ای که کارم رو راه میندازه برای ویندوز نوشتم
حالا میخواستم این برنامه هایی که نوشتم رو یجوری دوباره نویسی کنم برای لینوکس که ازشون استفاده کنم
چه زبونی شبیه به #C هست که توی ابونتو بتونم باهاش کار کنم میخوام محیط مثل #C باشه مثلا ارور بگیره و کسل کننده نباشه کار باهاش
ممنون میشم مثل همیشه راهنمایی کنید
$ sudo apt-get install openjdk-7-*
$ sudo apt-get install eclipse
سلام
ببخشید من یه مقدار #C میدونم و برنامه های ساده ای که کارم رو راه میندازه برای ویندوز نوشتم
حالا میخواستم این برنامه هایی که نوشتم رو یجوری دوباره نویسی کنم برای لینوکس که ازشون استفاده کنم
چه زبونی شبیه به #C هست که توی ابونتو بتونم باهاش کار کنم میخوام محیط مثل #C باشه مثلا ارور بگیره و کسل کننده نباشه کار باهاش
ممنون میشم مثل همیشه راهنمایی کنید
سلام
می بخشید! شاید چند سالی باشه که نیومدم!
و البته شما هم سال ِ پیش این سؤال رو پرسیدین!
پس جواب می دم برای اون هایی که ممکنه جدیداً به چنین مسئله این بخورن!
کسانی که قبلاً از سی شارپ استفاده می کردن می تونن ترجیحاً از جاوا استفاده کنن که خیلی سی شارپ شبیهشه!
در رابطه با این چیزی که گفتم سی شارپ شبیه جاواست یه ذره تحقیق کنین می فعهمین جرا!
اصلاً خودم می گم! سی شارپ در اصل نسخه ی ماکروسافتی شده ی جاواست! نشون به این نشون که سینتکس ها شون خیلی شبیه همه و سی شارپ بعد از جاوا اومده!
برای نصب ِ جاوا هم می تونین از این دستورات استفاده کنین!کد: [انتخاب]$ sudo apt-get install openjdk-7-*
که فکر کنم کفاف ِ تمام ِ نیاز های جاوایی تون رو بده! :دی
برای IDE هم به شخصه اکلیپس رو برای هر زبونی پیشنهاد می کنم!کد: [انتخاب]$ sudo apt-get install eclipse
امیدوارم بتونم به جامعه ی آزاد کمکی کرده باشم!
سلامت باشید و
التماس دعا!
سلام به همه
کسی میدونه برای ادامهی بحث شروع برنامه نویسی در لینوکس به چه تاپیک یا سایتی باید مراجعه کنم؟
ترجیحا هدایت بشه به سمت جاوا یا سی پلاس پلاس.
من از ابتداش خوندم و خوشم اومده بود ولی هم مشکلاتی داشتم و هم ...
به جای عبارت فوق با لوله کشی به عبارت زیر میرسیم (علامت لوله کشی | هستش)
کد: [انتخاب]
ps | sort > pssort.out
همونطوری که دیده میشه فایل میانی که اضافه هم بود حذف شد و سرعت عملیلت هم بیشتر شد در صورتی که اگه این لوله کشی مجازی بود در واقه قسمتی از حافظه به عنوان temp قرار می گرفت و خروجی ابتدا در اون ذخیره میشد و سپس sort میشد در صورتی که در عبارت لوله کشی این فرایند به صورت موازی انجام میشه
یک شاهد دیگه برای موازی انجام شدن این فرایند دستور زیره
کد: [انتخاب]
cat mydata.txt | sort | uniq | > mydata.txt
اگه این فرایند مجازی بود نباید مشکلی پیش میومد اما در دستور فوق به علت موازی بودن فرایند شما فقط یه فایل خالی گیرتون میاد.
دلیل این حرف و اتفاق هم اینه که فایل mydata.txt قبل از اینکه خونده بشه با دستور < داره جایگزین میشه(با یه فایل خالی) و لذا با نوشتن دستور فوق همیشه یک فایل خالی تحویل میگیرین
"$ mkdir -p "$HOME /bin
"$ echo 'PATH=" $HOME /bin:$PATH "' >> "$HOME /.bashrc
$ exec bash
ارور: PATH: command not found
می خواستم بدونم می تونم PATH رو به حالت قبل بر گردونم ؟if [ -f fred.c ]
then
....
fi
در این مثال نباید [ برداشته بشه تا ] معنی تست رو بده ؟#!/bin/sh
echo is it morning ?
read answer
if [ $answer = yes ]
then
echo good morning
else
echo good after noon
fi
چرا وقتی [] نباشه همچین اتفاقی رخ می دهد ؟