? ? ? 1、前台进程就是用户使用的有控制终端的进程,一旦这个终端关闭,这个进程也随之消失.
方法一 :切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本:./test.sh
方法二: 以绝对路径的方式去执行bash shell脚本:/home/user1/test.sh
方法三: 直接使用bash 或sh 来执行bash shell脚本:sh?test.sh bash test.sh.该方法执行脚本,可以不必事先设定shell的执行权限,甚至都不用写shell文件中的第一行(指定bash路径).因为方法三是将test.sh作为参数传给sh(bash)命令来执行的.这时不是test.sh自己来执行,而是被人家调用执行,所以不要执行权限
方法四: 在当前的shell环境中执行bash shell脚本: . test.sh ?source test.sh
几种方法的对比:
前三种方法执行shell脚本时都是在当前shell(称为父shell)开启一个子shell环境,此shell脚本就在这个子shell环境中执行.shell脚本执行完后子shell环境随即关闭,然后又回到父shell中.而方法四则是在当前shell中执行的 .
可以使用nohup命令忽略所有挂断(SIGHUP)信号,来实现在终端关闭后,命令不挂断地运行,nohup就是不挂起的意思( no hang up).
① [;]
如果被分号(;)所分隔的命令会连续的执行下去,就算是错误的命令也会继续执行后面的命令.
如果命令被所分隔,那么命令也会一直执行下去,但是中间有错误的命令存在就不会执行后面的命令,没错就直行至完为止.
如果每个命令被双竖线||所分隔,那么一遇到可以执行成功的命令就会停止执行后面的命令,而不管后面的命令是否正确与否.如果执行到错误的命令就是继续执行后一个命令,一直执行到遇到正确的命令为止.
指定一台主机作为信任主机,这样从这台主机登录其他机器就不需要密码了.
设置信任主机:
$ssh-keygen -t rsa //此处一路回车,生成秘钥
文本文件hostlist可以如下
#!/bin/shdoCommand(){? ?
hosts=+sed -n'/^[^#]/p'hostlist+
for ? host ?in ? $hosts
do
echo ""
echo ?HOST$host
ssh ?$host ?"$@"?
done
return 0
}
if ?[ ?$# -lt 1 ]
then
echo "$0cmd" exit?
fi
do ?Command "$@"
echo "return from doCommand"
执行命令(记得先对doCommand.s
h增加执行权限 chmod u+x doCommand.sh)
./doCommand.sh "ls -al /root/"
这样该脚本就会在每台机器上执行"ls -al /root/"这个命令,并返回结果在信任主机上.
linux命令格式:
说明:command: 命令名,相应功能的英文单词或单词的缩写 [-options]:选项,可用来对命令进行控制,也可以省略,[]代表可选 parameter1 ...:传给命令的参数:可以是零个一个或多个
一般是linux命令自带的帮助信息
如:
man是linux提供的一个手册,包含了绝大部分的命令、函数使用说明
该手册分成很多章节(section),使用man时可以指定不同的章节来浏览.
man中各个section意义如下:
man是按照手册的章节号的顺序进行搜索的.
man设置了如下的功能键:
在敲出命令的前几个字母的同时,按下tab键,系统会自动帮我们补全命令
当系统执行过一些命令后,可按上下键翻看以前的命令,history将执行过的命令列举出来
ls是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令.
ls常用参数:
Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中.
如:ls test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )
注意: 输出重定向会覆盖原来的内容,输出重定向则会追加到文件的尾部.
查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助.
管道:一个命令的输出可以通过管道做为另一个命令的输入.
管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里" | "的左右分为两端,左端塞东西(写),右端取东西(读).
clear作用为清除终端上的显示(类似于DOS的cls清屏功能),也可使用快捷键:Ctrl + l ( "l" 为字母 ).
在使用Unix/Linux的时候,经常需要更换工作目录.cd命令可以帮助用户切换工作目录.Linux所有的目录和文件名大小写敏感
cd后面可跟绝对路径,也可以跟相对路径.如果省略目录,则默认切换到当前用户的主目录.
使用pwd命令可以显示当前的工作目录,该命令很简单,直接输入pwd即可,后面不带参数.
通过mkdir命令可以创建一个新的目录.参数-p可递归创建目录.
需要注意的是新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限.
可使用rmdir命令删除一个目录.必须离开目录,并且目录必须为空目录,不然提示删除失败.
可通过rm删除文件或目录.使用rm命令要小心,因为文件删除后不能恢复.为了防止文件误删,可以在rm后使用-i参数以逐个确认要删除的文件.
常用参数及含义如下表所示:
Linux链接文件类似于Windows下的快捷方式.
链接文件分为软链接和硬链接.
软链接:软链接不占用磁盘空间,源文件删除则软链接失效.
硬链接:硬链接只能链接普通文件,不能链接目录.
使用格式:
如果没有-s选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,所以-s选项是更常见的形式.
注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径.
Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找.如果找到匹配模式, grep打印包含模式的所有行.
grep一般格式为:
在grep命令中输入字符串参数时,最好引号或双引号括起来.例如:grep'a '1.txt.
常用选项说明:
find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件.
常用用法:
cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令.
用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名.
计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据.
tar使用格式 tar [参数] 打包文件名 文件
tar命令很特殊,其参数前面可以使用"-",也可以不使用.
常用参数:
tar与gzip命令结合使用实现文件打包、压缩. tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz.
gzip使用格式如下:
gzip [选项] 被压缩文件
常用选项:
通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip.
压缩文件:zip [-r] 目标文件(没有扩展名) 源文件
解压文件:unzip -d 解压后目录文件 压缩文件
whoami该命令用户查看当前系统当前账号的用户名.可通过cat /etc/passwd查看系统用户信息.
由于系统管理员通常需要使用多种身份登录系统,例如通常使用普通用户登录系统,然后再以su命令切换到root身份对传统进行管理.这时候就可以使用whoami来查看当前用户的身份.
who命令用于查看当前所有登录系统的用户信息.
如果是图形界面,退出当前终端;
如果是使用ssh远程登录,退出登陆账户;
如果是切换后的登陆用户,退出则返回上一个登陆账号.
在Unix/Linux中添加用户账号可以使用adduser或useradd命令,因为adduser命令是指向useradd命令的一个链接,所以呢,这两个命令的使用格式完全一样.
useradd命令的使用格式如下:
useradd [参数] 新建用户账号
在Unix/Linux中,超级用户可以使用passwd命令为普通用户设置或修改用户口令.用户也可以直接使用该命令来修改自己的口令,而无需在命令后面使用用户名.
可以通过su命令切换用户,su后面可以加"-".su和su –命令不同之处在于,su -切换到对应的用户时会将当前的工作目录自动转换到切换后的用户主目录:
注意:如果是ubuntu平台,需要在命令前加"sudo",如果在某些操作需要管理员才能操作,ubuntu无需切换到root用户即可操作,只需加"sudo"即可.sudo是ubuntu平台下允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,减少了root 用户的登陆和管理时间,提高了安全性.
方法一:
方法二:
groupadd 新建组账号 groupdel 组账号 cat /etc/group 查看用户组
使用方法:usermod -g 用户组 用户名
新创建的用户,默认不能sudo,需要进行一下操作
-g用来制定这个用户默认的用户组
-G一般配合'-a'来完成向其它组添加
chmod 修改文件权限有两种使用格式:字母法与数字法.
字母法:chmod u/g/o/a +/-/= rwx 文件
cal命令用于查看当前日历,-y显示整年日历
设置时间格式(需要管理员权限):
date [MMDDhhmm[[CC]YY][.ss]] +format
显示时间格式(date '+%y,%m,%d,%H,%M,%S'):
进程是一个具有一定独立功能的程序,它是操作系统动态执行的基本单元.
ps命令可以查看进程的详细状况,常用选项(选项可以不加"-")如下:
top命令用来动态显示运行中的进程.top命令能够在运行后,在指定的时间间隔更新显示信息.可以在使用top命令时加上-d 来指定显示信息更新的时间间隔.
在top命令执行后,可以按下按键得到对显示的结果进行排序:
kill [-signal] pid
df命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况.
du命令用于统计目录或文件所占磁盘空间的大小,该命令的执行结果与df类似,du更侧重于磁盘的使用状况.
du命令的使用格式如下: du [选项] 目录或文件名
连续不中断执行
用;可以让多个命令连续知行,中间出现错误并不会中断后面命令,如
虽然第二条指令会报错,但是不会影响后面的指令,最后test目录不存在
出错停止后面指令
用分割的命令,如果没有错误会一直执行下去,出现错误立即中止,如
这回在第二个指令处就中止了
一次正确即停止
用||分割的命令,如果有错误就一直执行下去,直到一次正确立即中止,如
第一次执行第一条指令就正确,后面的不执行
第二次执行前两条都错误,直到最后一条才正确,最后一条不再执行
如果您维护多个Linux服务器,则有时您希望在所有服务器上运行相同的命令.例如,您可能希望安装/升级软件包,修补内核以及更新配置等.如果您必须登录到每个服务器并手动运行相同的命令,那将是一项繁琐的工作.
这篇文章是关于一个管理工具,它允许您一次在许多不同的机器上运行相同的命令.
通过ClusterSSH,您可以同时在多个主机上进行相同的更改.它提供了一个特殊的控制台界面,您在控制台中输入的任何内容都会自动发送到任意数量的主机.
在Linux上安装ClusterSSH
在Ubuntu,Debian或Linux Mint上安装ClusterSSH:
$ sudo apt-get install clusterssh
要在CentOS或RHEL上安装ClusterSSH,首先需要设置EPEL存储库,然后运行以下命令.
$ sudo yum install clusterssh
要在Fedora上安装ClusterSSH,只需运行:
配置ClusterSSH
安装后,第一步是定义要在其上运行命令的主机群集.为此,请按如下方式创建系统范围的ClusterSSH配置文件.
$ sudo vi / etc / clusters
当您使用任何用户定义的群集启动ClusterSSH时,它将使用ssh登录到群集中的各个主机,并在主机上运行任何用户类型的命令.
启动ClusterSSH
要启动ClusterSSH,请按如下方式运行cssh命令.
$ cssh -l dev my_cluster
在上文中,"dev"是群集中所有主机的登录ID,"my_cluster"是群集名称.
如果需要,可以指定单个主机名而不是群集名.
如果要将某些命令运行到特定的XTerm窗口,只需将焦点切换到Xterm窗口,然后像往常一样键入命令.
以下屏幕截图显示了ClusterSSH的运行情况,其中群集中有五个主机,左上角的控制台窗口是您应该键入要在所有五个主机上运行的命令的位置.
转自 嘉为教育-rhce认证_rhce培训_linux培训_linux认证_linux考证
以上就是土嘎嘎小编为大家整理的linux使用多个命令相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!