මගේ පරිගණක කථිකයා බීප් කරන්නේ කෙසේද?


184

බාෂ් භාවිතා කරමින්, මම පීසී ස්පීකර් බීප් කරන්නේ කෙසේද?

වගේ දෙයක් echo 'beepsound' > /dev/pcspkrහොඳයි.



Answers:


133

මම සාමාන්‍යයෙන් beepබොහෝ පද්ධතිවල ස්ථාපනය කර ඇති කුඩා උපයෝගීතාව භාවිතා කරමි . මෙම විධානය මඟින් පද්ධති ශබ්දයක් නිර්මාණය කිරීම සඳහා විවිධ ප්‍රවේශයන් උත්සාහ කරනු ඇත.

beepමෑන් පිටුවෙන් ශබ්දයක් නිර්මාණය කිරීමේ ක්‍රම 3 ක් ඇත :

  1. ෂෙල් ස්ක්‍රිප්ට් එකක බීප් නිපදවීමේ සාම්ප්‍රදායික ක්‍රමය නම් ASCII BEL( \007) අක්ෂරයක් සම්මත නිමැවුමට ලිවීම , ෂෙල් විධානයක් මඟින්

    echo -ne '\007'
    

    මෙය ක්‍රියාත්මක වන්නේ ඇමතුම් කවචයේ සම්මත ප්‍රතිදානය දැනට යම් ආකාරයක පර්යන්ත උපාංගයකට යොමු කර ඇත්නම් පමණි; එසේ නොවුවහොත්, බීප් ශබ්දය නිපදවන්නේ නැති අතර ප්‍රතිදානය යොමු කරන ඕනෑම ගොනුවක අනවශ්‍ය දූෂණයක් ඇති කරයි.

  2. බීප් ශබ්දයක් ඇති කිරීමට වෙනත් ක්‍රම තිබේ. තරමක් විශ්වාසදායක ක්‍රමයක් නම් /dev/ttyඔබේ බෙල් අක්ෂරය විවෘත කර යැවීමයි. මෙය I / O යළි හරවා යැවීමට එරෙහිව ශක්තිමත් නමුත් බීප් උත්පාදනය කිරීමට බලාපොරොත්තු වන ෂෙල් ස්ක්‍රිප්ටයට පාලක පර්යන්තයක් නොමැති අවස්ථාවකදී තවමත් අසමත් වේ, උදාහරණයක් ලෙස එය X කවුළු කළමනාකරුවෙකුගෙන් ක්‍රියාත්මක වන නිසා.

  3. තෙවන ප්‍රවේශය නම් ඔබේ එක්ස් ඩිස්ප්ලේ වෙත සම්බන්ධ වී එය බෙල් විධානයක් යැවීමයි. මෙය යුනික්ස් ටර්මිනල් උපාංගයක් මත රඳා නොපවතින නමුත් (ඇත්ත වශයෙන්ම) එක්ස් ඩිස්ප්ලේ අවශ්‍ය වේ.

beep සරලවම මෙම ක්‍රම 3 උත්සාහ කරනු ඇත.


9
beepවිධානයේ මුල් පිටුව : johnath.com/beep උබුන්ටු / ඩේබියන් මත, ඔබට එය ස්ථාපනය කළ හැකිය apt-get install beep.
රිකාඩෝ මුරි

16
ලිනක්ස් හි, බීප් කිරීම සඳහා සිව්වන බැඩාස් ක්‍රමයක් ඇත: pcspkrමොඩියුලය snd-pcspමුදා හැරීම , පැටවීම , සහ දැන් ඔබට අල්සා සවුන්ඩ් කාඩ්පතක් ඇති අතර එය ඔබේ අභ්‍යන්තර කථිකයාට ඩිජිටල් ශබ්දය පෝෂණය කිරීම සඳහා පැරණි පාසල් උපක්‍රම භාවිතා කරයි. එය පීසෝ ඉලෙක්ට්‍රික් අභ්‍යන්තර කථිකයන් සමඟ අමිහිරි ප්‍රති results ල ලබා දෙයි, නමුත් සම්භාව්‍ය අභ්‍යන්තර කථිකයන් මත, ගුණාත්මකභාවය එය කුමක් සඳහාද යන්න හොඳය. මේ ආකාරයෙන්, ඔබේ බීප් ශබ්දය සඳහා ඔබට වඩාත් නිර්මාණාත්මක බවක් ලබා ගත හැකිය;)
BatchyX

8
@isomorphismes: pcspkrහා snd-pcspකරන මොඩියුල නොව පැකේජ. භාවිතා modprobe/ modprobe -r/ lsmodඔවුන් හැසිරවීමට. ඔබේ තොරතුරු සඳහා, ඒවා linux-image-somethingදැනටමත් ස්ථාපනය කර ඇති පැකේජයේ ඇත (නැතිනම් ඔබට ලිනක්ස් කර්නලයක් නොමැත).
BatchyX

3
බීප් සාමාන්‍යයෙන්
ඩෙබියන්

4
Mchid පැවසූ පරිදි, මොඩියුලය එකතු කිරීමෙන් පසු:, modprobe snd-pcspබීප් දැන් වැඩ කරයි!
lepe

78

සටහන: සිට මෙම විසඳුමක් පිටවන්නේ කේප් කැනවරල් හි කථිකයන් සඳහා නොව, මව් .

ඇල්සා ස්පීකර්-ටෙස්ට් , විධාන රේඛා ස්පීකර් ටෙස්ට් ටෝන් උත්පාදක යන්ත‍්‍රයක් සමඟ එන අතර එය බීප් උත්පාදනය සඳහා භාවිතා කළ හැකිය:

$ speaker-test -t sine -f 1000 -l 1

බලන්න මෙම ආරුක්කු linux සංසදය නූල් .

කෙසේ වෙතත්, බීප් කාලය අත්තනෝමතික වනු ඇත, නමුත් පහත පරිදි පාලනය කළ හැකිය:

$ ( speaker-test -t sine -f 1000 )& pid=$! ; sleep 0.1s ; kill -9 $pid

අපට එය තවත් පියවරක් ඉදිරියට ගෙන ගොස් මෙම ශ්‍රිතය සමඟ බීප් එකක් ප්‍රතිදානය කළ හැකිය:

_alarm() {
  ( \speaker-test --frequency $1 --test sine )&
  pid=$!
  \sleep 0.${2}s
  \kill -9 $pid
}

එය සංඛ්‍යාත හා කාල පරාමිතීන් සමඟ හැඳින්වේ:

$ _alarm 400 200

මෙය මනසේ තබාගෙන සරල සංගීතය නිර්මාණය කළ speaker-testහැකිය. මෙම ෂෙල් පිටපත බලන්න .


1
එක් ලයිනර් ලෙස ඔබේ ක්‍රියාකාරිත්වය (සහ Ctrl-C අනුකූල වේ):timeout ${2} speaker-test --frequency ${1} --test sine
user569825

1
පිඩ් බේරා ගැනීමට සැබෑ අවශ්‍යතාවයක් නොමැත speaker-test -t sine -f 1000 -l 1 & sleep .2 && kill -9 $! , එකම දේ කරයි. කෙසේ වෙතත්, @ user569825 ක්‍රමය වඩාත් හොඳයි.
m3nda

1
අපොයි, ඒක රිදෙනවා.
ෂැඩි

77

සරලව දෝංකාර දීම \aහෝ \07මා වෙනුවෙන් වැඩ කිරීම.

$ echo -e "\a"

මෙය බොහෝ විට pcspkrකර්නල් මොඩියුලය පූරණය කිරීමට අවශ්‍ය වනු ඇත. මම මෙය RHEL හි පමණක් පරීක්ෂා කර ඇත්තෙමි, එබැවින් YMMV.

යාවත්කාලීන කරන්න

වොරන් අදහස් දැක්වීමේදී පෙන්වා දුන් පරිදි, දුරස්ථව SSH හරහා ලොග් වූ විට මෙය ක්‍රියා නොකරනු ඇත. ඉක්මන් විසඳුමක් වනුයේ ප්‍රතිදානය ඕනෑම TTY උපාංගයකට හරවා යැවීමයි (ඉතා මැනවින් භාවිතයට නොගත් එකක්). උදා:

$ echo -en "\a" > /dev/tty5

5
ඔබ එක්ස් ටර්මිනලයක් භාවිතා කරන්නේ නම් හෝ යන්ත්‍රයට ssh'd කරන්නේ නම්, මෙය ටර්මිනලය ෆ්ලෑෂ් වීමට හේතු විය හැක, මන්ද බොහෝ xterm / vt100 වර්ගයේ වැඩසටහන් BEL අක්ෂර සඳහා එය වින්‍යාස කර ඇත.
වොරන් යං

2
මෙය අර්ථවත් නමුත් එය උබුන්ටු 12.04 හි මට වැඩ කළේ නැත.
සමාවයවිකතාව

2
@ සමාවයවිකතාව: එය කොන්සෝල සඳහා මිස X11 පර්යන්ත සඳහා නොවේ. X යටතේ බීප් සඳහා
MestreLion

2
@isomorphismes: මම උබුන්ටු 12.04 භාවිතා කරනවා, සහ මා වෙනුවෙන් sudo modprobe pcspkrහරහා එක්කෝ VT යටතේ කේප් කැනවරල් හි සක්රිය කිරීමට ප්රමාණවත් විය printf "\a"හෝ beepඋපයෝගිතා.
මෙස්ට්‍රෙලියන්

3
කිසිම ක්‍රමයක් මට වැඩ කරන්නේ නැත. Ubuntu 16.04.1 LTS
ar2015


21

soxස්ථාපනය කර ඇත්නම් ශබ්ද කාඩ්පත භාවිතා කිරීම සඳහා සහ PC ස්පීකර් නොමැති නම්:

$ play -q -n synth 0.1 sin 880 || echo -e "\a"

sox බොහෝ ඩිස්ට්‍රෝ සඳහා ලබා ගත හැකිය.


2
+1 නාට්‍යයට මෙම අංගය ඇති බව මා දැන සිටියේ නැත. කිසියම් කොන්දේසියක් සපුරා ගත් පසු මට දැනුම් දීම සඳහා මම මෙය thenඇතුළත කොටසක භාවිතා කළෙමි watch. මගේ හෙඩ්ෆෝන් දිගටම තබා ගැනීමට පවා මට ඉඩ දෙයි. මෙය මට ඉතා ප්‍රයෝජනවත් විය.
andyortlieb

sudo -u USER play...
බාෂ් ෂෝ

මගේ පද්ධතියේ, playපරිශීලකයෙකු ලෙස ස්පන්දන ඕඩියෝ භාවිතා කරයි. මම හිතන්නේ එය පද්ධති වින්‍යාසය මත රඳා පවතී.
ඇලෙක්සැන්ඩර්

1
මෙය විශිෂ්ට විසඳුමකි. කිසිදු පර්යන්තයක මොඩියුල පැටවීමකින් තොරව එය ක්‍රියා කරනවා පමණක් නොව එය ඉතා විචල්‍ය වේ. ඔබට ස්ක්‍රිප්ටයකට විවිධ දැනුම්දීම් ශබ්ද ඉතා පහසුවෙන් තිබිය හැකිය. වෙනස් වන 0.1, හැකියාවන් ගොඩක් ශබ්දය දිග වෙනස් වනු ඇත! . වෙනත් පරිශීලකයින්ට PA වෙත ප්‍රවේශ වීමට ඉඩ දීම.)
confetti

13

මෙය සාක්ෂාත් කර ගැනීම සඳහා සමහර ඩිස්ට්‍රෝ වලට විධාන රේඛා උපයෝගීතා ඇත. සමහර විට ඔබට කුමක් විය හැකිදැයි අපට පැවසිය හැකිය, නැතහොත් සොයන්න (උදා: emerge -s beepජෙන්ටූ හි).

“ලබා ගත හැකි” භාවිතයෙන් ඔබ්බට ගොස්, ඔබට බීප් විමෝචනය කරන පර්ල් පිටපතක් ද කළ හැකිය, ඔබ කළ යුත්තේ:

<SomeCodeBefore>
print "\007";
<SomeCodeAfter>  

ඔබ 'බීප්' ලබා ගැනීම අවසන් කරන්නේ නම්, පහත සඳහන් දෑ අත්හදා බලන්න:

#! /bin/sh 

beep -f 500 -l 700 
beep -f 480 -l 400 
beep -f 470 -l 250 
beep -f 530 -l 300 -D 100 
beep -f 500 -l 300 -D 100 
beep -f 500 -l 300 
beep -f 400 -l 600 
beep -f 300 -l 500 
beep -f 350 -l 700 
beep -f 250 -l 600

මගේ ප්‍රශ්න ඩිස්ට්‍රෝ-අ nost ෙයවාදියා ලෙස සිටීමට මම කැමතියි, පර්ල් echo -e "\007"වෙනුවට බැෂ් වලින් වැඩ print "\007කරයිද?
ස්ටෙෆාන්

1
Te ස්ටෙෆාන් - බීප් බොහෝ සෙයින් විශ්වීය ය. කෙසේ වෙතත්, ඔබට 'echo -e "\ a" හෝ "echo -e" \ 07 "භාවිතා කිරීමෙන් ඩිස්ට්‍රෝ අ nost ෙයවාදියා ලෙස සිටිය හැකිය. චියර්ස්!
wormintrude

2
printf '\007'වෙනුවට භාවිතා කිරීම වඩා අතේ ගෙන යා හැකි වනු ඇත echo.
වැඩිදුර දැනුම් දෙන තුරු විරාමය.

4

" බීප් වැඩ කළ හැක්කේ ඔබේ පරිගණකයට සාම්ප්‍රදායික පැරණි විලාසිතාවක්" ස්පීකර් "තිබේ නම් පමණි. බොහෝ විට සියලුම ලැප්ටොප් සහ කුඩා උපාංග නොමැති නම්.

කෙසේ වෙතත් ඔවුන් බොහෝ විට ඒ වෙනුවට ඇත්තේ ශබ්ද චිපයක් සහ ඔබට අවශ්‍ය ඕනෑම ශබ්දයක් කිරීමට භාවිතා කළ හැකි ස්පීකර් එකක් හෝ කිහිපයක් ය.

එබැවින් යල් පැන ගිය උපදෙස් beepවිධානය ස්ථාපනය කිරීමට සහ / හෝ කර්නල් මොඩියුලය pcspkrඔබට පැරණි විලාසිතාවේ ස්පීකර් දෘඩාංග නොමැති විට නිහ ly ව ක්‍රියා නොකරනු ඇත.

INSTEAD: ඔබට බීප් එකක් අවශ්‍ය විට මේ වගේ ශබ්දයක් වාදනය කිරීමට උත්සාහ කරන්න:

paplay /usr/share/sounds/sound-icons/capital

මෙම භාවිතා සටහන paplay( පී ulse udio Play ) විධානය කරන මිශ්රණ වෙනත් පරිශීලක මට්ටමේ (පරිශීලක යෙදුම), ශබ්ද වඩාත් හොඳින් ඔබේ පද්ධතිය මත නොව පැරණි aplay( නාඡචදූව Play ) විධානය සාමාන්යයෙන් පමණක් එම අවස්ථාවේ දී එක් ශබ්ද වාදනය කළ හැකි. කෙසේ වෙතත්, PulseAudio ඇත්ත වශයෙන්ම ශබ්දය වාදනය කිරීමට ALSA ට කතා කරන බව සලකන්න.

භාවිතා playකිරීමට මා කලින් කළ යෝජනාව තවමත් ක්‍රියාත්මක විය හැකි නමුත්, සෙල්ලම් කරන SoX ධාවනය කිරීම අතිරික්තය.


අනෙක් සියල්ල අසමත් වූ විට මා වෙනුවෙන් වැඩ කරයි. ස්තූතියි: tredegar & hk_centos සහ වෙනත් අය.


2

උත්සාහ කරන්න

echo -n Ctrl+ V Ctrl+G

අවාසිය නම් මෙය ක්‍රියාත්මක වන්නේ ප්‍රතිදාන උපාංගය පර්යන්තයක් වූ විට පමණි, එබැවින් එය ක්‍රෝන් රැකියාවක් තුළ ක්‍රියා නොකරනු ඇත. (නමුත් ඔබ මූල නම් ඔබට /dev/consoleවහාම බීප් කිරීම සඳහා හරවා යැවිය හැකිය.)


2

ලිනක්ස් හි, වැනි මෙවලම් beepමඟින් දී ඇති ශබ්දයක් විමෝචනය කිරීම සඳහා කොන්සෝල උපාංගයේ ioctl භාවිතා කළ හැකිය. වඩාත් නිශ්චිතව කිවහොත්, ioctl beepභාවිතා කරනු ඇත KIOCSOUND, නමුත් KDMKTONEශබ්දය ජනනය කිරීම සඳහා භාවිතා කළ හැකි ioctl ද ඇත.

මා තේරුම් ගත් පරිදි, කලින් ශබ්දය ආරම්භ වන්නේ එය අවලංගු වන තෙක් පවතින අතර, දෙවැන්න කලින් තීරණය කළ කාල සීමාවක් නිර්මාණය කරයි. වැඩි විස්තර සඳහා console_ioctl(4) මෑන් පිටුව බලන්න.

එබැවින් ඔබ කරන දේ beepගැන ඔබ නොසතුටින් සිටී නම් , ඔබට මෙම ioctls වෙත කෙලින්ම පිවිසීමට කේත පේළි කිහිපයක් ලිවිය හැකිය. ඔබට පූර්ණ ප්‍රවේශයක් ඇතැයි උපකල්පනය කිරීම /dev/console, එයට මූල වරප්‍රසාද අවශ්‍ය විය හැකිය.


0

ටර්මිනලයක Ctrl+ ඔබන්න Gඉන්පසුEnter


2
මගේ පර්යන්තයේ (gnome-terminal), එය Enter නොමැතිව ක්‍රියා කරයි. පළාත් සභා කථිකයෙකුගේ පරීක්ෂණයක් සේම, මෙය මට හොඳින් පෙනේ. එය පිටපත් වල සම්පූර්ණයෙන්ම නිෂ් less ල ය.
පලෙක්

පුදුම සහගත පහත වැටීම්. මෙය සමහර පළාත් සභා වල ක්‍රියා කරයි, එය සියල්ල මත ක්‍රියා නොකරනු ඇත.
Zzzach ...

එය rxvt, urxvt, xterm, lxterm හෝ lxterminal මත ක්‍රියා නොකරයි, මගේ ටර්මිනලය දෘශ්‍ය සීනුවක් තිබේ නම් අවම වශයෙන් ෆ්ලෑෂ් නොවිය යුතුද?
විලෙම්

එය xterm මත ක්‍රියා කරයි
ක්‍රිස්
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.