sda hda 表示整块硬盘 sda:sata(家用),scsi(服务器),sas(服务器) sda表示第一块硬盘,sda1表示第一个分区 sda2表示第二个分区 sdb表示第二块硬盘 hda:ide(老版硬盘) 挂载:把分区挂载到目录下的过程 挂载点:挂载的目录 需要挂载的分区:挂载设备 第一个挂载点/boot type:ext4 size:100mb 第二个挂载点/ type:ext4 size:18000mb(必须有此分区) 第三个挂载点(交换分区、虚拟内存) type:swap size(物理内存的两倍): 1000mb(必须有此分区) 终端命令 ........................................................................................ who 命令:判断谁在系统上及其登录方式 tty1,tty2分别指第一台虚拟控制台和第二台虚拟控制台; pts/0指 在X服务器中打开的第一个终端 ctrl+alt+F1 到ctrl+alt+F6 可以访问6台虚拟控制台 ctrl+alt+F7 回到图形界面 ssh 用户名@目标服务器地址 可以登录远程服务器操作机器 alt+F2 打开运行应用程序 输入 gnome-terminal 打开终端 ctrl+shift+n 打开一个新的终端 ctrl+shift+t 打开一个新的标签 alt+1 alt+2 ...可以在标签中进行切换 ctrl+shitf+w 关闭标签 ctrl+shitf+q 关闭窗口 alt+F4 关闭窗口 shell 命令解释器 把键入的命令解释给内核 cd change directory 更改路径 man 命令名 可以看到命令的全拼 alt+. 列出之前执行过命令最后一部分 pwd 打印工作目录 cd - 切换到上一次去过的目录 ls -l 以常格式列出我们的文件 ll是ls -s 的别名 列表格式说明 文件类型|权限 硬链接的个数(一个文件有两个名字) 文件所有者 文件所属组 大小(字节) 时间(modify时间) 文件名 drwxr-xr-x 3 root root 22 修改时间 c ll -h 显示文件大小的单位 软链接:快捷方式 有两个文件 一个是源文件一个是快捷方式 ls -a 显示所有文件 stat 文件名 查看文件信息 ls -d 目录名 查看目录信息 ls -i 显示i节点 ls -R 递归显示 rm -rf 文件名 删掉不要的文件 目录结构 bin:放的都是二进制文件,都是可执行的命令 sbin:里面的命令只能由root用户执行 dev: 存放设备文件(键盘,光驱..) lib: 都是模块(内核中的所有模块,例如:驱动模块) media:插入U盘的实际位置,会挂载到这里,计算机里面的只是一个快捷方式 net: srv: sys: cgroup: misc: root:root帐户的家目录,普通帐户访问需要授权 home:普通帐户的家目录,root帐户可以直接访问 usr: 存放的下载软件目录,软件主要的安装目录,相当于window program boot:启动目录,启动文件driver ,initrd vmlinuez,grab文件加载器 etc: 存储配置文件的目录 lib64: 64位的库 misc: opt: 经常用作挂载目录 var: 存储一些经常变化的文件,例如:日志文件,下载的一些文件,访问的一些网站等 lost+found:修复文件系统碎片,一个新分区的标志 mnt: 挂载目录 proc:内核初始化目录,虚拟文件系统。映射当前内核状态的一个目录。 关机之后文件清空 selinux: 高级安全的内容 tmp:存放临时文件 路径 绝对路径:凡是以根开始的路径 相对路径:凡是非根开始的路径 基本命令 基本文件操作命令 linux中的文件是没有扩展名的 创建文件:touch 文件名称 如果当前目录下有一个同名的文件 touch后将会修改文件modify时间,其它什么也不做 编辑文件:gedit 文件名(用gedit打开,如果不再同一目录下需要写明目录) echo 打印的内容 >a.txt 可以向a.txt 打印文件内容 >会覆盖原文件内容 >>会在文件后面追加 echo xx > a.txt 如果没有a.txt会自动创建 cat > a.txt 也可以向a.txt 中写入内容 cat >> a.txt 同上 回车后输入需要添加的内容 查看文件:cat a.txt 拷贝文件:cp 源文件 目标路径; 拷贝文件夹: cp -r 需要拷贝的目录 目标位置 剪切文件:mv 源文件 目标路径 删除文件:rm 源文件; rm -r 删除目录;rm -f(--fource)强制删除 帮助 翻页 shift+pgup shift+pgdn --help ...多个 [] 表示可选项 {}表示必选项 <> 表示必选项 | 表示二选一 {|} 必选一个 没有被任何括号括起来的也是必选项 man rhel5 中man手册分为9章 1、命令 2、系统调用 3、C语言标准库 4、预留的 5、配置文件写法 6、游戏 7、杂项 8、系统管理命令 9、有关内核的 man -f 要查的 可以知道都在那一章有 man -k 要查的 会搜索所有含 要查的 内容 搜索关键字 /要搜索的关键字 n 向下翻 N向上翻 g最顶端 G最底端 编辑器 gedit vim nano emacs vim 《vi与vm》 vim 文件名 打开文件 命令模式: 从命令模式到编辑模式: 在命令模式中: a(光标位置后面),i(光表位置前面), o(换行),r(单个字符替换),A(行末),I(定位到行头),O(在上一行开始),R(替换) 从编辑模式到命令模式:ESC 复制:yy 数字+yy 多行复制 粘贴:p 删除:dd 删除3行 前面加3 剪切:dd 撤销:u 回滚:ctrl+r 删除当前光标位置以后的内容:D 命令模式 删除当前光标位置之前的内容:ctrl+u 编辑模式 可视块模式:ctrl+v shift+i 插入内容 两次ESC 可视行模式:shift+v 自动缩进:shift+v = 可视模式:v 用 v 取消可视化模式 两次和一次(可视模式) gg 回到顶端 G 回到底端 编辑模式: 尾行模式:进入尾行模式: 1、用 / 2、 :命令 :set nu 显示行号 :set nonu 取消行号 把tab变成4个空格 vim /etc/vimrc 所有目录都会生效 vim ~/.vimrc 在想生效用户家目录下创建 set ts=4 set sw=4 不区分大小写 set ic 取消 set noic 自动缩进 set si set ci :sp 在同一个终端中打开一个文件 上下对比 :vsp 在同一个终端中打开一个文件 左右对比 退出:q 保存退出:wq 强制保存退出:wq! 替换:%s/源关键字/替换以后的内容/g % 表示所有行 不写%为 替换当前光标所在行 8 表示替换第8行 5,10 表示替换5到10行 g 表示global 一行里面所有的关键字 不过不加表示只替换第一个 查看IP地址 ifconfig vncviewer 控制远程桌面 到桌面路径 Desktop ctrl+l 清屏 ctrl+d 正常结束 ctrl+c 强制结束 e! 回到文本刚刚打开的状态 用户和组 用户 创建用户:useradd 参数 用户名称 uid:user identify 系统识别帐户的标识 数字:系统帐户(0~499) 非手动添加,安装软件后系统自动生成帐户 普通帐户(500~) gid:group identify 系统识别组的标识 描述:对用户的描述,例如:性别,家庭住址,电话等 家目录: 登录shell:每一个帐户都会有一个登录shell 默认shell:bash 锁定登录shell:把登录shell改成nologin 当我们添加帐户后会自动添加到etc/passwd useradd -u 1000 用户名 指定用户uid 1000 useradd -g 10 用户名 指定gid useradd -c 描述字符 useradd -d /user1 指定家目录 useradd -s 指定登录的shell useradd -M user1 不创建家目录 passwd分为7列 以:分开 用户名:密码:uid:gid:描述:家目录:登录shell(默认是bash) /etc/shadow 这个文件中存放了真正的密码 查看用户:id+用户名 或者到/etc/passwd这个文件中查看 设置密码:passwd 直接回车会修改当前登录用户密码 passwd 用户名称 修改用户密码 普通帐户不能修改其他人的密码,普通帐户不能设置自己的初始密码 锁定密码:passwd -l 用户名 解锁密码:passwd -u 用户名 查看用户:cat /etc/passwd 切换用户:su- 用户名 删除用户:userdel 用户名 userdel -r 用户名 连带个人信息一起删除 组 每次添加一个新的帐户就会产生一个同名的组,我们把这个组成为主属组。 附属组: 改变用户附属组:usermod -G 组名 需要添加的用户名 添加一个新组:groupadd 组名 查看组:cat /etc/group 组名:组密码:组id:组成员 修改组: 删除组中成员:gpasswd -d 用户名 组名 把用户添加到组(增加用户附属组):gpasswd -a 用户名 组名 添加组管理员:gpasswd -A 用户名 组名(可以添加删除用户) ?怎么删除组长 查看组长:cat /etc/gshadow 组名:组密码:组长:组员 给组添加密码:gpasswd 组名 etc下的passwd和group,除了密码不能修改外,其它字段可以随便改。 权限 chown:可以修改一个文件的所有者和所属组 chown 用户名 文件名 把文件分给用户 chown .文件所属组 文件 修改文件所属组 chown 文件所有者.文件所属组 文件 修改文件所属组和文件所有者 基本权限 ugo权限:user group other --- --- --- r read :cat w write :目录-》删除,创建 x execute:文件 目录 修改权限: 1、字母 chmod u+x 文件名 给文件所有者添加x权限 以此类推 g+ ,o+ 多个权限变更中间用逗号分开 chmod a-w 去掉三个部分的w 2、数字 4=r 2=w 1=x 数字是八进制的 -是0 u g o rw- r-- -wx 420 400 021 6 4 3 chmod 033 文件名 将会改成 --- -wx -wx umask码 是用来控制文件和目录默认权限的 系统在没有umask的情况下创建文件的权限是666,创建目录的权限是777 设置umask码 umask 三位数字 高级权限 suid:suid经常被加在可执行文件上,当加了suid之后,执行这个命令的人就会拥有命令对象所有者的权限 切换普通帐户 chmod 4755 文件名(`which cat`) which cat 会得到一个结果 chmod 4755 $(which cat) 同上 cat /etc/shadow sgid:经常给目录用,当给一个目录加了sgid之后,后面不管谁来这个目录下面创建文件,文件的所属组都会继承目录 su -用户名 touch a.txt 建立一个文件 chmod 2777 目录名 sticky:当给一个目录加了t权限之后,所有人在这个目录下不能删除其他人的文件 chmod 1777 目录名 隐藏权限 加了隐藏权限的文件,root帐户也不能删掉,被加了隐藏权限的文件,可以读,不能删除,不能覆盖 chattr +i 文件名(目录) 添加隐藏权限 不可能向文件中追加内容 取消隐藏 -i lsattr 文件名(目录) 查看隐藏权限 chattr +a 文件名称 添加隐藏权限 可以继续向文件中追加内容 取消隐藏 -a facl 打包压缩 tar:打包命令,不带压缩功能 打包命令:tar cvf 打包后的文件名(.tar) 文件1 文件2 文件3 解包命令:tar xvf 需要解的包 -C /解压后的路径/ c create 创建 v verbose 详细过程 f file 文件 -C 指定解压目录 打包一起压缩: tar cvzf 压缩包名.gz 文件1 文件2 tar cvjf 压缩包名.bz2 文件1 文件2 gzip: 压缩命令,不会进行打包 压缩命令:gzip 需要压缩的包 解压命令: gunzip 需要解压的压缩包 解压出来是包 tar xvzf 需要解压的压缩包 可以解压缩解包一起 (-C //) bzip2: 压缩命令: bzip2 包名 解压缩: tar xvjf 需要解压缩的压缩包(-C //) - 普通文件 d 目录文件 b 块设备文件(block) c 字符设备文件 s socket p pipe管道文件 l 符号链接文件 ............................................................................................. 对目录来说 cd 需要什么权限 测试t权限 测试打包压缩 创建帐户user1,user2两个帐户。使用user1创建目录/user1,修改其权限,要求user2不可以在/user1里面创建文件,但是 user3可以 查看usermod命令的man手册,如何锁定帐户(非锁定登录shell),做实际测试 创建用户tom,创建组caixu和xingzheng,要求tom的主属组为caiwu,附属组为xingzheng. 查看chmod的man手册,如何递归修改目录权限。 ............................................................................................. rpm yum 红帽 查看系统版本 uname -r lsb_release -a 挂载镜像 .iso 镜像 mount -o loop /路径/镜像名.iso /mnt(此目录为挂载目录,也可以自己更改一个,但必须是空目录) 虚拟机(挂载光驱) mount /dev/cdrom(cdrom-sr0,cdrw,cdrw-sr0) /mnt 卸载挂载镜像 umount 挂在点 检查是否挂载成功 cd mnt 看是否有光盘里的东西 images, isolinux 有这两个文件就说明挂载成功 /mnt/packages 红帽6软件 /mnt/Server 红帽5软件 软件包名字构成 软件名称-版本号(主版本号.次版本号.修订版本号-修改号)-使用于操作系统版本-平台(例如:i386).rpm 软件安装 rpm -ivh 软件包名称 -i install -vh 显示详细信息 强制安装软件: rpm -ivh 软件包名称 --force --nodeps 不检查依赖性强制安装 --nodeps 卸载的时候不检查依赖性关系强制卸载 过滤命令 ls |(管道符) grep(过滤命令) vnc(需要过滤的关键字) 查看软件名称 rpm -qa | grep vnc 所有已经安装到系统中的软件 查看软件安装目录 rpm -ql 软件名称 查询软件信息 rpm -qi 软件名称 q query 查询 a all l list 软件启动 查看启动命令 rpm -ql 软件名称 bin目录下的文件就是启动文件,名字就是启动命令 通过启动命令查找对应软件 查询命令绝对路径: which 命令名 查询命令软件: rpm -qf 命令绝对路径 /etc/motd 可以在这个文件中修改登录欢迎界面 卸载软件 rpm -e 软件名称 卸载软件的时候先卸载主包,在卸载依赖包 客户端 mysql 服务器端: mysql-server yum 客户端:安装软件的机器 客户端需要配置文件:/etc/yum.repos.d/yum.repo(配置文件自己起名 但是必须要.repo结尾) 清空目录下所有文件:rm -f /etc/yum.repos.d/* 编辑配置文件: 所有行顶格写 ----------------------------------- [rhel5] 名字 用来区分其他的yum源 name=rhel5 yum源的描述 baseurl=file://本地yum源的绝对路径(/mnt/Server) enabled=1 1表示yum源可以使用 0表示不可以使用 gpgcheck=0 不检查软件 ----------------------------------- yum命令: yum客户端命令: 安装:1、查看要安装的软件名称: yum search 软件名 查询已经安装的和没有安装的 2、安装:yum install 软件名 可以同时安装多个软件 用空格隔开 3、列出已经安装系统上的软件和yum源里面没有安装的软件: yum list 4、列出已经安装的和没有安装的软件组:yum grouplist 安装组软件 yum groupinstall 软件组名称 5、yum clean all 清理yum缓存 6、 卸载软件: yum erase 软件名 yum remove 软件名 服务器端:提供yum源 客户端和服务器在一起:本地yun源 客户端和服务器端分开:远程yum源 进程 查看系统中所有进程:ps -e pid : tty : time : CMD 进程标识 第几个终端上运行 程序运行的时间 进程的名称 (?运行在后台的进程) 把图形应用程序放在终端的后台 程序运行命令 & 杀死进程:kill -9 进程的pid -9 强制杀死 或者 kill -kill 等价 kill -9 -15 (term) 正常杀死 如果不写-15 默认为正常杀死 -18 (cont) 激活 -19 (stop) 暂停 xkill 改变鼠标状态 点哪哪死 退出ctrl+c -l 查看所有的信号 man 7 signal 查看信号对应的解释 ps aux: 查看所有进程 ps auxf: ps -ef: top: pgrep 进程名称: kill: pkill 进程明称: lsof -i:端口号 : 查看进程号 pidof 进程名称: 查找进程ID 找回root密码 1、重启系统进入特权模式 上下键进入 2、按 e 选择 第二行 按 e 3、空格 1 回车 4、b 特权模式不需要密码,直接进入帐户 服务 ssh: 1、安装软件 yum install openssh -y 2、配置 3、启动 /etc/init.d/sshd start 客户端:lftp 重启 -----------------restart 停止 -----------------stop 4、测试(使用) 远程管理,远程登录目标机: ssh 用户名@ip地址 如果用户明是ROOT则用户名可以不写 远程拷贝: w:可以查看登录到机器上的人 killall sshd 杀死登录本系统的人,同时关掉ssh 退出远程登录的系统:exit 查看IP地址:ifconfig 设置ip :ifconfig eth0 ip地址 hostname:查看主机名称 修改主机名称:hostname 主机名称 登录解析文件:/etc/hosts 把-->> ip地址 主机名称 写入上面的文件中就不会出现登录卡的现象 远程拷贝文件 scp 被拷贝文件 目标地址 未登录: 本地-->> 远程 scp 文件 ip地址:/路径/ 已登录: 远程-->>本地 scp 文件 ip:/路径/ ....................................................................... tftp(向arm板里面传东西) 客户端:tftp 登录:tftp ip(服务器的ip地址) 下载文件:get 文件名(存在当前目录下) 退出:quit 服务器端:tftp-server 启动服务:chkconfig tftp on 关闭服务:chkconfig tftp off 拷贝文件目录: rhel6: cp a.txt /var/lib/tftpboot/ rhel5: cp a.txt /tftpboot 修改权限:chmod 777 /tftpboot -R(递归修改) ....................................................................... vsftpd 下载服务器 安装软件:vsftpd 服务器端:vsftpd 启动服务: /etc/init.d/vsftpd start -------------- restart 拷贝文件目录: /var/ftp ftp他的权限不能大于755 ftp的家目录,共享文件目录 在ftp下建立目录download 改变权限成 777 在download目录下我们交换文件 客户端:lftp 登录:lftp ip(服务器) >ls //就可以看到里面东西 >cd download 查询内容 >get aa.txt -o /下载目标路径/ 下载文件 >mirror 需要下载的目录 /目标路径/ 下载目录 退出:quitcd ............................................................................ 关闭防火墙: /etc/init.d/iptables stop 关闭selinux: setenforce 0 虚拟机快照 相当于虚拟机系统的备份 ...................................................................................... http www服务器 安装软件:httpd yum install httpd -y 启动服务:/etc/init.d/httpd start 家目录:/var/www/html 发布网站: 启动服务 cd /var/www/html/ vim index.html 下载用服务器: /var/www/html/download 需要先往家目录里面建立一个目录,然后将需要下载的文件拷贝进去 客户端:ip地址/download 就到了下载连接了 date 查看当前时间 计划任务 at:一次性 at 时间(15:00) >操作 例如:touch /tem/aa.txt >ctrl+d(结束操作) crontab:循环性 启动服务:/etc/init.d/crond restart 编写计划任务:crontab -e 时间 动作 分钟(0-59)小时(0-23)日(1-31)月(1-12)周(0-7) 命令(wall haha) */1**** wall haha */5 每隔五分钟 10 每个小时的第10分钟 * 每天 5,8 每个小时的第5,第8分钟 5-10 每小时5,6,7,8,9,10分钟都执行 取消计划任务:Crontab -e 清空 wall 内容 在所有终端中打印消息 日志 系统日志存储位置 /var/log 常用日志: messages 实时查看日志:tail -f /var/log/messages tail -f xerlog ftp日志 w 查看tmp日志 当前登录系统的用户 last 查看 wtmp日志 查看一个月之内登录系统的用户 lastlog 查看lastlog文件 系统内的帐户最后一次登录系统的时间 视频 shell 添加100个帐户 #!/bin/bash //指定一个命令解释器 for((i=101;i<=1000;i++)) do if test $i -eq 200 then exit else useradd user$i echo "添加第" $i "个帐户成功" fi done