(1)查看所有的服务
[berry@berry:practice] service
Usage: service < option > | --status-all | [ service_name [ command | --full-restart ] ]
[berry@berry:practice] service --status-all
[ + ] acpid
[ - ] anacron
[ - ] apparmor
[ ? ] apport
[ + ] avahi-daemon
[ + ] bluetooth
[ - ] brltty
[ ? ] console-setup
[ + ] cron
[ + ] cups
[ + ] cups-browsed
[ - ] dbus
[ ? ] dns-clean
[ + ] friendly-recovery
[ - ] grub-common
[ ? ] irqbalance
[ + ] kerneloops
[ ? ] killprocs
[ ? ] kmod
[ ? ] lightdm
[ ? ] networking
[ ? ] ondemand
[ ? ] pppd-dns
[ - ] procps
[ - ] pulseaudio
[ ? ] rc.local
[ + ] resolvconf
[ - ] rsync
[ + ] rsyslog
[ + ] saned
[ ? ] sendsigs
[ ? ] speech-dispatcher
[ - ] sudo
[ ? ] thermald
[ - ] udev
[ ? ] umountfs
[ ? ] umountnfs.sh
[ ? ] umountroot
[ - ] unattended-upgrades
[ - ] urandom
[ + ] vboxadd
[ + ] vboxadd-service
[ - ] vboxadd-x11
[ + ] agentd
[ - ] x11-common
可以看出agetd服务是启动起来的。
[berry@berry:practice] ps -elf | grep agentd
5 S root 6716 1553 0 80 0 - 10845 futex_ 21:43 ? 00:00:00 /opt/cisco/anyconnect/bin/agentd
0 S berry 6966 2122 0 80 0 - 1172 pipe_w 21:48 pts/5 00:00:00 grep --color=auto agentd
[berry@berry:practice] ps -elf | grep agentd | grep -v berry
5 S root 6716 1553 0 80 0 - 10845 futex_ 21:43 ? 00:00:00 /opt/cisco/anyconnect/bin/agentd
berry那一条是运行当前命令出现的。
查看当前agentd这个服务所占用的端口号和相关ip地址和pid和服务名称
[berry@berry:practice] sudo netstat -anp | grep 6716
tcp 0 0 127.0.0.1:29754 0.0.0.0:* LISTEN 6716/agentd
unix 2 [ ] DGRAM 75522 6716/agentd
利用service+服务名称+start/stop/restart对服务进行启动,停止和重启
(1)一种是可以使用service脚本来调度,如:
service 服务名 start
service 服务名 stop
service 服务名 restart
[berry@berry:practice] service agentd status
agentd is stopped
[berry@berry:practice] sudo service agentd start
Starting up Cisco AnyConnect Secure Mobility Client Agent
[berry@berry:practice] service agentd status
agentd (pid 7000) is running
[berry@berry:practice] service agentd restart
Shutting down Cisco AnyConnect Secure Mobility Client Agent
Starting up Cisco AnyConnect Secure Mobility Client Agent
[berry@berry:practice] service agentd status
agentd (pid 7020) is running
(2)一种是直接执行某个服务自己的管理脚本,以agetd服务为例
/etc/init.d/agentd start
/etc/init.d/agentd stop
/etc/init.d/agentd restart
[berry@berry:practice] service agentd status
agentd (pid 7393) is running
[berry@berry:practice] sudo /etc/init.d/agentd stop
Shutting down Cisco AnyConnect Secure Mobility Client Agent
[berry@berry:practice] service agentd status
agentd is stopped
[berry@berry:practice] sudo /etc/init.d/agentd start
Starting up Cisco AnyConnect Secure Mobility Client Agent
[berry@berry:practice] service agentd status
agentd (pid 7707) is running
[berry@berry:practice] sudo netstat -anp | grep 7707
tcp 0 0 127.0.0.1:29754 0.0.0.0:* LISTEN 7707/agentd
unix 2 [ ] DGRAM 78741 7707/agentd
[berry@berry:practice]
端口号仍然是29754。
1. 查看Linux启动的服务
chkconfig --list 查询出所有当前运行的服务
chkconfig --list atd 查询atd服务的当前状态
2.停止所有服务并且在下次系统启动时不再启动,如下所示:
chkconfig --levels 12345 NetworkManager off
如果想查看当前处于运行状态的服务,用如下语句过滤即可
chkconfig --list |grep on
3.如果只是想当前的设置状态有效,在系统重启动后即不生效的话,可以用如下命令停止服务
service sshd stop
另外,下表是Linux系统中包括的比较齐全的服务的说明及是否需要启动的说明
服务名称 功能 默认开启 推荐 说明
NetworkManager 为了自动连接网络的服务 x 可以不用
acpid 高级配置和电源管理接口 ■ ○ 开启,高级电源管理
anacron 一个自动化运行任务的服务 ■ x 比crond高级的玩意,可以不用
apmd 高级电源管理(支持旧硬件) ■ x 可以不用,apmdacpid二选一
atd 类似于cron的任务调度系统 ■ x 按需启用,一般用cron
auditd 内核审计守护程序 ■ x 可以不用,Seliux相关
autofs 光驱NFSSMB自动加载卸载功能 ■ △ 按需启用
服务名称 功能 默认开启 推荐 说明
avahi-daemon 查找基于zeroconf协议的机器 ■ x 可以不用
avahi-dnsconfd Avahi DNS demo x 可以不用
bluetooth 蓝牙无线通信 ■ x 可以不用
clvmd Cluster LVM ■ x 集群相关
cman ■ x 集群相关
conman remote consoles managed by conmand x 可以不用
cpuspeed 调节cpu频率,可能会导致时间问题 ■ x 可以不用
crond 与计划任务 ■ ○ 强烈建议开启
cups 打印服务 ■ x 可以不用
dnsmasq dns cache服务器 ■ x 可以不用
dund supports dialup networking over bluetooth ■ x 可以不用
firstboot 系统安装后初期设定工具 ■ x 可以不用
gfs global file system ■ x 集群相关
gfs2 ■ x 集群相关
gpm console环境下的鼠标支持 ■ ○ 建议开启
haldaemon 实现硬件自动检测挂载的功能 ■ ○ 建议开启(依赖messagebus服务)
hidd 蓝牙H.I.D.服 ■ x 可以不用
httpd apache ■ △ 按需启用
ibmasm ibm硬件管理 ■ x 可以不用
ip6tables ipv6防火墙 ■ x 可以不用
ipmi 智能平台管理界面 可以监控系统状况 ■ x 可以不用
iptables ipv4防火墙 ■ △ 按需启用
ipvsadm 集群负荷分散相关 ■ x 集群相关
irda 红外线通信 ■ x 可以不用
irqbalance cpu负载均衡 ■ ○ 多核cpu以上需要
kdump 内核崩溃时转储内存运行参数用的 ■ x 可以不用
kudzu 硬件变动检测程序 ■ x 可以不用
lm_sensors cpu温度检测工具(?) ■ x 可以不用
luci cluster服务相关 ■ x 集群相关
lvm2-monitor lvm相关 ■ x 集群相关
mcstrans 在开启Selinux下用于检查context的 ■ x 可以不用Selinux相关
mdmonitor 软Raid管理工具 ■ △ 按需启用
mdmpd 软Raid管理监视工具 ■ △ 按需启用
messagebus 负责在各个系统进程之间传递消息 ■ ○ 开启haldaemon必须
microcode_ctl ■ x 可以不用
modclusterd cluster相关 ■ x 可以不用
multipathd 监控多路径设备 ■ x 可以不用
mysqld mysql数据库 △ 按需启用
named bind9 DNS服务器 △ 按需启用
netconsole 初始化网络控制日志 ■ x 可以不用
netfs 安装和卸载NFS、SAMBA和NCP网络文件系统 ■ x 可以不用
netplugd 网卡精灵进程 网线热插拔监视 ■ x 可以不用
network 网络服务 ■ ○ 开启
nfs NFS Network File System ■ x 可以不用
nfslock NFS 文件Lock守护程序 ■ x 可以不用
nscd name cache,名称服务缓存守护程式 ■ x 可以不用,named相关
ntpd 网络/系统时钟同步服务 ■ x 可以不用
oddjobd 与D-Bus相关 ■ x 可以不用
openais 与Cluster相关,Heartbeat类似 ■ △ 集群相关
pand BlueZ Bluetooth PAN ■ x 可以不用,Bluetooth相关
pcscd 智能卡、读卡器支持 ■ x 可以不用
piranha-gui 与cluster相关 ■ x 集群相关
portmap NFS/NIS用于RPC动态端口分配的守护进程 ■ x 可以不用,NFS相关
psacct 进程审计守护进程 ■ x 可以不用
pulse LVS LVM相关 x 集群相关
qdiskd 与cluster相关 ■ x 集群相关
rdisc 实现客户端的ICMP路由器发现协议 ■ x 只有一个路由器可以不用
readahead_early 预先加载特定的应用程序到内存中以提供性能 ■ ○ 开启
readahead_later 同上 ■ x 系统默认设置
restorecond Selinux关联项目 ■ x 可以不用,Selinux相磁
rgmanager 与cluster相关 ■ x 集群相关
ricci 与cluster相关 ■ x 集群相关
rpcgssd NFS相关 ■ x 可以不用,NFS相关
rpcidmapd RPC name to UID/GID mapper ■ x 可以不用,NFS相关
rpcsvcgssd NFS相关 ■ x 可以不用,NFS相关
saslauthd 使用SASL的认证守护进程,sendmail相关 ■ x 可以不用,Sendmail相关
scsi_reserve SCSI Persistent Reservations Cluster相关 x 集群相关
sendmail mail demo ■ △ 按需启用,Sendmail相关
setroubleshoot 查看selinux日志的程序,Selinux相关 ■ x 可以不用,Selinux相关
smartd 硬盘自动检测的守护进程 ■ ○ 开启
smb Samba文件服务器 ■ △ 按需启用
snmpd snmp相关 ■ △ 按需启用,集群之间时间同步需要
snmptrapd snmp相关 ■ x 按需启用,集群之间时间同步需要
sshd ssh服务 ■ ○ 开启
syslog 系统登录、日志必要程序 ■ ○ 开启
tog-pegasus 集群相关 ■ x 可以不用,集群相关
vncserver vnc远程控制 △ 按需启用
wdaemon x web邮件系统World2.1的一部分,用来提供HTTP接口Client x 可以不用
winbind 允许Unix系统利用Windows NT的用户帐号信息, samba相关 x 可以不用
wpa_supplicant wifi-wpa认证 △ 按需启用
xfs X Window字型服务器守护进程 ■ x 可以不用
ypbind Network Information Service(NIS) 客户端 ■ △ 按需启用
yum-updatesd yum自动升级 ■ △ 自动升级。有时候自动升级会导致问题,特别是使用php的时候。
示例,可以把不需要启动的服务写入到一个脚本中,直接用sh 文件名一执行就可以了
chkconfig --levels 0123456 NetworkManager off
chkconfig --levels 0123456 anacron off
chkconfig --levels 0123456 auditd off
chkconfig --levels 0123456 avahi-daemon off
chkconfig --levels 0123456 bluetooth off
chkconfig --levels 0123456 clvmd off
chkconfig --levels 0123456 cman off
chkconfig --levels 0123456 cups off
chkconfig --levels 0123456 gfs off
chkconfig --levels 0123456 gfs2 off
chkconfig --levels 0123456 hidd off
chkconfig --levels 0123456 httpd off
chkconfig --levels 0123456 iptables off
chkconfig --levels 0123456 ip6tables off
chkconfig --levels 0123456 ipvsadm off
chkconfig --levels 0123456 luci off
chkconfig --levels 0123456 mcstrans off
chkconfig --levels 0123456 pand off
chkconfig --levels 0123456 Nrestorecond off
chkconfig --levels 0123456 ricci off
chkconfig --levels 0123456 rmanager off
chkconfig --levels 0123456 saslauthd off
chkconfig --levels 0123456 sendmail off
chkconfig --levels 0123456 smb off
chkconfig --levels 0123456 snmp off
chkconfig --levels 0123456 snmptrapd off
chkconfig --levels 0123456 tog-pegasus off
chkconfig --levels 0123456 wdaemon off
==============================================================================================
linux 常用设置:
1:在终端修改IP地址:
vi /etc/sysconfig/network-scripts/ifcfg-eht0
2:启动后直接进入字符界面:
vi /etc/inittab
找到id:5 initdefault 将3改为5;
1. 显示环境变量HOME
$ echo $HOME
/home/redbooks
2. 设置一个新的环境变量hello
$ export HELLO="Hello!"
$ echo $HELLO
Hello!
3. 使用env命令显示所有的环境变量
$ env
HOSTNAME=redbooks.safe.org
PVM_RSH=/usr/bin/rsh
Shell=/bin/bash
TERM=xterm
HISTSIZE=1000
...
4. 使用set命令显示所有本地定义的Shell变量
$ set
BASH=/bin/bash
BASH_VERSINFO=([0]="2"[1]="05b"[2]="0"[3]="1"[4]="release"[5]="i386-redhat-linux-gnu")
BASH_VERSION='2.05b.0(1)-release'
COLORS=/etc/DIR_COLORS.xterm
COLUMNS=80
DIRSTACK=()
DISPLAY=:0.0
...
5. 使用unset命令来清除环境变量
set可以设置某个环境变量的值。清除环境变量的值用unset命令。如果未指定值,则该变量值将被设为NULL。示例如下:
$ export TEST="Test..." #增加一个环境变量TEST
$ env|grep TEST #此命令有输入,证明环境变量TEST已经存在了
TEST=Test...
$ unset $TEST #删除环境变量TEST
$ env|grep TEST #此命令没有输出,证明环境变量TEST已经存在了
6. 使用readonly命令设置只读变量
如果使用了readonly命令的话,变量就不可以被修改或清除了。示例如下:
$ export TEST="Test..." #增加一个环境变量TEST
$ readonly TEST #将环境变量TEST设为只读
$ unset TEST #会发现此变量不能被删除
-bash: unset: TEST: cannot unset: readonly variable
$ TEST="New" #会发现此也变量不能被修改
-bash: TEST: readonly variable
环境变量的设置位于/etc/profile文件
如果需要增加新的环境变量可以添加下属行
export path=$path:/path1:/path2:/pahtN
-----------------------------------------------------------------------------------------------------------------------
1.Linux的变量种类
按变量的生存周期来划分,Linux变量可分为两类:
1.1 永久的:需要修改配置文件,变量永久生效。
1.2 临时的:使用export命令声明即可,变量在关闭shell时失效。
2.设置变量的三种方法
2.1 在/etc/profile文件中添加变量【对所有用户生效(永久的)】
用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。
例如:编辑/etc/profile文件,添加CLASSPATH变量
# vi /etc/profile
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
注:修改文件后要想马上生效还要运行# source /etc/profile不然只能在下次重进此用户时生效。
2.2 在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】
用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。
例如:编辑guok用户目录(/home/guok)下的.bash_profile
$ vi /home/guok/.bash.profile
添加如下内容:
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
注:修改文件后要想马上生效还要运行$ source /home/guok/.bash_profile不然只能在下次重进此用户时生效。
2.3 直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】
在shell的命令行下直接使用[export 变量名=变量值] 定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。
3.环境变量的查看
3.1 使用echo命令查看单个环境变量。例如:
echo $PATH
3.2 使用env查看所有环境变量。例如:
env
3.3 使用set查看所有本地定义的环境变量。
unset可以删除指定的环境变量。
4.常用的环境变量
PATH 决定了shell将到哪些目录中寻找命令或程序
HOME 当前用户主目录
HISTSIZE 历史记录数
LOGNAME 当前用户的登录名
HOSTNAME 指主机的名称
SHELL 当前用户Shell类型
LANGUGE 语言相关的环境变量,多语言可以修改此环境变量
MAIL 当前用户的邮件存放目录
PS1 基本提示符,对于root用户是#,对于普通用户是$
首先要确保两台机子直接IP能够互相ping通
linux的scp命令
linux 的 scp 命令 可以 在 linux 之间复制 文件 和 目录;
==================
scp 命令
==================
scp 可以在 2个 linux 主机间复制文件;
命令基本格式:
scp [可选参数] file_source file_target
======
从 本地 复制到 远程
======
* 复制文件:
* 命令格式:
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file
第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;
* 例子:
scp /home/space/music/1.mp3 [email protected]:/home/root/others/music
scp /home/space/music/1.mp3 [email protected]:/home/root/others/music/001.mp3
scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music
scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music/001.mp3
* 复制目录:
* 命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder
第1个指定了用户名,命令执行后需要再输入密码;
第2个没有指定用户名,命令执行后需要输入用户名和密码;
* 例子:
scp -r /home/space/music/ [email protected]:/home/root/others/
scp -r /home/space/music/ www.cumt.edu.cn:/home/root/others/
上面 命令 将 本地 music 目录 复制 到 远程 others 目录下,即复制后有 远程 有 ../others/music/ 目录