Linux下的常用操作

时间:2022-09-16 14:52:49

自己做的笔记,日常操作


***************linux mail 邮件email 停用***************

修改/etc/profile文件
把unset MAILCHECK加到文件底部
*********************************************


*****************************linux基本命令***********************

# 替换yum更新源文件,如果不行再卸载重装 /etc/yum.repos.d/...
# yum ---  http://wenku.baidu.com/link?url=l9PnghiEUZ4svQiv5-g4-OQmWGOxRxJi7EBDyM4bn81T0wTW6K6FlkLqsrHs1u7ClqW29rnt9JTP2owOGszmmIgJ9l8lXPOh-YQ0hgQteES

# yum install xxx 安装,可用通配符*
# yum remove xxx  卸载,可用通配符*
# yum list|grep xxxx  已安装

1 重启:shutdown -r 秒数(reboot)
2 查看所有进程:ps -ef   (ps -aux|grep tomcat 筛选tomcat进程)
3 实时显示进程状态和系统负载:top


系统信息 linux版本信息 

uname -a
lsb_release -a

netstat -anp 显示系统端口使用情况netstat -anp|grep java

lsof -i :端口  显示占用该端口的进程情况 


# 输出命令

echo 内容

# 输出到文件(覆盖已有文件)

echo 内容 > out.txt

# 追加到文件

echo 内容 >> out.txt


# 查看文件
tail -f # 滚动查看文件 可以一起查看多个 tail -f file1name file2name
cat # 查看文件全部信息
more # 翻页查看
less # 命令查看文件 [G 最后一页 g 第一页] [退出q  :q  Q  :Q  ZZ][--help 帮助]
split -b 1024 filename toFilename # 切割文件split --help 


4 文件夹操作
# 以日期命令做文件名,反引号(`)   date +%Y%m%d%H%M%S 20140217115833 (date --help可以查看具体命令参数)
mkdir aaaa`date +%Y%m%d`bbbb # 文件名: aaaa20140217bbbb   


# 修改文件夹有者-R递归user:group
chown -R tomcat:slzstomcat tomcat


# chmod 改变文件的权限 -R递归
777:最高权限 非别是
           读 写 执行(非0是有权,0是无权)
所有者:7= 4+ 2+  1
同组者:7= 4+ 2+  1
其他者:7= 4+ 2+  1
0000100|0000010|0000001=0000111


111:所有者有执行权,同组者有执行权,其他用户有执行权
711:所有者有读、写、执行权,同组者有执行权,其他用户有执行权
751:所有者有读、写、执行权,同组者有读、执行权,其他用户有执行权
750:所有者有读、写、执行权,同组者有读、执行权,其它组无权

4.1 删除文件夹
rm -rf dir
-r是遍历删除

-f是强制删除不确认


4.2 创建文件夹

mkdir dir

输出当前目录完整路径

pwd


5 防火墙配置命令
5.1 永久性生效,重启后不会复原
开启: chkconfig iptables on

关闭: chkconfig iptables off


5.2 即时生效,重启后复原
开启: service iptables start

关闭: service iptables stop


# 端口转发80转8080
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080


# 限制IP访问
iptables -I INPUT -s 59.151.119.180 -j DROP
# 解除限制
iptables -D INPUT 序号 
# 当前状态
service iptables status


6.查找文件,在根目录下找
find / -name abcd (abcd为文件名,支持正则abcd*)
locate命令用于查找文件,它比find命令的搜索速度快,不需要*通配
它需要一个数据库,这个数据库由每天的例行工作(crontab)程序来建立。当我们建立好这个数据库后,就可以方便地来搜寻所需文件了。


查询后针对匹配结果执行命令
find . -name "*.c" -exec ls {} \; # 展示
find . -name "*.c" -exec rm {} \; # 删除
cd /
find -name *php*.so
find -name *php*.ini

其它查找命令
whereis mysql
which mysql

# service 服务状态
chkconfig --list

# 全部rpm方式已安装的包名(不包含后缀名.rpm)
rpm -qa
# 筛选(不包含后缀名.rpm)
rpm -qa|grep rpm_name
# 以MySQL-开头的
rpm -qa|grep MySQL-

// 卸载
rpm -e mysql-libs-5.1.61-4.el6.x86_64(上面出的包名)
rpm -e MySQL-client-community-5.1.46-1.rhel5.x86_64


7. 系统配置setup ( 防火墙设置等系统配置,文本模式图形设置工具 )


8. 开机自启动服务:
# 图形界面 
ntsysv
# 执行命令
vi /etc/rc.d/rc.local # 文件末尾加命令
(
  如:/etc/rc.d/init.d/nfs start
  切换用户执行:su - nexus -c "/usr/local/nexus/nexus-2.11.4-01/bin/nexus start",执行后切回前用户
)


9.时区 时间设置:vi /etc/sysconfig/clock
ZONE="Asia/Shanghai"
UTC=false
ARC=true


或 setup 找到Asia/Shanghai并设置


#时间同步 
ntpdate ntp.api.bz


#手动设置
date -s 03/16/2016
date -s 11:08:30


# 本地时区问题
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime


# 域名解析服务器配置
vi /etc/resolv.conf 


#增加或修改内容为下
nameserver 8.8.4.4 #google域名服务器
nameserver 8.8.8.8 #google域名服务器 


#添加用户 添加用户组
groupadd groupname
useradd -g groupname username
password username  (可能是passwd)
# 修改用户id
usermod -u <uid> 用户帐号 #此 uid 不能与目前系统中已经存在的UID相同
# 修改分组id
# groupmod -g <gid> 用户组
查看用户信息
vipw
vigr


( bash-4.1$ 格式设置 )
#root 用户登录
mkdir /home/username/ # 创建用目录
cp ~/.bash* /home/username/ # 复制root常用命令
chown username:groupname /home/tomcat -R # 更换所有者


# sudo 以管理员身份的命令,不需要知道管理员密码(由管理员分配指定命令)
visudo -f /etc/sudoers # 用visudo命令编辑
tomcat ALL=(root)NOPASSWD:/sbin/mount,/bin/mount,/sbin/mount.nfs #第一个(前面不加%是用户,加%用户组)
%tomcatgroup ALL=(root)NOPASSWD:/sbin/mount,/bin/mount,/sbin/mount.nfs #第一个(前面不加%是用户,加%用户组)
#配置后使用 sudo mount 192.168.10.213:/usr/local/tomcat /usr/local/tomcat213


#-rf提示 别名设置
alias cp="cp"
alias vi="vim"
alias ll="ls -l"


永久别名设置 vi /etc/bashrc (全部用户)  vi ~/.bashrc (当前用户)
alias tomcatstart="/usr/local/tomcat/bin/startup.sh" 一行加在/etc/bashrc最后面
alias tomcatshutdown="/usr/local/tomcat/bin/shutdown.sh"
alias tomcatlogall="tail -f /usr/local/tomcat/logs/catalina.out  /usr/local/tomcat/logs/fwpt.log"
alias apachectl="/usr/local/apache/bin/apachectl"
# 更改在下次登录时生效,若要立即生效,输入:source /etc/bashrc ( source ~/.bashrc )


增加用户操作bin
cd /usr/bin/ 
ln -s -f /usr/local/mongodb/bin/mongo 
在用户bin目录下创建了mongo链接


# hostname
vi /etc/sysconfig/network
vi /etc/hosts # 要把本机地址hostname配置上,否则tomcat会出错
192.168.1.1 fw-t-apache
#192.168.10.204 fw-t-mastersql
#192.168.10.205 fw-t-backupsql
#192.168.10.206 fw-t-slavesql1


# ip白名单、黑名单
hosts.allow # 允许访问ip
hosts.deny  # 禁止访问ip


linux编码设置
export LANG=zh_CN.UTF-8  (当前登录session有效)
vi /etc/sysconfig/i18n
# locale 查看当前系统编码


在命令行可以一次执行多个命令,有以下几种: 命令可以用括号()避免参数混乱
1.每个命令之间用;隔开
说明:各命令的执行给果,不会影响其它命令的执行。换句话说,各个命令都会执行,
但不保证每个命令都执行成功。


2.每个命令之间用&&隔开
说明:若前面的命令执行成功,才会去执行后面的命令。这样可以保证所有的命令执行完毕后,执行过程都是成功的。


3.每个命令之间用||隔开
说明:||是或的意思,只有前面的命令执行失败后才去执行下一条命令,直到执行成功
一条命令为止。


# 后台运行命令
命令后面加“&” ctrl+c后 后台继续运行


# ssh连接超时问题解决方案:
1.修改server端的etc/ssh/sshd_config
ClientAliveInterval 60 #server每隔60秒发送一次请求给client,然后client响应,从而保持连接
ClientAliveCountMax 3 #server发出请求后,客户端没有响应得次数达到3,就自动断开连接,正常情况下,client不会不响应
 
2.修改client端的etc/ssh/ssh_config添加以下:(在没有权限改server配置的情形下)
ServerAliveInterval 60 #client每隔60秒发送一次请求给server,然后server响应,从而保持连接
ServerAliveCountMax 3  #client发出请求后,服务器端没有响应得次数达到3,就自动断开连接,正常情况下,server不会不响应


*****************************linux基本命令***********************



*****************************挂载 盘*****************************
和USB接口的移动硬盘一样对linux系统而言U盘也是当作SCSI设备对待的。使用方法和移动硬盘完全一样。插入U盘之前,应先用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。


# fdisk -l


系统多了一个SCSI硬盘/dev/sdd和一个磁盘分区/dev/sdd1,/dev/sdd1就是我们要挂接的U盘。


#mkdir -p /mnt/usb
注:建立一个目录用来作挂接点(mount point)
# mount -t vfat /dev/sdb1 /mnt/usb
注:现在可以通过/mnt/usb来访问U盘了, 若汉字文件名显示为乱码或不显示,可以使用下面的命令。
# mount -t vfat -o iocharset=cp936 /dev/sdb1 /mnt/usb


挂载硬盘,ext4根据实际情况调整
# mount -t ext4 /dev/sdb1 /mnt/sdb1


# 挂载windows共享目录
mount -t cifs -o username=administrator,password=Founder123,uid=tomcat,gid=slzstomcat //192.168.11.21/Data/InterDataPath/InterData /mnt/


#取消挂载
umount /mnt
umount -l /mnt # 如果挂载忙时可以加-l参数


#查看占用进程
fuser -m -v /backup
#强制关闭某个路径的占用程序
fuser -km /backup


# 重启后mount需要重新挂载,可编辑配置文件保存挂载信息
vi /etc/fstab
# 说明:http://dikar.iteye.com/blog/361659
/dev/sdb1               /data                   ext4    defaults        0 1
192.168.10.4:/backup    /backup                 nfs     defaults        0 0




查看已经mount挂载的信息
1.直接输入mount
2.df -Th
3.cat /etc/fstab


4.lvdisplay查看卷组信息/dev/VolGroup00/LogVol03


du -ach *    #这个能看到当前目录下的所有文件占用磁盘大小和总大小 
du -sh       #查看当前目录总大小 
du -sh *     #查看所有子目录大小 
lsof | grep delete    #如果怀疑删掉的数据还在占用磁盘空间试试这个 
kill -9 pid           #结束掉进程就能释放磁盘空间了 


排序 du -sh *|sort -nr


# linux mount 其他linux机器上的共享目录
# mount <remote_host_name>:<remote_dir_name> <local_dir_name>
mount 192.168.10.4:/backup /backup


***************************** nfs 共享 ***********************


# 修改 /etc/exports, 增加共享目录
/backup 192.168.10.*(rw,no_root_squash) # redhat6网段匹配不可以用*  如192.168.1.*是错的 用:192.168.1.0/24
/backup 10.140.133.23(rw)
/backup *(rw)
/backup 192.168.10.*(rw,all_squash,anonuid=500,anongid=500),192.168.20.*(ro)


# /export/home/ 目录下的 sunky 、 sunky1 、 sunky2 是准备共享 的目录
# 挂载权限之间只能用“,”隔开
# 10.140.133.23 、 *  , 被允许挂接此共享 linux 客户机的 IP 地址或主机名。


#rw:允许读写
#ro:只读
#async:允许异步写入
#sync:同步写入
no_root_squash:登入NFS主机使用共享目录的用户,如果是用户root,对于此共享目录具有root权限。
root_squash:登入NFS主机使用共享目录的用户,如果是用户root,此用户权限将被压缩为匿名用户,其UID和GID都会被压缩为nobody(nfsnobody)系统账号的身份。
all_squash:不论登入NFS的用户身份为何,其身份都被转换成为匿名用户,即nobody。
# id 命令可以查看当前用户的id
anonuid:anonymous;即nobody,可以自行设定此UID值,但此UID必须存在于/etc/passwd中。
anongid:同anonuid,变成group ID即可


# 启动与停止 NFS 服务
/etc/rc.d/init.d/portmap restart (redhat5)
/etc/rc.d/init.d/nfs restart


service rpcbind restart   (redhat6 安装 yum install portmap) 
service nfs restart


#showmount -e 192.168.10.207 //查看客户端共享出得文件目录有哪些(客户端使用)
#showmount -a               //查看共享出的目录被哪些用户使用(服务端的使用) 
#exportfs  -arv              //更改配置文件后重新读取以下(相当于重启服务)
#exportfs  -au              //关闭所有共享的目录


# 停止 NFS 服务,再启动 NFS 服务使新增加的共享起作用。exportfs -arv 也可以达到同样的效果。


#链接不上,防火墙问题:clnt_create: RPC: Port mapper failure - Unable to send: errno 1 (Operation not permitted)


1.修改nfs服务端 /etc/service,添加以下内容(端口号必须在1024以下,且未被占用)
# Local services
mountd 1011/tcp #rpc.mountd
mountd 1011/udp #rpc.mountd
rquotad 1012/tcp #rpc.rquotad
rquotad 1012/udp #rpc.rquotad


3.重起nfs服务
service nfs restart
chkconfig nfs on


4.此时rpc相关端口已经被固定,可以添加防火墙规则
#portmap
-A INPUT -s 192.168.10.0/24 -p tcp --dport 111 -j ACCEPT
-A INPUT -s 192.168.10.0/24 -p udp --dport 111 -j ACCEPT
#nfsd
-A INPUT -s 192.168.10.0/24 -p tcp --dport 2049 -j ACCEPT
-A INPUT -s 192.168.10.0/24 -p udp --dport 2049 -j ACCEPT
#mountd
-A INPUT -s 192.168.10.0/24 -p tcp --dport 1011 -j ACCEPT
-A INPUT -s 192.168.10.0/24 -p udp --dport 1011 -j ACCEPT
#rquotad
-A INPUT -s 192.168.10.0/24 -p tcp --dport 1012 -j ACCEPT
-A INPUT -s 192.168.10.0/24 -p udp --dport 1012 -j ACCEPT
#rpc.statd
-A INPUT -s 192.168.10.0/24 -p tcp --dport 32768 -j ACCEPT
-A INPUT -s 192.168.10.0/24 -p udp --dport 32768 -j ACCEPT




=======================================================================




===============================linux锁定屏幕/挂起用户========================================
exit
logout
ctrl+d
三选一


=========================================远程连接命令===============================================
远程登录 -l 用户名登录 StrictHostKeyChecking=no > 可以让ssh客户端自动接受新主机的hostkey,不用每次都自己输入yes
ssh -l root -o StrictHostKeyChecking=no 192.168.10.3


拷贝-r文件夹,-P54321端口号(ssh端口非默认22时指定,大写P)
scp -r /home/1.gif root@172.19.2.75:/home/root   


逆向拷贝
scp -P222 -r root@172.19.2.75:/home/abc.gif /home/root


# ssh无密码登录环境
ssh-keygen -t rsa # 会提示输入保存密码的文件名称带路径,用默认/root/.ssh/id_rsa直接回车即可
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): # 设置无密码直接回车
Enter same passphrase again: # 设置无密码直接回车
ssh-copy-id -i /root/.ssh/id_rsa root@192.168.1.1  (目标地址,如果修改密码或修改ip之类的导致无法连接,需要删除对应目录的文件或密码信息)






=========================================wget:无法解析主机地址。wget: unable to resolve host address =========================================
wget -c 断点续传
# wget日志,下载进度 ,已经断开的session 后台还在下载中, 可通过日志查看下载状态,下载文件的同级目录
tail -f /backup/..下载目录../wget-log


vi /etc/resolv.conf


-- wget post data
wget http://192.168.10.5:9977/WiseAdmin  --post-data '<?xml version=\"1.0\" encoding=\"GBK\"?><Mission><Asset akenum=\"2\" sumlen=\"0\">你好中国北京上海</Asset></Mission>'


wget --post-data "Action=1"  http://192.168.10.5:9977/WiseAdmin
# 相当于表单post提交<input name="action" value="1" />


=========================================IP配置===============================================
修改网卡配置文件:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
去掉DHCP
IPADDR=192.168.1.105
NETMASK=255.255.255.0
NETWORK=192.168.1.0
GATEWAY=192.168.1.1
重启网卡
service network restart
DNS修改
vi /etc/resolv.conf


# 查看ip信息
ifconfig 
ip addr


# 设置代理
vi /etc/bashrc
export http_proxy=isadz:80
export https_proxy=isadz:80
export ftp_proxy=isadz:80




========================================= 定时任务 ===============================================
任务日志:ls /var/log/cron*


每个用户都有各自不同的计划任务列表,用各自的帐户登录后运行
crontab -l


就可查看到各任务的计划任务情况,使用下列命令可以修改自己的计划任务
crontab -e


计划任务没有环境变量,需设置引入环境变量
. /etc/profile && . ~/.bash_profile


分钟(0-59) 小时(0-23) 天(1-31) 月(1-12) 星期(0~6,0为星期天) 要执行的命令
1 23 * * * . /etc/profile && . ~/.bash_profile && /usr/local/tomcat/bin/shutdown.sh && /usr/local/tomcat/bin/startup.sh
10 23 * * * . /etc/profile && . ~/.bash_profile && /usr/local/tomcat_zfw/bin/shutdown.sh && /usr/local/tomcat_zfw/bin/startup.sh
30 4 * * * . /etc/profile && . ~/.bash_profile && /usr/local/tomcat/bin/shutdown.sh && /usr/local/tomcat/bin/startup.sh
40 4 * * * . /etc/profile && . ~/.bash_profile && /usr/local/tomcat_zfw/bin/shutdown.sh && /usr/local/tomcat_zfw/bin/startup.sh