linux笔记

来源:互联网 发布:如何利用网络挣钱 编辑:程序博客网 时间:2024/06/10 20:25

Vim 格式设置: vim~/.vimrc

vim -o file1 file2  同时打开两个文件

Vim中运行命令!: read !ls /boot/*.* 

date “+%Y-%m-%d%H:%M:%S” 格式化显示时间

修改组成员:/etc/group   组后面加用户

让用户登录系统只能修改密码:/etc/passwd   修改/usr/bin/passwd

Ctrl+a :表示回到指令的最前端;

Ctrl+e:表示回到指令的最后端;

Ctrl+d:表示删除光标所在的字符;

Ctrl+h: 表示往前删除光标之前的字符;

Ctrl+k:往后删除指令的后面的字符;

Ctrl+u:往前删除指令的前面的字符。

mv当目的地是一个文件夹则可以移动多个文件        -v 显示详细信息

mv命令可是将文件重命名 例:mvfile file2 将file重命名为file2一次移动多个文件

命令扩展:$()、`` (~的符号)

echo "this system name is$(hostname)"

echo "this system name is `hostname`"

提取文本:cat /etc/passwd | tail (- n7) 最后10行(最后7行)(head 前10,tail后10)

通过列提取:ls -l /etc/passwd | cut -d '  '-f5  字段空格第五列

            echo"ABCDEFG" |cut -c 2-4    BCD

关键字提取:grep  -i查询不区分大小写

                  -n 打印行号

                  -v 打印不包含匹配模式的行

                  -A3 之后3行   -B2之前2行

特殊符号:^行首 $行尾  ^$空格  ^#以#开头 $%以%结束

强制开关E:….| grep –Ev ‘^(#|$)’   去#开头去空格

文本统计:wc  -l 行数统计 –w 单词 -c 字节

文本排序:sort  -r 降序 –nr 数字降序 -n数字排序 –f忽略大小写 –u移除重复行

          cat number.txt|sort |uniq -c

对比文件:diff –u  n1 n2

创造临时文件来追加覆盖:cat ./inittab | grep -Ev '^(#|$)' > /tmp/inittab.tmp; cat/tmp/inittab.tmp >/tmp/inittab ;rm -rf /tmp/inittab.tmp

查询替换:cat iptables.lst | sed 's/172.24/10.0/g'  g是全局

          catiptables.lst | sed '/80/,/90/s/input/output/i'  从80-90 不区分大小写替换

cat iptables.lst |sed -e 's/input/output/i' -e 's/172.24/10.0/g'  cat –e  多个替换

sed -f myrules  < iptables.lst 1-100   创建我的规则快速执行多个文件

vim中的设置替换

%s/172.24/10.0/   %表示全部替换

Bash:#!/bin/bash     echo"Today is $(date +%F)"   bash记得给X权限

查找进程:ps axu | head –n5

      ps axo"pid,comm,user,tty" | sort -rn | head -n10

      ps aux | grep -E'^(student|visitor)'

      pgrep -U 500,501

      pidof vim

结束进程:kill -9 进程号(立即中断) -15(干净的中断)

          Kill -9 $(pidofvim)

          Killall -9 vim

优先级:renice -20 进程号  值-20到19 ,值越低CPU优先级越高

计划任务:执行一次at now+1min

 ifconfig eth0172.25.1.222/16 && echo "service network restart" | atnow+1min

          重复执行crontab–e  (* * * * *)   -r 移除

even:表示偶数,0-23/2,奇数天;odd:表示奇数,1-23/2,偶数天;

任务控制:jobs 列举任务   ctrl-z 停止任务

          fg %jobnum 恢复前台

          kill -9 %2

快速修改密码:echo "redhat" |passwd --stdin student

通用变量(前面带$):PS1:显示bash提示符    PS1=“…”

                    PATH:查找可执行程序的目录  PATH=$PATH:/tmp

别名:alias  snr=”service networkrestart

配置文件:/etc/bashrc           

MD5加密:echo "abc123" | openssl md5

Bash启动任务:profile    /etc/profile(全局)  ~/.bash_profile(用户) 仅用于在登录的shell

                           用于 设置环境变量,运行命令

Bash启动任务:bashrc   /etc/bashrc(全局)  ~/.bashrc(用户) 运行在所有的shell

                         用于设置本地变量,定义别名

Bash退出任务:~/.bash_logout

查找:find /etc/ /sbin/ -iname "Passwd" (–user root  -uid 500)

      find ./ -not \(-user 500 -o -user 501 \)

      find ./ -perm 666 权限为666

      find ./ -perm +222(+222 任何人可写)(-222每个人可写)(-002其他人可写)

find ./ -size 10M  +10M -10M (大于10M, 小于10M)  -not –user 500

访问时间:find ./-amin -10   -atime 最后访问 –mtime 数据修改 –ctime 权限属性

(附加:-mtime n 在n天之前的“一天之内”改过的文件

-mtime +n 列出n天之前(不含n本身)被更改过的文件

-mtime –n列出n天之内(含n本身)被更改过的文件

-newer file 比file还要新的文件)

查找执行命令:find/etc/ -name "*.conf" -exec cp {} {}.$(date +%F) \;

              find /etc/ -name"*.2013-*" -exec rm {} -rf \;必须以空格\;结尾

              find -size +102400k -ok gzip {}\;  -ok 操作之前提示

执行实列:    find -name "*.conf" -exec cp {}{}.org \;备份配置文件,加.orig后缀

          find ~ -perm -002 -exec chmod o-w {}\;修复主目录中其他人可以写的文件

find /tmp/ -ctime+3 -user conan -ok rm {} \;提示移除超过3天conan的临时文件

创建10M文件:dd if=/dev/zero of=10M.txt bs=1Mcount=10

创建用户及其家目录:useradd -d /home/testing mikal

创建多层目录:mkdir /tmp/1/2/3/4/5/6 –p

创建权限文件夹:mkdir –m 711 test

给单一用户权限:setfacl -mu:natasha:rw fstab  给natasha rw权限

                setfacl-m u:harry:--- fstab   不给harry权限

查看详细权限:  getfacl fstab

echo “abcd” > 1.txt  写操作覆盖数据   >>追加操作

2> 重定向标准错误到文件  &> 重定向所有输出到文件

2>&1 重定向标准错误到标准输出,通过管道

ls -l 1.txt 2.txt 3.txt 2>&1 >test.txt  (只输出正确消息,错误的显示在屏幕上)

(cal 2007 ;cal 2008) 组合多个程序的标准输出

cat <<TTTT  >>  /tmp/1.txt

<< 追加输入到文件 >>追加输出到文件, 当输入“TTTT”时文件编辑结束

文本排序sort(排序文本到标准输出)-未修改原文件

命令选项:-r 反向排序 -n 按数字排序 -f忽略字符串中的大小写 -u  移除输出中的重复行。

uniq :从输入中移除重复相邻的行,使用-c来统计重复的次数,结合sort使用:

sort file.txt|uniq -c

join:将两个文件当中有相同数据的那一行加在一起

格式:join file1 file2

查看网页源代码:elinks –source 地址 >html.txt

下载:断点续传wget –c 网址 –O 存放路径

Ssh: ssh root@172.25.3.12ls /etc –l

Scp: scp /etc/1.txt root@172.25.3.12:/tmp

scp –p 保留文件的时间和权限

rsync –v /etc/1.txt root@172.25.3.12:/tmp  高效传输,不会传重复的文件

密钥:生成密钥ssh-kengen    拷贝公钥ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.3.12

查看系统信息:版本cat /etc/redhat-release       file /sbin/init

Rpm包管理:rpm –ivh **  安装显示进度   -e  移除

            rpm –ivh********  --force  强制安装(重装)

            rpm –ivhftp://(http://)

rpm查询:rpm –qa 列出所有已安装的包  -ql 包名  列出包中文件  -qi 包信息

          通过路径查包名: rpm –qf路径 rpm –qf /bin/passwd (rpm –qf $(which passwd))

          未安装包: -qip   -qlp  

          -V 检验安装文件,没输出则正确

          重新安装包的时候配置文件不会被覆盖,解决办法:移动配置文件让它缺失后重装包

          检验数字签名: rpm --import/etc/pki/rpm-gpg/*   --import导入key

Yum安装:yuminstall 安装 remove 移除 包名 (groupinstall  localinstall )

          yum list (repolist列举资源仓库  grouplist provides)

yum仓库:/etc/yum.repos.d/ 下创建一个 my.repo

        本地yum创建:mkdir /mnt/cdrom

                       mount/dev/hdc /mnt/cdrom

                      vim /etc/yum.repos.d/my.repo

             

[cdrom]    缓冲文件夹

name=cdrom  描述

baseurl=file:///mnt/cdrom/Server  包地址

enabled=1    1表示启用这个仓库

gpgcheck=0   0表示不检查

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

         清除缓冲;yumclean all

Md5:  md5sum 1.txt  (cat 1.txt | openssl md5) 

一般用户可以用/sbin/ifconfig  /sbin/shutdown来执行这个命令

复制:cp   -r 复制目录(递归) -a  复制完全属性 –i  复制前询问  –p 复制权限属性

删除查看带有—符号参数的文件 ,前面加—或者./  ls –l -- -aaa-  rm ./-aaa-

cat –n 显示所有行号 –b只显示非空白行号 (tac倒序显示)

head –n 100 /etc/passwd  显示前100行

文件默认权限:umask –S  umask 0022 与一般权限有关的是后面三个数字

查看设备格式详细信息:blkid

文件系统格式化:mkfs.ext3 /dev/sda5    mke2fs –j /dev/sda5/ 

     ext2变ext3   tune2fs -j /dev/sda5

标签: e2label /dev/sda5 NICE    mountLABEL=NICE /mount(mount -L NICE /mount)

查看设备:dumpe2fs /dev/sda5 | less

磁盘整理:e2fsck -f /dev/sda5

挂载:mount -o ro /dev/sda6 /mount  挂载ro权限

      mount –o remount,rw./

默认选项:rw、suid、dev、exec和async(atime)

单用户模式维护时,根目录通常会被系统挂载为只读

      tune2fs -C 50/dev/sda5  让挂载次数达到50次

挂在同一挂载点的两块分区上面的会覆盖下面的。卸载先卸载上面的。

自动挂载:在/etc/auto.master 配置挂载点       cp /etc/auto.misc /etc/mydirect

/etc/auto.mydirect 直接映射含绝对路径名

service autofs restart 启动服务

不能卸载时用lsof查看

配置文件:vim /etc/fstab

连接文件:硬链接ln /etc/crontab ./   inode号一样,不能跨文件系统,不能连接到目录

          符号连接:ln -s/etc/crontab crontab2

配置配额系统:挂载选项mount –oremount,usrquota(grpquota) ./ 

初始化;quotacheck ./ -cum

启动配额:quotaon ./   查看摘要信息;repquota  /share 

直接编辑配额:edquota username(groupname)

从shell中;setquota username 4099 5120 40 50./ 

从已定义用户的原型中复制:edquota –p user1 user2

处理交换文件和分区;mkswap /dev/sda5 格式化  swapon /dev/sda5激活  swapon –s查看  swapon -p 200 /dev/sda5 设优先级 (前提是swapoff)

磁盘阵列:创建RAID:RAID0:   mdadm-C /dev/md0 -l 0 -n 2 /dev/sdb /dev/sdc    

                    RAID5:  mdadm -C /dev/md5 -l 5 -n 3 –x 1 /dev/sda{5..8}

  格式化,挂载,读写测试

停止RAID:mdadm –S /dev/md5

查看信息:mdadm –D /dev/md5

  标记坏盘:mdadm/dev/md5 –f /dev/sda5   移除硬盘:mdadm /dev/md5 –r /dev/sda5

 移除坏盘:mdadm /dev/md5 –f /dev/sda5 –r /dev/sda5

 添加硬盘;   mdadm –a/dev/sda5    

写入配置文件:mdadm -Ds >etc/mdadm.conf

  查看消息:watch -n .5 'cat /proc/mdstat'         iostat /dev/sda{5..8} 1   

逻辑卷

  创建物理卷:pvcreate /dev/sda9 

  创建卷组:vgcreate -s 16M test /dev/sda9(指定PE为16M)

创建逻辑卷:lvcreate -L 1000M -n ftpdata test ;lvcreate-l 100 -n webdata test

pvscan:查询任何具有PV的磁盘

pvdisplay:显示目前系统上的PV状态

pvremove:将PV属性删除,该分区不具有PV属性

vgextend:在VG内增加额外的PV

vgreduce:在VG内删除PV

vgchange:设置VG是否启动(active)

vgremove:删除一个VG

格式化,挂载,读写。

逻辑卷扩容:lvextend -L +4G /dev/test/ftpdata ;lvextend -l +100%FREE /dev/test/ftpdata

         在线增长:resize2fs /dev/test/ftpdata

逻辑卷压缩:先卸载,umount

         对文件系统做检查:e2fsck -f /dev/test/ftpdata

         计算大小:要求为vgdispaly PE size的倍数 ; resize2fs /dev/test/ftpdata 4096M

         改变类型,使其非活跃:lvchange -an /dev/test/ftpdata

         减小卷:lvreduce -L 4096M /dev/test/ftpdata

改变类型,使其活跃:lvchange -ay /dev/test/ftpdata

挂载:mount /dev/test/ftpdata /ftpdata/

查看:df /ftpdata/

  LVM快照:对现有逻辑卷创建快照。先挂载逻辑卷。

            创建:lvcreate-s -L 1G -n ftpsnap /dev/test/ftpdata

            备份:dump -0u-f /tmp/ftpdata.dump /dev/test/ftpsnap

            挂载:mount -oro /dev/test/ftpsnap  /snap/    对比: df/ftpdata  /snap/

            移除快照:umount  /snap/      lvremove /dev/test/ftpsnap   

            还原:restore -rf/tmp/ftpdata.dump

 

 打包:tar cvf /tmp/etc.tar /etc

 打包压缩GZIP: tar czvf /tmp/etc.tar.gz /etc/

 打包压缩BZIP2: tar cjvf /tmp/etc.tar.bz2 /etc/

 解压:tar xvf ***

 

Linux系统结构(由里到外):硬件--kernel(驱动程序)--shell(终端、接口)--外层应用程序

Linux启动流程

1.    加载BIOS的硬件信息与进行自我测试,并依据设置取得第一个可启动的设备

2.    读取并执行第一个启动设备内MBR的boot loader引导装载程序(在bootsector第一个引导扇区内)。即GRUB程序等

3.    依据boot loader的设置加载kernel,并加载驱动程序

4.    kernel(内核)调用init进程,init取得run-level信息,并执行rc.sysinit等文件

先安装windows再安装linux原理:W的loader默认不具有控制权转交功能。

Boot loader功能:

1.提供菜单:多重引导。2.加载内核文件3.转交其他loader

内核:/boot/vmlinuz

内核解压缩所需RAMDisk:/boot/initrd

内核模块:/lib/modules/$(uname-r)/kernel

内核版本:/proc/version     uname –r (-a查看所有)

查看已装内核模块:lsmod

内核模块的加载和删除:modprobe(加载)   modprobe –r(移除)

modprobe -l | grep 128  查看模块   modinfo qla1280  查看详细信息

lsmod |grep qla128 查看已装

/etc/modprobe.conf    配置文件(可设置别名和参数)

重新编译具有额外的模块:mkinitrd --with=qla1280--with=r8169 /boot/initrd-with.img $(uname -r)

GRUB:主流的bootloader(引导装载程序)

 

gzip解压:gunzip -S.img ./initrd-2.6.18-308.el5.img

cpio解压:cpio -i< ../initrd-2.6.18-308.el5

做成文件清单:find ./ > ../file.lst

打包:cpio -o < ../file.lst >../initrd-ido

打包成特定格式:cpio -H newc -o <../file.lst > ../initrd-ido

压缩:gzip -S .img -9 ./initrd-ido(最大压缩)

对比:diff ./init ../old/init

弹出设备:eject /dev/sda

一般文件系统转化为光驱,必须加上loop参数:mount /linux.iso /media/cdrom –o-loop

查看usb:lsusb

Udev: udevinfo -q path -n /dev/sda1 (根据设备名查路径)

    udevinfo -q all -p /block/sda/sda1(根据路径查所有)

在/etc/udev/rules.d/mydevice.rules中写入:

KERNEL=="sd*",ACTION=="add",SYSFS{serial}=="45545454543543",NAME="sda%n",OWNER="student",GROUP="student",SYMLINK+="myusb/part%n"

原创粉丝点击