Linux学习

来源:互联网 发布:kruskal贪心算法 编辑:程序博客网 时间:2024/06/06 07:03
Linux笔记


---------------------系统安装暂不记录----------------------
--------基本命令---------------------------------------------------
cd -  #回到上次切换的目录 
----------------------------------------------------
ls -l /etc/ | more  【|前面的结果交给后面的命令处理】
grep 过滤
grep -n "hello"  a.txt
[在a.txt中查找hello 并且显示行号]
----------------------------------------------------
【管道重定向】
[wangtao@redhat6 1]$ grep -n "public" A.java  > a.txt 
【在A.java中过滤字符后 输出到a.txt】
[wangtao@redhat6 1]$ cat a.txt 
1:public class A{
2: public static void main(String args[]){
[wangtao@redhat6 1]$
----------------------------------------------------
> 文件覆盖写
>> 文件追加内容
[wangtao@redhat6 1]$ echo "asdasd100100100"  >> a.txt
---------------------------------------------------------------------------
shutdown  -r   #重启
shutdown  -h   #关机
【shutdown -h 10】     #10 分钟后关机  每个终端都会提示
【shutdown -h 12:00】  #在12点关机 定时关机
-----------------------------------------------
-c # 结束一个运行的shutdown 任务
提示shutdown cancelled
-----------------------------------------------
[root@redhat6 ~]# cat /etc/inittab 
启动级别0:关机 1:单用户模式 3:字符界面 5:X window 6:重启
# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this) 
id:3:initdefault:
runlevel 查看运行级别
---------------------------------------------------------------------------
服务器来电后自动重启
BOIS 设置 :SuperIO Device-> Restore On AC  Power Loss [Power On] 
---------------------------------------------------------------------------
目录结构
/etc  配置文件
/boot 引导分区
/var  日志
/home 普通用户家目录
/root root用户家目录
/tmp 
/usr unix software source  系统软件
/opt 默认空  大型第三方软件
/bin 普通命令 /
/sbin 很重要系统命令
/lib 程序库文件
/dev 设备文件
/media 课移动介质上文件系统的挂载点
---------------------------------------------------------------------------
查看防火墙配置
iptables -L n
---------------------------------------------------------------------------
[root@redhat6 ~]# ls -i   #文件i节点
[root@redhat6 ~]# ls -lh        #文件详细信息
[root@redhat6 ~]# touch a.txt #创建空文件
mkdir -p /root/wangtao/a/b/d/f.txt  #创建多层目录
ls !$  $表示上次执行命令的参数本次使用
-----查看文件--------------------------------------------------------------
vim /etc/passwd
cat
more 回车显示一行 空格换一屏 q退出
less 回车显示一行 空格换一屏 q退出 可以向上翻[按光标]
head 默认显示前10行 -n 数字 显示前x 行
tail 同head用法相同
tail -f  #动态显示数据 常用来跟踪日志
---------------------------------------------------------------------------
复制cp  【慎用删除命令 勤用mv命令】
cp -r  递归复制 包含子目录和文件
cp -r /etc/* /root/wangtao
--------------------------------------------------
#保存与源文件相关联的修改日期、时间和访问控制列表等
cp -p /etc/passwd /root/wangtao 
#保留权限,复制软链接本身,递归复制
cp -a /etc/passwd /root/wangtao 
---------------------------------------------------------------------------
挂载光驱
mount /dev/cdrom /mnt
-------vi编辑器------------------------------------------------------------
vi模式
命令模式下  u 撤销删除
X 向前删除
x 向后删除
行操作 home end
dd 删除/剪切一行
yy 复制一行
p  粘贴
dw 删除一个词
yd 复制一个词
块操作
D 或D+$  删除到行尾
===========================================
#多行注释
ctrl+v 进入视图块模式
向上或下移动光标 选择需要注释的行
输入大I
在开头写入注释#
按下ESC 自动注释选中的全部
#多行删除
ctrl+v 进入视图块模式
向上或下移动光标 选择行
D 删除
===========================================
保存退出wq 或 x
 :e! 回复到刚刚打开的状态
在windows中编辑好的文本文档,到Linux下打开乱码。解决方法:用gedit打开 另存为UTF-8
--------------------------------------------
#加密
vim编辑文件 ESC输入大写X  会提示输入密码
然后再次冒号 wq 退出。
取消密码
ESC输入大写X 回车不输入密码
--------------------------------------------
#命令模式下替换
:%s/this/that
:%s/this/that/gc #可以指定想替换哪些 输入y替换 n跳过
1,5s/this/that/gc #替换第1到5行的内容


:set nu #显示行号 j k 上下移动光标
:set nonu #去掉行号


gg 快速移动光标到行首
数字N+gg  【定位到第N行】
G 最后一行


:/4  查找4 加亮 n N 上下查找、
:noh 取消加亮
--------------------------------------------
在编辑文档时可以调用系统命令
:! + 命令   例如 :!ls /
--------------------------------------------
vim +5 /etc/passwd  #打开文件直接定位到第5行


vim -O /etc/passwd /etc/profile #打开多个文档
ctrl+ww 切换
---------------------------------------------------------------------------
[root@redhat6 /]# find / -name wangtao
#搜索在根目录下的所有 wangtao文件所在位置
[root@redhat6 wangtao]# find -size 1k   #根据大小搜索
---------------------------------------------------------------------------
使用locate搜索linux系统中的文件,它比find命令快。
因为它查询的是数据库(/var/lib/locatedb),数据库包含本地所有的文件信息。
[root@redhat6 /]# locate wangtao
---------------------------------------------------------------------------
xshell  连接linux 
设置上传下载目录 设置编码utf-8
安装rpm包
[root@redhat6 ~]# rpm -ivh /mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm
此时会打开设置的上传目录 选中文件直接上传到当前目录
【sz 11.txt 】 #下载 会下载到设置的目录 
echo $LANG     #查看环境变量
---------------------------------------------------------------------------
linux服务器.sh脚本下载到windows会出现不换行的问题
安装包:
[root@redhat6 ~]# rpm -ivh /mnt/Packages/unix2dos-2.2-35.el6.x86_64.rpm 
warning: /mnt/Packages/unix2dos-2.2-35.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
   1:unix2dos               ########################################### [100%]
[root@redhat6 ~]# sz 111.sh 
[root@redhat6 ~]# 
[root@redhat6 ~]# unix2dos  111.sh   #转换一下格式
unix2dos: converting file 111.sh to DOS format ...
[root@redhat6 ~]# sz 111.sh  下载
---------------------------------------------------------------------------
#查看历史命令
history 5   #查看最近5条
!5    # 执行历史编号为5 的命令
!ls   # 执行最后一次以ls开头的命令

----用户管理---------------------------------------------------------------
用户 和用户组
超级用户 root
系统用户 UID 1-499
本地用户 UID 500+
*** 每一个用户都有一个同名的组
---------------------------------------------
配置文件: 
账户信息       密码信息
用户    /etc/passwd  /etc/shadow
组      /etc/group   /etc/gshadow


[root@redhat6 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash 解释
root:用户
x:密码占位符
0:0 用户ID 组ID
root描述
/root 用户家目录
/bin/bash 登录后使用的shell
---------------------------------------------
#查看系统中bash
[root@redhat6 wangtao]# cat /etc/shells 
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
/bin/zsh
[root@redhat6 wangtao]# ll /bin/sh 
lrwxrwxrwx. 1 root root 4 5月  28 18:05 /bin/sh -> bash
---------------------------------------------
[root@redhat6 ~]# cat /etc/shadow
root:$6$PbW08boxYzQdwqo4$7fc/THs1Sj0.0WgZdpBemniHyGLn0Tef.ci2w0N78b3aiIAeAiG8gD3LWJU38lqxvOou6WP1UIKHf4IpvcxxM1:16583:0:99999:7:::
#root 用户名
#加密后的密码
#16583 最近更改密码的日期 从19700101计算
#密码不能更改的天数 0:随时修改
#99999 密码多少天后必须再次修改
#7 密码到期前7天警告
---------------------------------------------
#管理用户密码
[root@redhat6 wangtao]# useradd tao   #创建用户
[root@redhat6 wangtao]# passwd tao    #设置修改密码
[root@redhat6 wangtao]# passwd -d tao #删除密码
---------------------------------------------
[root@redhat6 wangtao]# tail -n 1 /etc/shadow  #查看密码文件
tao:$6$lHSf2Mp9$P9IWPpZ26msulXAJazClC396ToTSpVMxMpY8YB7KE.8ig0g0QmhXFD.BehzVEqpOoUoy6O6ShYorc1OPfNRKz0:16590:0:99999:7:::
[root@redhat6 wangtao]# passwd -d tao  #移除密码
Removing password for user tao.
passwd: Success
[root@redhat6 wangtao]# tail -n 1 /etc/shadow  #再次查看没有密码了
tao::16590:0:99999:7:::
[root@redhat6 wangtao]#  
---------------------------------------------------------------------------
[root@redhat6 ~]# passwd  -l wangtao   #锁定用户
Locking password for user wangtao.
passwd: Success
[root@redhat6 wangtao]# tail -n 1 /etc/shadow #查看密码前面被加上了!!
wangtao:!!$6$jWqaf.lx$yUOarW2K8lHsl20WYceAqdKG8eSMMCizrFU1OXjroB6Aon3S7RgS0579la2QGAgO996bfDtAEtujCbKw9hKkA.:16597:0:99999:7:::
[root@redhat6 ~]# passwd -u wangtao   #解除锁定用户
Unlocking password for user wangtao.
passwd: Success
[root@redhat6 wangtao]# !tail  
tail -n 1 /etc/shadow
wangtao:$6$jWqaf.lx$yUOarW2K8lHsl20WYceAqdKG8eSMMCizrFU1OXjroB6Aon3S7RgS0579la2QGAgO996bfDtAEtujCbKw9hKkA.:16597:0:99999:7:::
----------------------------------------------------------------------------
#如果该用户没有密码 使用-f强制解除锁定
[root@redhat6 wangtao]# passwd  -fu tao 
Unlocking password for user tao.
passwd: Success
[root@redhat6 wangtao]# 
---------------------------------------------------------------------------
【!+命令】 #取历史命令的第一条 执行
[root@redhat6 ~]# !cp
---------------------------------------------------------------------------
[root@redhat6 wangtao]# useradd -d /tmp/tom  tom # 指定用户家目录
[root@redhat6 wangtao]# tail -n 1 /etc/passwd
tom:x:501:501::/tmp/tom:/bin/bash
-----------------------------------------------------
其他参数
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号
---------------------------------------------------------------------------
#没有交互修改密码【管道命令】
[root@redhat6 wangtao]# echo "mima" | passwd --stdin tom
Changing password for user tom.
passwd: all authentication tokens updated successfully.
[root@redhat6 wangtao]# 
---------------------------------------------------------------------------
修改用户编号
[root@redhat6 wangtao]# usermod -u 810 tom2  
设置附加组
[root@redhat6 aaa]# usermod -G root wangtao
usermod  -u  UID
 -g  GID
 -d  目录
 -s  shell
---------------------------------------------------------------------------
删除用户
userdel 用户名     #会删除用户信息,不会删除用户主目录
userdel -r 用户名  #会删除主目录
groupadd  组名     #新增组
groupdel  组名     #删除组
---------------------------------------------------------------------------
useradd 和 adduser 一样 [软连接]
[root@redhat6 wangtao]# which adduser
/usr/sbin/adduser
[root@redhat6 wangtao]# ll /usr/sbin/adduser
lrwxrwxrwx. 1 root root 7 May 28 18:05 /usr/sbin/adduser -> useradd
[root@redhat6 wangtao]# 
---------------------------------------------------------------------------
添加用户过程
添加用户默认情况  vim /etc/default/useradd
================================
#useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel  #目录不为空 ,创建用户时会把这里面的文件复制到用户主目录下
CREATE_MAIL_SPOOL=yes
================================
用户删除自己目录下的bash文件后,不能切换用户
可以从【/etc/default/useradd 】中 的/etc/skel 复制过来  
此目录记录了创建用户的模板文件 
---------------------------------------------------------------------------
在 /etc/passwd 下可以设置和root用户相同uid和gid的用户
可以禁用root的密码使用自定义用户登录
---------------------------------------------------------------------------
grep #使用正则表达式搜索文本


[root@redhat6 wangtao]# grep tom2 /etc/*
/etc/passwd-:tom2:x:810:800::/home/tom2:/bin/bash
/etc/shadow-:tom2:!!:16590:0:99999:7:::
[root@redhat6 wangtao]# 
---------------------------------------------------------------------------
查看用户信息命令
[root@redhat6 wangtao]# id tao
uid=500(tao) gid=500(tao) groups=500(tao)
[root@redhat6 wangtao]# 
[root@redhat6 wangtao]# whoami
root
[root@redhat6 wangtao]# who
root     pts/0        2015-06-04 09:33 (192.168.1.120)
[root@redhat6 wangtao]# w
 11:22:25 up  1:50,  1 user,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.120    09:33    0.00s  0.63s  0.01s w
---------------------------------------------------------------------------
last     #列出用户所有登录的时间和地址
lastb    #谁尝试过登录 没有登上
lastlog  #只记录最近一次登录
清除登录记录  输入【>】
[root@redhat6 wangtao]#  > /var/log/lastlog 
---------------------------------------------------------------------------
file 查看文件类型
[root@redhat6 wangtao]# file /var/log/lastlog 
/var/log/lastlog: data   【类型】
[root@redhat6 wangtao]# file /etc/passwd
/etc/passwd: ASCII text  【类型】
[root@redhat6 wangtao]#
---------------------------------------------------------------------------
su #切换用户
[su - ]     #区别:切换用户身份 和bash环境变量
---------------------------------------------------------------------------
进入单用户模式
=============================================
系统启动时,在倒计时 界面  ,按下任意键
在启动项选择界面按下e,移动光标 kernel,按下e
输入1 【系统级别】回车
grub edit >

再次回到启动项选择界面 ,按下b 【boot】
启动后不需登录 通过命令passwd root 修改密码

进入单用户模式后,修改/etc/passwd ,去掉root的密码占位符x后
重启输入root不需密码即可进入系统。


-文件权限------------------------------------------------------------------
    -rw-r--r--. 1 root root    35 Jun  3 11:31 11.txt
   [root@redhat6 s]# chmod u+x,g+w pwd.txt  #修改权限
   [root@redhat6 wangtao]# chmod -R 777 /root/wangtao/ #修改目录及其下的文件权限
    a+x 给三部分都加上x权限 a表示all
------------------------------------------------
#查看文件夹属性
[root@redhat6 wangtao]# ll -d /root/wangtao/
 drwxrwxrwx. 4 root root 4096 Jun 10 09:37 /root/wangtao/
[root@redhat6 wangtao]# 
------------------------------------------------
权限说明:
权限    对文件             对目录 
 r       查看内容        列出目录内容
 w       修改文件内容    在目录中创建删除文件
 x       执行文件        进入目录
-----------------------------------------------
当目录权限对其他用户有w权限而目录下的文件没有权限时
其他用户仍然可以删除文件
-----------------------------------------------------
chown #修改文件目录拥有者
[root@redhat6 s]# chown wangtao:root pwd.txt 
[root@redhat6 s]# ll
-rwxrwxrwx. 1 wangtao root 34 Jun  5 10:16 pwd.txt
单独修改所属用户
chown root pwd.txt
单独修改组
chgrp 组名 ped.txt
---------------------------------------------------------------------------
    #设置文件/目录 默认权限补码
    [root@redhat6 wangtao]# umask -S
    u=rwx,g=rx,o=rx
    #基于安全考虑,新建文件没有可执行权限x
--------------------------------------------
修改umask  
[root@redhat6 s]# umask 033
正确计算
文件默认权限      umask
 6   6    6        0   3   3
110 110  110      000 011 011
  111 100 100 取反
  
110 110  110 &  
111 100  100
-------------------------
    110 100  100 =644   【-rw-r--r--】新建文件的权限 
控制umask文件 
/etc/bashrc
普通用户 0002
系统用户 0022
-特殊权限------------------------------------------------------------------
SUID : 只能设置在二进制可执行文件上
    程序运行时的权限从执行者变成拥有者

[root@redhat6 s]# chmod u+s /usr/bin/less #使用root 修改less权限u+s
[wangtao@redhat6 ~]$ less /etc/shadow     #切换普通用户 使用less

GUID : 文件继承所在目录的组
[root@redhat6 s]# chmod g+s tao   #改变权限g+s
    [root@redhat6 s]# chown :wangtao tao      #修改所属组
[root@redhat6 s]# ll -d tao    #查看结果
drwxr-Sr--. 2 root wangtao 4096 Jun  5 11:32 tao
[root@redhat6 s]# touch tao/aa.txt        #新建文件
[root@redhat6 s]# ll !$
-rw-r--r--. 1 root wangtao 0 Jun  5 11:34 tao/aa.txt #文件继承了所属组

stckybit :只用于目录,目录下的文件只有root 文件创建者 目录所有者才能删除
例如:
[root@redhat6 a]# ll -d /tmp
drwxrwxrwt. 17 root root 4096 Jun  5 10:24 /tmp # 最后权限为t
[root@redhat6 a]# 

[root@redhat6 a]# chmod o+t /tmp/test #修改目录权限 o+t 

---------------------------------------------------------------------------
 【chattr】 #防止系统中某个关键文件被修改
    a 只能追加内容
i 不能修改 【只能查看】
设置后文件不能删除
    [root@redhat6 test]# lsattr 1.tt 
-------------e- 1.tt
[root@redhat6 test]# chattr +a 1.tt   #添加设置权限 后 1.tt只能追加内容  
[root@redhat6 test]# chattr -a 1.tt   #去除这个权限
[root@redhat6 test]# lsattr 1.tt 
-----a-------e- 1.tt
[root@redhat6 test]# echo hello >> 1.tt   
#向文件中追加内容【不能使用vim打开添加内容】

有一个很重要的文件 不想让别人删除  可以使用chattr +i 设置
[root@redhat6 test]# chattr +i 1.tt
---------------------------------------------------------------------------
【setfacl】 #可以用来细分linux下的文件权限

<<<<<<<<<<<<<------->>>>>>>>>>>>>>>>>>>>
chmod命令可以把文件权限分为u,g,o三个组,而setfacl可以对每一个文件或目录设置更精确的文件权限。 比较常用的用法如下:
setfacl –m u:apache:rwx file 设置apache用户对file文件的rwx权限 
setfacl –m g:market:rwx file 设置market用户组对file文件的rwx权限 
setfacl –x g:market file 删除market组对file文件的所有权限 
getfacl file 查看file文件的权限
<<<<<<<<<<<<<------->>>>>>>>>>>>>>>>>>>>

设置某个文件只有root  拥有者 特定用户可以修改
[root@redhat6 demo]# setfacl -m u:wangtao:rw 1.txt
[wangtao2@redhat6 demo]$ ll
total 8
-rw-rw-r--+ 1 root root 20 Jun  5 15:19 1.txt
====================================
#查看权限
[root@redhat6 demo]# getfacl 1.txt 
# file: 1.txt
# owner: root
# group: root
user::rw-
user:wangtao:rw-
group::r--
mask::rw-
other::r--
#普通用户只有wangtao可以修改,其他用户只能查看。

[root@redhat6 demo]# setfacl -x u:wangtao 1.txt  #取消acl
====================================
[root@redhat6 /]# setfacl -m d:u:wangtao:rwx /demo/
#设置wangtao对/demo下的所有文件都有读写权限
---rpm 管理软件包----------------------------------------------------------


    rpm -ivh /mnt/Packages/zsh-4.3.10-5.el6.x86_64.rpm  #安装

[root@redhat6 wangtao]# rpm -ivh /mnt/Packages/zsh-4.3.10-5.el6.x86_64.rpm  #安装
warning: /mnt/Packages/zsh-4.3.10-5.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
package zsh-4.3.10-5.el6.x86_64 is already installed
[root@redhat6 wangtao]# rpm -e zsh  #卸载
[root@redhat6 wangtao]# rpm -ivh /mnt/Packages/zsh-4.3.10-5.el6.x86_64.rpm 
warning: /mnt/Packages/zsh-4.3.10-5.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
   1:zsh                    ########################################### [100%]
[root@redhat6 wangtao]#
#如果卸载包时有依赖直接卸载不了
#强制卸载加入参数:【--nodeps】
[root@redhat6 Packages]# rpm -e --nodeps  perl-DBD-MySQL
[root@redhat6 Packages]#
---------------------------------------------------------------------------
#导入公钥 安装软件自动校验 没有warning
[root@redhat6 Packages]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 【导入公钥】
[root@redhat6 Packages]# rpm -e --nodeps  perl-DBD-MySQL 【卸载】
[root@redhat6 Packages]# rpm -ivh perl-DBD-MySQL-4.013-3.el6.x86_64.rpm  【测试安装,不再警告】
Preparing...                ########################################### [100%]
   1:perl-DBD-MySQL         ########################################### [100%]
[root@redhat6 Packages]# 
---------------------------------------------------------------------------
安装时 解决依赖关系 rpm
[root@redhat6 Packages]# rpm -ivh mysql-server-5.1.66-2.el6_3.x86_64.rpm #提示有依赖
warning: mysql-server-5.1.66-2.el6_3.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
error: Failed dependencies:
perl-DBD-MySQL is needed by mysql-server-5.1.66-2.el6_3.x86_64
[root@redhat6 Packages]# rpm -ivh perl-DBD-MySQL-4.013-3.el6.x86_64.rpm  #先安装依赖包
warning: perl-DBD-MySQL-4.013-3.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
   1:perl-DBD-MySQL         ########################################### [100%]
[root@redhat6 Packages]# rpm -ivh mysql-server-5.1.66-2.el6_3.x86_64.rpm 
warning: mysql-server-5.1.66-2.el6_3.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
   1:mysql-server           ########################################### [100%]
[root@redhat6 Packages]# 
--查询软件包-------------------------------------------------------------------------
[root@redhat6 Packages]# rpm -q zsh         #查看软件包是否安装
zsh-4.3.10-5.el6.x86_64 
[root@redhat6 wangtao]# rpm -qa | grep vi   #查看安装哪些软件包带过滤
[root@redhat6 Packages]# rpm -qa |wc -l     #查看软件包数量
1291
[root@redhat6 Packages]# 
[root@redhat6 Packages]# rpm -ql zsh | more #查看软件包安装后有哪些文件
------------------------------------------------------
####即使没有安装也可以查看安装后生成哪些文件
[root@redhat6 Packages]# rpm -qpl /mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm 
------------------------------------------------------
查看命令是哪个包安装的
[root@redhat6 ~]# which vi
/bin/vi
[root@redhat6 ~]# rpm -qf /bin/vi
vim-minimal-7.2.411-1.8.el6.x86_64
[root@redhat6 ~]# which vim
/usr/bin/vim
[root@redhat6 ~]# rpm -qf /usr/bin/vim
vim-enhanced-7.2.411-1.8.el6.x86_64
[root@redhat6 ~]# rpm -ivh /mnt/Packages/vim-enhanced-7.2.411-1.8.el6.x86_64.rpm
warning: /mnt/Packages/vim-enhanced-7.2.411-1.8.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
package vim-enhanced-2:7.2.411-1.8.el6.x86_64 is already installed
[root@redhat6 ~]#
或者 rpm -qf `which vi` 不是单引号
---------------------------------------------------------------------------
-yum 安装------------------------------------------------------------------
#配置
[root@redhat6 mnt]# ls /etc/yum.repos.d/
rhel-source.repo
[root@redhat6 mnt]# 


#备份该文件
[root@redhat6 yum.repos.d]# cp rhel-source.repo  rhel-source.repo.bak


#修改文件rhel-source.repo
[root@redhat6 yum.repos.d]# vim rhel-source.repo


[rhel-source]       #serverid 唯一
name=Red Hat Enterprise Linux $releasever - $basearch - Source #描述
baseurl=file:///mnt/ #基本路径 一般是挂载目录
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release



#清除缓存
[root@redhat6 yum.repos.d]# yum clean all
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Cleaning repos: rhel-source
Cleaning up Everything
[root@redhat6 yum.repos.d]# 

#将服务器上的软件包信息 现在本地缓存,以提高 搜索 安装软件的速度
[root@redhat6 wangtao]# yum makecache 

#yum 安装软件包
[root@redhat6 yum.repos.d]# yum install lrzsz          
#有依赖包自动安装
[root@redhat6 yum.repos.d]# yum install mysql-server   
#有-y 参数时,无需手动干预安装
    [root@redhat6 yum.repos.d]# yum install -y mysql-server 


#安装软件包组
[root@redhat6 yum.repos.d]# yum grouplist   #查看可能批量安装的列表
[root@redhat6 yum.repos.d]# yum groupinstall 'Development tools

-------------------------------------------------
yum list|more               列出所有包文件,可搭配grep查询软件包,如yum list |grep kernel
yum info xxx                 显示包xxx详细信息,即使xxx没有安装
yum update                 全面升级系统
yum list updates           列出升级源上所有可以更新的包
yum list installed          列出已经安装的包
yum install xxx              安装xxx包
yum update xxx            升级xxx包
yum remove xxx            删除xxx包
-------------------------------------------------
#通过yum 查询命令是哪个包安装的
[root@redhat6 wangtao]# yum provides `which vim`
---------------------------------------------------------------------------
#源码编译安装软件包
tar -zxvf   aa.tar.gz


tar -zxvf  aa.tar.gz -C /tmp/wangtao
【指定解压到特定目录-C 参数】
进入到目录
./configure
make
make installed
---tar---------------------------------------------------------------------
#tar 打包 压缩 解压缩


tar -tvf archive.tar         # 详细列举归档文件 archive.tar【不解压也可以查看】
tar -xf archive.tar          # 展开归档文件 archive.tar 【解压】

[root@redhat6 wangtao]# tar -cf wangtao.tar w.txt ww.txt #打包 
[root@redhat6 wangtao]# tar -tvf wangtao.tar             #查看
-rwxr--r-x wangtao/root    425 2015-06-08 09:20 w.txt
-rw-r--r-- root/root       437 2015-06-08 09:23 ww.txt

[root@redhat6 wangtao]# tar -xvf wangtao.tar    #解压
[root@redhat6 wangtao]# tar -xvf wangtao.tar -C  w3      #解压到w3目录-C 


---------------------------------------------------------------------------
#打包+压缩
tar -zcvf newfile.tar.gz source
[root@redhat6 wangtao]# tar -zcvf aa.tar.gz *
[root@redhat6 wangtao]# tar -tvf aa.tar.gz  #查看
[root@redhat6 wangtao]# tar -zcvf wangtao.tar.gz wangtao.tar 
---------------------------------------------------------------------------
#tar.bz2 压缩
[root@redhat6 wangtao]# tar -jcvf wangtao.tar.bz2 wangtao.tar
#解压
[root@redhat6 wangtao]# tar -jxvf wangtao.tar.bz2  -C w2
 wangtao.tar
[root@redhat6 wangtao]#
---------------------------------------------------------------------------
#压缩
zip  包名.zip filename  
zip  -r 包名.zip dir

[root@redhat6 wangtao]# zip a.zip a.txt 【执行压缩】
adding: a.txt (deflated 86%)
[root@redhat6 wangtao]# ll
total 12
-rw-r--r--. 1 root root 5154 Jun  9 09:23 a.txt
-rw-r--r--. 1 root root  892 Jun  9 09:23 a.zip


[root@redhat6 wangtao]# zip -r boot.zip  /boot/grub/  【压缩目录】
---------------------------------------------------------------------------
#源码包安装 src.rpm  快捷方便
执行:rpmbuild --rebuild xx.src.rpm


进入目录:/root/rpmbuild/RPMS/x86_64 找到rpm安装
---------------------------------------------------------------------------
[ssh]  X Manager 4
---------------------------------------------------------------------------
#进程 
#pstree 显示进程树
-p     show PIDs
[root@redhat6 wangtao]# pstree -p      ####显示进程ID


[root@redhat6 wangtao]# ps -aux |more  【显示所有运行进程】
USER       PID    %CPU %MEM    VSZ   RSS     TTY      STAT START   TIME COMMAND
root         1     0.0  0.1    19352  1532     ?        Ss   09:17   0:00 /sbin/init


用户       进程ID 占用CPU  占用内存      使用内存   终端    进程状态
s  sleep
r  运行

STAT:
-------------------------
| < 高优先级|
| N 低优先级|
| l 多线程|
| + 前台程序|
-------------------------
---------------------------------------------------------------------------
#将进程打印新 输出到文件
ps -aux | tee ps.txt

[root@redhat6 wangtao]# ps -ef |grep vi  【和ps -aux 差不多】
UID        PID   PPID   C STIME TTY          TIME CMD
root         1     0   0 09:17 ?        00:00:00 /sbin/init  
父进程ID

[root@redhat6 wangtao]# ps -aux | grep vim  #过滤查看进程
---------------------------------------------------------------------------
top # 查看系统状态


[root@redhat6 wangtao]# top
top - 11:51:40 up  2:34,  2 users,  load average: 0.00, 0.00, 0.00
Tasks: 106 total,   1 running, 105 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1020380k total,   667596k used,   352784k free,    60012k buffers
Swap:  1048568k total,        0k used,  1048568k free,   396580k cached
- - -- - - -- - - - - - - - - - - - - - - - - - 
#top 快捷键 
#内存 排序
#CPU 排序
空格  #立即刷新
#显示每个内核CPU使用率
-----------------------------------------------------
[root@redhat6 wangtao]# top -p 2407  #只监测该ID 的进程

us% top 300% ????
每核cpu 百分比相加
3个100% 会出现300%
---------------------------------------------------------------------------
kill  杀 控制进程
kill 信号  进程ID


常见信号
kill -1   重新加载配置文件
kill -2   通知前台终止进程
kill -9   强制中断
kill -15  正常退出
+++++++++++++++++++++++++++
[root@redhat6 wangtao]# ps -aux | grep vim
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root      4285  0.1  0.3 143488  3348 pts/0    S+   14:27   0:00 vim aa.a
root      4288  0.0  0.0 103244   828 pts/1    S+   14:27   0:00 grep vim
[root@redhat6 wangtao]# kill -9 4285 【强制中断】
---------------------------------------------------------------------------
yum install httpd -y  安装


service httpd start  启动


ps -aux | grep httpd  查看


----------------根据名称杀死进程------
pkill httpd
killall httpd


[root@redhat6 ~]# killall httpd
[root@redhat6 ~]# ps -ef | grep httpd
root      4384  4265  0 14:39 pts/0    00:00:00 grep httpd
---------------------------------------------------------------------------
nice 进程优先级


nice -20 ~ 19  越小优先级越高


调整优先级 
1.nice -3 vim


nice -5 vim a.txt


renice -5 PID


top 查看进程优先级
---------------------------------------------------------------------------
#前后台切换进程  screen 
安装:
[root@redhat6 wangtao]# rpm -ivh /mnt/Packages/screen-4.0.3-16.el6.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:screen                 ########################################### [100%]
[root@redhat6 wangtao]# 
---------------------------------------------------------------------------
使用:
新建会话
输入 screen
Ctrl+a  然后按下d 会提示 [detached]


可以关闭终端  在另一个终端上恢复


恢复:先查看
[root@redhat6 ~]# screen -ls
There is a screen on:
4522.pts-1.redhat6(Detached)
1 Socket in /var/run/screen/S-root.


[root@redhat6 ~]# 
[root@redhat6 ~]# screen -r 4522  【-r ID 恢复】
恢复后 可以继续编辑保存退出
【exit 退出  screen】
---------------------------------------------------------------------------
#free 查看内存 和计算方法
[root@redhat6 ~]# free
 total       used       free     shared    buffers     cached
Mem:       1020380     728200     292180          0      63428     453768
-/+ buffers/cache:     211004     809376
Swap:      1048568          0    1048568
[root@redhat6 ~]# echo $[ 728200-63428-453768  ]
211004 【used列】
[root@redhat6 ~]# echo $[ 292180+63428+453768  ]
809376 【free列】
[root@redhat6 ~]# 


buffers 缓存硬盘数据  【读】
cached  缓存往硬盘写的数据
---------------------------------------------------------------------------
-----------------------------6.11----------------------------------------------
#查看系统分区
[root@redhat6 wangtao]# fdisk -l


/dev/sda1 
#[sd]表示挂载的是SCSI硬盘 
#[hd]表示挂载的是SATA硬盘 
#[a-z]表示第几块硬盘 a:第一块
#1 表示第一个分区


[主分区+扩展分区] 最多4个
逻辑分区从5开始
--------------------------------------------------------
df [目录全路径]
[root@redhat6 wangtao]# df /boot/ #查看某个目录是在哪个分区
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1               198337     28890    159207  16% /boot/
----------------------------------------------------------------------------
[root@redhat6 wangtao]# df -h  # 查看磁盘使用情况
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             8.7G  3.5G  4.8G  43% /
tmpfs                 499M     0  499M   0% /dev/shm
/dev/sda1             194M   29M  156M  16% /boot
[root@redhat6 wangtao]# 


######  可以将指定分区 挂载到自定义目录 ######
[root@redhat6 wangtao]#  mount /dev/sda1 /test/   #挂载
[root@redhat6 wangtao]#  umount /test/  #卸载
---shell----------------------------------------------------------------------
[root@redhat6 wangtao]# cat /etc/shells 
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
[root@redhat6 wangtao]# 


#############
系统环境变量: /etc/profile
用户环境变量: /home/username/.bash_profile


#用户登录后执行:/home/username/.bashrc   #可以把用户登录后需要执行的shell脚本写入此文件




alias 别名
alias cp='cp -i'  


linux启动过程
1.BIOS自检
2.启动GRUB
3.运行linux内核并检测硬件
4.运行系统的第一个进程init
5.init读取系统引导配置文件/etc/inittab中的信息初始化
6./etc/rc.d/rc/sysinit   系统初始化脚本
7./etc/rc.d/rcX.d/[KS]* 根据运行级别X配置服务
8./etc/rc.d/rc.local  执行本地特殊配置
9.其他特殊服务


------------------------------------------------------------------------------------
#配置网络
root登录 
[root@redhat6 wangtao]# setup
[root@redhat6 wangtao]# service network restart  #重启
[root@redhat6 wangtao]# ifconfig


#编辑文件配置网卡
[root@redhat6 wangtao]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
[root@redhat6 wangtao]# service network restart  #重启


------------------------------------------------------------------------------------
#smaba 服务器安装 【不常用】
[root@redhat6 wangtao]# rpm -qa | grep samba  #检查是否安装
#挂载光驱
[root@redhat6 wangtao]# mount /dev/cdrom /mnt
#复制rpm包
[root@redhat6 wangtao]# cp /mnt/Packages/samba*  soft/
[root@redhat6 soft]# chmod 744 sam*

#安装
[root@redhat6 soft]# rpm -ivh samba-common-3.6.9-151.el6.x86_64.rpm 
Preparing...                ########################################### [100%]
package samba-common-0:3.6.9-151.el6.x86_64 is already installed
[root@redhat6 soft]# rpm -ivh samba-client-3.6.9-151.el6.x86_64.rpm 
Preparing...                ########################################### [100%]
package samba-client-0:3.6.9-151.el6.x86_64 is already installed
[root@redhat6 soft]# rpm -ivh samba-3.6.9-151.el6.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:samba                  ########################################### [100%]
[root@redhat6 soft]# 


#设置密码
[root@redhat6 soft]# cat /etc/passwd  > /etc/samba/smbpasswd
[root@redhat6 soft]# smbpasswd -a wangtao
 New SMB password:
 Retype new SMB password:
 Added user wangtao.
[root@redhat6 soft]#
#启动
[root@redhat6 soft]# service smb start
#使用
在Windows中输入[\\x.x.x.x]  打开登录即可

#可以修改配置文件设置权限
[root@redhat6 home]# vim /etc/samba/smb.conf

------------------------------------------------------------------------------------
任务调度:系统在某个时间执行的特定的命令或程序。
使用:crontab
1.设置任务
[root@redhat6 home]# crontab -e
2.每隔一定时间执行[date > /home/mydate.txt]
--每天凌晨2:00 自动执行该任务 [date >> /home/mydate.txt]
  文件中加入 0 2 * * *  date >> /home/mydate.txt
    --每分钟执行
  文件中加入  * * * * *  date >> /home/mydate.txt
  
怎样调度多个任务?
---在crontab -e中直接写
---把所有任务写入一个可执行文件(shell 编程)
编写task.sh 文件 在其中写入要执行的命令
在crontab -e 打开编辑时 写入 [* * * * * /home/task.sh] 即可
----------------------------------------
[root@redhat6 home]# crontab -r  #终止任务
[root@redhat6 home]# crontab -l  #列出当前有哪些调度任务
---6.12--------------------------------------------------------------------------------
#显示网络统计信息
[root@redhat6 test]# netstat 
[root@redhat6 test]# netstat -an  #查看端口号监听
[root@redhat6 test]# netstat -anp #同时显示进程PID

[root@redhat6 test]# traceroute www.baidu.com #显示数据包经过历程 追踪路由


[root@redhat6 test]# route  #查看本机路由
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
link-local      *               255.255.0.0     U     1002   0        0 eth0
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
[root@redhat6 test]# 

-----------------------------------------------------------------------------
MySQL 数据库安装
[root@redhat6 soft]# tar -zxvf mysql-5.0.45.tar.gz  #解压】
#删除已经存在的mysql
[root@redhat6 soft]# yum remove mysql

#执行 make
[root@redhat6 soft]# make  【需等待】
[root@redhat6 soft]# make install
[root@redhat6 soft]# cd scripts
[root@redhat6 scripts]# mysql_install_db --user=mysql [安装有以下提示]
WARNING: The host 'redhat6' could not be looked up with resolveip.
This probably means that your libc libraries are not 100 % compatible
with this binary MySQL version. The MySQL daemon, mysqld, should work
normally with the exception that host name resolving will not work.
This means that you should use IP addresses instead of hostnames
when specifying MySQL privileges !
Installing MySQL system tables...
OK
Filling help tables...
OK


To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
....
[root@redhat6 mysql-5.0.45]# cd /usr/local/
[root@redhat6 local]# cd bin/
[root@redhat6 bin]# mysql -uroot -p  [登录]
 mysql> show databases;
 
#备份
[root@redhat6 bin]# ./mysqldump -u root -p  tao > /home/mydb.bak
数据库名
    #恢复
[root@redhat6 bin]# ./mysql -u root -p  tao < /home/mydb.bak

#停止服务
[root@redhat6 bin]# mysqladmin  shutdown
STOPPING server from pid file /var/run/mysqld/mysqld.pid
150612 11:33:15  mysqld ended


[1]+  Done                    ./mysqld_safe --user=mysql
[root@redhat6 bin]# 
--------------------------------------------------------------------------------------------------


 待续...










0 0