Bash Alias执行代码而不是创建Alias

Bash Alias执行代码而不是创建Alias,bash,terminal,alias,Bash,Terminal,Alias,在我的~/.bashrc文件中,我定义了以下别名: alias bwapp=服务apache2启动;服务mysql启动;火狐http://localhost/bWAPP/bWAPP/portal.php 然后,我重新启动了计算机并启动了终端,期望能够运行bwapp并启动门户,但我收到的却是: bash: alias: apache2: not found bash: alias: start: not found bash: service: command not found Reading

在我的~/.bashrc文件中,我定义了以下别名:
alias bwapp=服务apache2启动;服务mysql启动;火狐http://localhost/bWAPP/bWAPP/portal.php

然后,我重新启动了计算机并启动了终端,期望能够运行bwapp并启动门户,但我收到的却是:

bash: alias: apache2: not found
bash: alias: start: not found
bash: service: command not found
Reading profile /etc/firejail/firefox.profile
Reading profile /etc/firejail/firefox-common.profile
Reading profile /etc/firejail/disable-common.inc
Reading profile /etc/firejail/disable-devel.inc
Reading profile /etc/firejail/disable-interpreters.inc
Reading profile /etc/firejail/disable-programs.inc
Reading profile /etc/firejail/whitelist-common.inc
Reading profile /etc/firejail/whitelist-var-common.inc
Parent pid 2913, child pid 2914
Warning: skipping pango for private /etc
Warning: skipping asound.conf for private /etc
Warning: skipping pki for private /etc
Warning: skipping crypto-policies for private /etc
Warning fcopy: skipping /etc/alternatives/fakeroot.sv.1.gz, cannot find inode
Warning fcopy: skipping /etc/alternatives/faked.sv.1.gz, cannot find inode
Private /etc installed in 95.44 ms
Post-exec seccomp protector enabled
Seccomp list in: @clock,@cpu-emulation,@debug,@module,@obsolete,@raw-io,@reboot,@resources,@swap,acct,add_key,bpf,fanotify_init,io_cancel,io_destroy,io_getevents,io_setup,io_submit,ioprio_set,kcmp,keyctl,mount,name_to_handle_at,nfsservctl,ni_syscall,open_by_handle_at,personality,pivot_root,process_vm_readv,ptrace,remap_file_pages,request_key,setdomainname,sethostname,syslog,umount,umount2,userfaultfd,vhangup,vmsplice, check list: @default-keep, prelist: adjtimex,clock_adjtime,clock_settime,settimeofday,modify_ldt,lookup_dcookie,perf_event_open,process_vm_writev,delete_module,finit_module,init_module,_sysctl,afs_syscall,create_module,get_kernel_syms,getpmsg,putpmsg,query_module,security,sysfs,tuxcall,uselib,ustat,vserver,ioperm,iopl,kexec_load,kexec_file_load,reboot,set_mempolicy,migrate_pages,move_pages,mbind,swapon,swapoff,acct,add_key,bpf,fanotify_init,io_cancel,io_destroy,io_getevents,io_setup,io_submit,ioprio_set,kcmp,keyctl,mount,name_to_handle_at,nfsservctl,open_by_handle_at,personality,pivot_root,process_vm_readv,ptrace,remap_file_pages,request_key,setdomainname,sethostname,syslog,umount2,userfaultfd,vhangup,vmsplice,
Child process initialized in 366.92 ms

Parent is shutting down, bye...


如果别名包含空格、分号、管道等,则必须使用引号,例如:

alias ls='ls --color'
如果您不引用它(
alias ls=ls--color
),它将在空格处中断,因此
alias
将创建一个别名
ls=ls
,然后尝试查找一个名为
--color
的别名,该别名不存在,因此您将得到
bash:alias:--color:

在您的例子中,别名还包含不带引号的分号,以结束当前命令,因此
service…
提供
bash:service:command not found
firefox…
提供其余输出

但最终这应该是一个函数或脚本,而不是别名。请参见Unix和Linux上的。就我个人而言,我会用一个剧本:

#!/bin/bash

service apache2 start
service mysql start
firefox http://localhost/bWAPP/bWAPP/portal.php

您需要在等号后的文本周围添加引号,以将其标记为字符串。感谢您的澄清严格地说,不必引用整个正文
别名ls=ls\--color
就足够了,不过引用整个正文会让它更可读。@chepner感谢您指出这一点。我编辑以澄清。