linux笔记( 更新中)

来源:互联网 发布:js table.rows 编辑:程序博客网 时间:2024/06/03 19:48

    • 帮助手册命令 man
    • Linux 下修改 root 密码方法
    • 权限
    • 查看服务
    • 常用目录
    • 常用命令
    • 文件系统
    • Swap
    • vi
    • Bash
    • scripts
    • 账号管理
    • 配额 Quota
    • Raid 磁盘阵列
    • 定时任务
    • 参考

帮助手册命令 man

man命令:可以通过一些参数,快速查询linux帮助手册,并且格式化显示。

Linux 下修改 root 密码方法

passwd root

权限

chgrp :改变文件所属群组chown -R:改变文件拥有者chmod :改变文件的权限, SUID, SGID, SBIT等等的特性   su - user1  切换身份user1

查看服务

 /etc/services  /etc/init.d/  启动脚本处     /etc/* :各服务各自的配置文件 service --status-all 查看所有服务

常用目录

/etc                主要配置文件/bin                常用执行文件/sbin               重要的系统执行文件/dev                存放设备文件/dev/null           垃圾桶/home               用户目录/media /mnt         挂载外部装置/opt                第三方协议软件 习惯放/usr/local/proc               虚拟文件,存放内存数据:系统cpu、网络../ (root, 根目录):   与开机系统有关;/usr (unix software resource):与软件安装/执行有关;/usr/local/        自己下载的软件安装目录/var (variable):  与系统运作过程有关的常态性变动的文件:缓存、log等。/etc/issue         配置开机画面显示/etc/motd          配置登录显示

常用命令

双击tab            获取所有可能的命令,极其方便!ls -alh           list所有文件包括隐藏文件set               获取所有变量,包含bash接口配置相关echo $$           当前shell的PIDecho $?           返回上个命令的执行结果env/export        显示所有环境变量echo $PATH        显示环境变量中的PATHPATH=$PATH:/home/dmtsai/bin  增加目录到变量export var1       使其变为环境变量,可以让子shell使用echo $(uname -r)  显示系统版本uname -a          显示系统架构设置变量           name=justin取消变量           unset name命令中使用其他命令   $(command)创建目录:          mkdir /tmp/chapter7_1修改属性:          chown -R dmtsai:users /tmp/chapter7_1修改权限:          chmod -R 755 /tmp/chapter7_1//SUID/SGID/SBIT 权限配置--> 要有x权限           4 为 SUID       暂时将具有该程序拥有者 (owner) 的权限;        2 为 SGID       暂时获得得该程序群组的支持        1 为 SBIT       wx权限下,仅有自己与 root 才有权力删除该文件观察文件类型:       file搜索命令完整路径:    which搜索文件:     whereis       whereis 与 locate 是利用数据库来搜寻数据    updatedb      手动更新数据库    find          强大的搜寻命令,但时间花用的很大! 因为 find 是直接搜寻硬盘df -h             获取目前挂载的设备,整体磁盘使用量du -sh            获取文件所占容量dumpe2fs          查询每个区段与 superblock 的信息ln -s /etc/crontab crontab2 创建符号链接,类似windows 的快捷方式read -p "Please keyin your name: " -t 30 named  读取键盘输入declare                   声明变量ulimit -a                 显示当前用户的数据限制值last                      显示登陆者信息alias                     显示当前所有的命令别名,设置别名unalias                   取消别名history                   使用过的命令历史type -a                   获取命令搜寻顺序!comand                   运行最近命令开头为command的命令source/.                  读入环境配置文件,可以直接在父程序运行脚本//输入输出标准输入  (stdin) :代码为 0 ,使用 < 或 << ;标准输出  (stdout):代码为 1 ,使用 > 或 >> ;标准错误输出(stderr):代码为 2 ,使用 2> 或 2>> ;重定向操作符(&>)将标准输出和错误输出同时送到同一文件//pipe|grep|cut|sort|uniq|wc|tee test.txt            双向重导向,分送到文件去与屏幕stdout,可以让下个命令继续使用       - 减号                   可以取用前一个命令的 stdout    //正则grep '^ha' test.txt -n    单引号中使用正则sed                       将数据 standard input 进行取代、删除、新增、撷取特定行等                          e.g: nl test.txt |sed '2,3d'                               sed 's/要被取代的字串/新的字串/g'printf                    格式化输出awk '条件类型1{动作1} 条件类型2{动作2} ...' filename   处理数据diff/cmp                  比对两个文件//test                      检查工具, 判断文件属性等

文件系统

  • Linux 的正统文件系统则为 Ext2 (Linux second extended file system, ext2fs)这一个。此外,在默认的情况下,windows 操作系统是不会认识 Linux 的 Ext2 的。

  • inode 表 每个文件都仅会占用一个 inode 而已,记录文件的属性及该文件实际数据是放置在哪几号 block 内;

  • data block是用来放置文件内容数据地方,在 Ext2 文件系统中所支持的 block 大小有 1K, 2K 及 4K 三种而已

  • 一般来说,我们将 inode table 与 data block 称为数据存放区域,至于其他例如 superblock、 block bitmap 与 inode bitmap 等区段就被称为 metadata (中介数据) 啰,因为 superblock, inode bitmap 及 block bitmap 的数据是经常变动的,每次新增、移除、编辑时都可能会影响到这三个部分的数据

Swap

  • swap 的功能就是在应付物理内存不足的情况下所造成的内存延伸记录的功能。
  • 当物理内存不够时,则某些在内存当中所占的程序会暂时被移动到 swap 当中,让物理内存可以被需要的程序来使用。另外,如果你的主机支持电源管理模式, 也就是说,你的 Linux 主机系统可以进入『休眠』模式的话,那么, 运行当中的程序状态则会被纪录到 swap 去,以作为『唤醒』主机的状态依据! 另外,有某些程序在运行时,本来就会利用 swap 的特性来存放一些数据段, 所以, swap 来是需要创建的!只是不需要太大!

vi

0/Home 移动到行前$/End  移动到行尾[Ctrl] + [f] 向下移动一页[Ctrl] + [b] 向上移动一页G   移动到这个档案的最后一行gg/1G  移动到第一行u 撤销o 当前位置下创建一行O 当前位置上创建一行dd 删除光标所在行x 删除光标后字符X 删除光标前字符yy 复制当前行p  粘贴J 当前行连接下一行v 字符选择V 行选择ctrl+v 区块选择y 复制选择d 删除选择/word  搜寻字符串    ,光标之上?word  搜寻字符串,光标之下n      继续搜索vim 后面同时接好几个档案可同时开启 :n  编辑下一个档案:N  编辑上一个档案:files  列出目前这个 vim 的开启的所有档案//多窗口:sp [filename] 开启一个新窗口[ctrl]+w+↓   移到下方窗口[ctrl]+w+↑   移到上方窗口 

Bash

/etc/shells     查看可用的shell/etc/passwd     查看不同用户取得的默认shell/.bash_history  这个隐藏目录保存了使用的命令历史\+[Enter]       避免命令太长,多行使用

scripts

  • date +%Y%m%d 获取今天日期
  • script 的运行方式差异 (source, sh script, ./script)
  • 善用判断式

    • test
    • [ “VBird Tsai” == “VBird” ]

      -e  该『档名』是否存在?(常用)-f 该『档名』是否存在且为文件(file)?(常用)-d  该『档名』是否存在且为目录(directory)?(常用)-a  (and)两状况同时成立。-o  (or)两状况任何一个成立。!   反相状态,如 test ! -x file ,当 file 不具有 x 时,回传 true-eq 两数值相等 (equal)-ne 两数值不等 (not equal)-gt n1 大於 n2 (greater than)-lt n1 小於 n2 (less than)-ge n1 大於等於 n2 (greater than or equal)-le n1 小於等於 n2 (less than or equal) 
  • Shell script 的默认变量(0,1…)

  • 条件判断式

    //单条件if [ 条件判断式 ]; then    当条件判断式成立时,可以进行的命令工作内容;fi  //多条件if [ 条件判断式一 ]; then    当条件判断式一成立时,可以进行的命令工作内容;elif [ 条件判断式二 ]; then    当条件判断式二成立时,可以进行的命令工作内容;else    当条件判断式一与二均不成立时,可以进行的命令工作内容;fi//casecase  $变量名称 in     "第一个变量内容")       程序段    ;;              "第二个变量内容")    程序段    ;;  *)                      不包含第一个变量内容与第二个变量内容的其他程序运行段    exit 1    ;;esac     
  • 循环

    //满足条件才开始循环while [ condition ] do                程序段落done          //满足才结束until [ condition ]do    程序段落done//固定循环for var in con1 con2 con3 ...do    程序段donefor (( 初始值; 限制值; 运行步阶 ))do    程序段done
  • 函数

    function fname() {    程序段}
  • 检查语法错误

     sh [-nvx] scripts.sh

账号管理

  • uid和gid
  • 涉及目录

    /etc/passwd/etc/group/etc/shadowgroups            查看所有支持的群组newgrp            有效群组的切换w/who             查询已登录的用户useradd           增加用户                参考:                    /etc/default/useradd                    /etc/login.defs                    /etc/skel/*passwd  [用户]       修改用户密码                 echo "abc543CC" | passwd --stdin vbird2userdel -r home     删除用户id  [username]                  查询uid和gidgroupaddgroupmod                        group 相关参数的修改groupdelgpasswd                         群组管理员功能//acl 权限setfacl getfacl filename//切换su - username 或 su -l username    切换用户su - -c "命令串"                   只运行一次root命令sudo                               以其他用户的身份运行命令( /etc/sudoers 内的用户才能够运行 sudo 这个命令)                                e.g:                                sudo -u sshd touch /tmp/mysshdvisudo                           修改sudo配置//使用者对话write 使用者账号 [用户所在终端接口]   指定用户发送信息wall [message]                   对所有系统上面的用户传送简讯
  • PAM(Pluggable Authentication Modules 嵌入式授权模块)

    • 用户输入指令,呼叫 PAM 模块进行验证
    • PAM 模块会到 /etc/pam.d/ 找寻与程序 (passwd) 同名的配置文件
    • 将验证结果 (成功、失败以及其他信息) 回传给用户指令程序
    • 程序会根据 PAM 回传的结果决定下一个动作

      控制标准

  • 检查工具

    pwck          检查用户配置信息grpck         检查用户组配置信息pwconv    用户同步化将 /etc/passwd 内的账号与口令,移动到 /etc/shadow 

配额 Quota

  • 限制 filesystem的 容量等
  • 涉及目录,命令

    /etc/fstab/etc/mtab                   文件系统是否支持配额/etc/warnquota.conf         警告信息设置quotaon -auvg               开启服务quotaoff                    关闭服务edquota                     编辑限制额度        -t      宽限时间        -u      用户        -g      用户组quota -uvs myuser && quota -gvs myuser   查看配额repquota -auvs                查看整个文件系统的配额

Raid 磁盘阵列

  • 一个磁盘容量不够时,这种机制将多个较小的磁碟整合成为一个较大的磁碟装置, 便于使用
  • fdisk 命令

定时任务

  • 单次任务 at

    /etc/init.d/atd restartchkconfig atd on           配置自动启动/var/spool/at/            日志记录/etc/at.allow              使用者配置/etc/at.deny               不能使用者配置at -c n       查询第n个任务at now + 5 minutes        创建任务batch 23:00 2009-3-17    系统空间时开始任务atq       查询所有单次任务atrm  n   将第n个任务删除
  • 循环任务 crontab

    /etc/crontab               系统任务/usr/bin/crontab         用户任务/etc/cron.allow/etc/cron.deny/var/spool/cron/[user]        任务创建日志记录/var/log/cron                      任务运行日志记录crontab -e              编辑任务        e.g: 59 23 1 5 * mail kiki < /home/dmtsai/lover.txtcrontab -l              查看所有任务run-parts               遍历目录中所有文件运行anacron               运行crontab 关机期间没有运行的任务

参考

  • 鸟哥的私房菜
原创粉丝点击