Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1502044
  • 博文数量: 329
  • 博客积分: 2773
  • 博客等级: 少校
  • 技术积分: 4219
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 14:17
个人简介

淡定从容,宁静致远

文章分类

全部博文(329)

文章存档

2016年(4)

2015年(50)

2014年(68)

2013年(45)

2012年(162)

分类: LINUX

2012-12-12 21:21:10

shell:
实现对系统管理如:
文件管理 (创建,复制,删除.)
用户管理 (创建用户、组)
文件权限管理
磁盘管理
一、bash Shell特性:
0. bash语法
命令 选项 参数
==命令是主体
==选项会影响到命令行为  一般以-或--开始
==参数是命令作用的对象
# useradd alice
# passwd alice
# su - alice
# exit
# reboot
# poweroff
# date
# date -s 12:30
# date 120113502012  date 月日时分年

# cd /root
# ls  查看当前目录的内容
# ls -a 查看当前目录的内容(包括隐藏)
# ls -l 查看当前目录的内容(以长模式)
# ls -l -h   -h, --human-readable
# ls -la
# ll (等价于ls -l)
# ls /  查看/的内容
1. 命令和文件的自动补齐
# ll anaconda-ks.cfg
# ll /dev/sda*
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# cat /etc/sysconfig/network-scripts/ifcfg-eth1
# service network restart
server
 
2. history命令历史记录
# history  仅查看历史记录
==使用历史记录
a. 光标上下键
b. # !28
c. # !da 执行历史记中最近以da开头的命令
d. # !! 执行上条命令
e. # !$
   # cat /etc/sysconfig/network-scripts/ifcfg-eth1
   # ll !$   !$上一条命令的最后一个参数
f. # ctrl + r 在搜索中输入想找命令的一部分
3. 快捷键
^l ^r ^c ^d ^a ^e
4. 命令别名
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# alias cet0='cat /etc/sysconfig/network-scripts/ifcfg-eth0'
[root@server ~]# alias  查看当前定义所有别名
alias cet0='cat /etc/sysconfig/network-scripts/ifcfg-eth0'
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
注: 别名优先
/bin/ls
alias ls='ls --color=auto'
# unalias date 取消别名
不使用别名:
[root@server ~]# /bin/date   方法一
2012年 12月 01日 星期六 13:51:10 CST
[root@server ~]#
[root@server ~]# \date   方法二
2012年 12月 01日 星期六 13:51:19 CST

二、在Linux中获得帮助
==命令使用方法
  # ls --help
  # man useradd   命令:
    搜索   /内容  /EXAMPLE    n下一个 N上一个
    退出   q
    将光标移动最后一行 G
    将光标移动第一行 gg
  # man genisoimage
==服务配置方法
  示例:查看nfs服务的配置   nfs服务配置文件是: /etc/exports
  # man exports
  # man vsftpd.conf  /etc/vsftpd/vsftpd.conf
  # man httpd  /etc/httpd/conf/httpd.conf
  # man smb.conf  /etc/samba/smb.conf
技巧:
1. 使用关键字检索
[root@server ~]# man -k '_selinux' |grep ftp
ftpd_selinux         (8)  - Security Enhanced Linux Policy for the ftpd processes
ftpdctl_selinux      (8)  - Security Enhanced Linux Policy for the ftpdctl processes
tftpd_selinux        (8)  - Security Enhanced Linux Policy for the tftpd processes
# man ftpd_selinux 手册名
作业:
[root@server ~]# ll /usr/bin/passwd  修改用户口令的命令
-rwsr-xr-x. 1 root root 30768 2月  17 2012 /usr/bin/passwd
[root@server ~]# ll /etc/passwd  保存用户信息的账号文件
-rw-r--r--. 1 root root 1691 12月  4 2012 /etc/passwd
[root@server ~]# man passwd
[root@server ~]# man 5 passwd
[root@server ~]# man -k 'passwd'
passwd               (1)  - update user's authentication tokens
passwd               (5)  - password file
 
更详细的文档:/usr/share/doc
例如:学习PAM
# ls /usr/share/doc/pam-1.1.1/html/
对于html文档:
方法一:
1. 打开firefox
2.
方法二:
# firefox /usr/share/doc/pam-1.1.1/html/sag-pam_mail.html
 
shell之文件管理:
=============================================================
1. linux文件系统层次结构
   单根的结构
   根目录下的重要目录:
   /boot  和启动相关文件kernel,grub,initrd,initramfs
   /bin   普通使用的命令, /bin/ls, /bin/date
   /dev   设备文件 /dev/sda,/dev/sda1,/dev/sr0
   /etc   配置文件*****, 一般都是文本文件
   /home  普通用户家目录的小区 alice家目录: /home/alice
   /lib,/lib64 标准库文件,32位,64位
   /media /mnt /misc 常见设备挂载目录
   /opt   一般是第三方软件安装目录
   /proc  虚拟文件系统(不占用磁盘空间,只在内存),存放的是kernel,进程的一些状态信息
   /root  root用户的家目录
   /sbin  超级用户使用的命令
   /lost+found 孤儿文件
   /usr   系统文件
   /var   经常变化的文件,日专文件,数据库文件...
2. 路径 cd
   # ls -a
   .   链接到当前目录         
   .. 链接到上一级目录
   绝对路径:绝对能表达到达目标的路径
    . 从/开始
    . # cd ~alice
   相对路径:
     ..
3. 常见的文件管理命令: pwd,ls,cd,touch,mkdir,cp,mv,rm
   ls  -a -l -h -d --full-time
   cd  相对路径 绝对路径 -(返回) (直接cd,回自己的家)
   touch 创建空文件    # touch 文件名1 文件名2 (不存在)
         修改文件时间 # touch root.iso(已存在) 
         -t STAMP 使用[[CC]YY]MMDDhhmm[.ss]
         # touch -a -t 1501011200 root.iso
   ================================================================
   小知识: 文件时间
   ll   时间,仅最后修改时间
   [root@server ~]# stat root.iso
   File: "root.iso"
   Size: 1587200    Blocks: 3104       IO Block: 4096   普通文件
   Device: fd00h/64768d Inode: 926029      Links: 1
   Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
   Access: 2012-12-01 14:13:53.332670866 +0800
   Modify: 2012-12-01 14:13:53.378794323 +0800
   Change: 2012-12-01 14:13:53.378794323 +0800
   atime:  访问时间    访问过内容
   mtime:  修改时间    修改过内容
   ctime:  改变时间change 文件的属性,比如权限
   ================================================================
  
   # mkdir dir1
   # mkdir aaa bbb
   # mkdir /home/dir2
   # mkdir -p /home/dir3/aaa   创建目录结构
   # mkdir -v /home/dir5
  
   [root@server ~]# mkdir -v /home/dir8 /home/dir9
   mkdir: 已创建目录 "/home/dir8"
   mkdir: 已创建目录 "/home/dir9"
   [root@server ~]# mkdir -v /home/{dir10,dir11}
   mkdir: 已创建目录 "/home/dir10"
   mkdir: 已创建目录 "/home/dir11"
[root@server ~]# mkdir -vp /home/{dir12/{aaa,bbb},dir14}
mkdir: 已创建目录 "/home/dir12"
mkdir: 已创建目录 "/home/dir12/aaa"
mkdir: 已创建目录 "/home/dir12/bbb"
mkdir: 已创建目录 "/home/dir14"

cp用法:
cp [选项]... 源文件... 目录
[root@server ~]# cp -v day1.txt /home/dir2/
"day1.txt" -> "/home/dir2/day1.txt"
[root@server ~]# cp -v day1.txt /home/dir2/aaa.txt
"day1.txt" -> "/home/dir2/aaa.txt"
[root@server ~]# cp -v day1.txt install.log root.iso /home/dir2/
cp:是否覆盖"/home/dir2/day1.txt"? y
"day1.txt" -> "/home/dir2/day1.txt"
"install.log" -> "/home/dir2/install.log"
"root.iso" -> "/home/dir2/root.iso"
[root@server ~]# cp /etc/passwd /etc/hosts /etc/sysconfig/network-scripts/ifcfg-eth1 .
不使用别名的三种方法
[root@server ~]# /bin/cp -f day1.txt /home/
[root@server ~]# \cp -f day1.txt /home/
[root@server ~]# unalias cp 临时删除别名
[root@server ~]# cp -f day1.txt /home/

[root@server ~]# cp -rf day1.txt dir1 dir7 /home/
[root@server ~]# \cp -rf day1.txt dir1 dir7 /home/

[root@server ~]# rm -rf dir1 dir7
正确的删除方法:
[root@server ~]# cd /home/
[root@server home]# rm -rf dir1

[root@server ~]# mv aaa /home/
[root@server ~]# mv -v passwd /home/passwd1
"passwd" -> "/home/passwd1"
已删除"passwd"
# mv bbb ccc  将bbb改成ccc

4. Linux文件的类型
   查看文件类型:
   4.1 ls 以长模式看第一个字符
       -  普通文件 (文本文件、二进制文件/bin/ls、音频、视频、压缩....)
       d  目录文件
       b  (块)设备文件    /dev/sda
       c  (字符)设备文件  /dev/tty1,/dev/tty2,/dev/pts/0
       l  链接文件
       s  socket套接字文件
       p  管道文件
   4.2 file
[root@server ~]# file /bin/date
/bin/date: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
[root@server ~]# file day1.txt
day1.txt: UTF-8 Unicode English text
[root@server ~]# file /dev/sda
/dev/sda: block special
[root@server ~]# file /dev/tty1
/dev/tty1: character special
[root@server ~]# file /dev/stdin
/dev/stdin: symbolic link to `/proc/self/fd/0'
[root@server ~]# ll /dev/ |grep ^s
srw-rw-rw-  1 root root           0 12月  5 16:35 log
[root@server ~]# file /dev/log
/dev/log: socket

====================================================================
修改,查看的文件:文本文件
5. 查看文件的内容
   5.1 查看文本文件 cat more less head tail
       # cat /etc/hosts
       # cat -n /etc/hosts
       # cat /etc/sysconfig/network-scripts/ifcfg-eth1
       # less /etc/passwd   支持上下、查找
       # head /etc/passwd   头10行
       # tail /etc/passwd
       # tail -20 /var/log/messages
       # tail -f /var/log/messages  动态查看文件   打开一个终端 logger xxxx
   5.2 查看二进制文件
       # strings /bin/ls
6. 过滤文件内容 grep egrep
   # grep 'root' /etc/passwd
   # grep --color 'root' /etc/passwd
   # grep --color '^root' /etc/passwd     ^root表示以root开头的行
   # grep --color '/bin/bash$' /etc/passwd
   # egrep --color '^alice|^root' /etc/passwd      |或者
7. 文本编辑 vi ==> vim
   # vim /etc/sysconfig/network   修改主机名
   # vim /etc/hosts
   # vim /etc/resolv.conf
   # vim /etc/sysconfig/network-scripts/ifcfg-eth1 //# ip addr查看IP
 
   命令模式:
   1. 复制,删除文本
      x   删除一个字符(光标所在处)
      dd  删除一行   2dd删除2行(从光标所在行开始)
      yy  复制一行   2yy
      p   粘贴(粘到光标所在行的 下一行)
      u   撤消
      D   从光标处删除至行尾
   2. 进入其它模式
      i   进入插入模式
      o   进入插入模式,下一行
      :   进入末行模式
   末行模式:
   1. 保存退出 :q :q! :wq :wq!
 
阅读(594) | 评论(0) | 转发(0) |
0

上一篇:yum 配置

下一篇:day 2

给主人留下些什么吧!~~