首页 > 系统服务 > 详细

鸟哥Linux私房菜笔记

时间:2016-03-27 02:14:22      阅读:296      评论:0      收藏:0      [点我收藏+]

查看更清晰格式github地址:

https://github.com/smallbug-vip/repo/blob/master/note/linux/note.mjs

?

#####################################################################################################

第四,五章 首次登陆

#####################################################################################################

?

注意:

单词前面两个-

?

-----------------------------------------

bc计算器

scale=10保留10位数

-----------------------------------------

?

cal显示日历

2016一年的日历

12 2016某月的日历

?

?

-----------------------------------------

date显示时间

+%Y

?

-----------------------------------------

?

ls显示文件(list)

-a显示所有文件

-l显示文件详细信息

-h将占用的字节人性化显示

-d显示目录信息

-i显示 inode ID

-s 显示大小

-1 一行行显示

--time=atime 显示访问时间

--time=ctime 显示创建时间

-R 递归显示

?

-----------------------------------------

?

history查看历史命令

!numner执行历史命令

?

-----------------------------------------

?

whatis查看命令简短信息

makewhatis ?生成whatis库

?

-----------------------------------------

?

whereis查找命令的目录及帮助文档的目录

-b 只显示二进制文件

-m 显示帮助文档

?

-----------------------------------------

?

which查找命令所在的路径及有无别名

?

-----------------------------------------

?

apropos查看配置文件简短信息

?

-----------------------------------------

?

man查看命令帮助

/search

n/N ?查找

^search ?开头

mannumber ?passwd查看第几张

man-k clocl查找命令片段

q ?退出

?

-----------------------------------------

?

sync将缓存中的内容写到磁盘中去

-----------------------------------------

?

shutdown?

-r now重启

-k显示通知信息不会真的关机

-h 10 10分钟后关机

-h 8:20到时间自己关机

?

reboot重启

-f强制重启

?

poweroff关机

-f强制关机

?

-----------------------------------------

?

运行级别

0 关机

1 单用户

2 不带网络的多用户

3 带网络的多用户

4 保留,用户可以自给定义

5 图形界面的多用户

6 重起系统

?

位置:/etc/rc.d

K 开头表示不运行

S 开头表示运行

?

1,设置开机模式为:命令模式

systemctl set-default multi-user.target

?

2,设置开机模式为:图形模式

systemctl set-default graphical.target

?

runlevel ?//显示当前环境级别

?

init number //改变当前环境的级别

?

startx//开启xwindow

?

?

#####################################################################################################

第六章 Linux的文件权限与目录配置

#####################################################################################################

?

用户信息存放目录:

/etc/passwd

用户密码存放目录:

/etc/shadow

组的存放目录:

/etc/group

?

-----------------------------------------

?

文件类型

-普通文件

d 文件夹

b 块设备(U盘)

c 字符型设备文件(鼠标)

l 快捷方式(软连接)

?

-----------------------------------------

?

chmod修改权限

[{ugoa}{+-=}{rwx}][文件或目录]

[rwx=421][文件或目录]

-R递归修改

?

-----------------------------------------

?

chown -R root 修改文件所有者

chown -R root[:.]root /aa修改文件所有者及所属组

?

-----------------------------------------

?

chgrp -R root /aa修改所属组

?

-----------------------------------------

?

文件夹的 x 代表是否可以进入该文件夹,如果没有 x,即使有w,其他用户也不可操作该文件将夹下的文件

文件夹的 w 代表是否可以操作文件夹中的文件,当文件夹有 w 时,即使其他用户没有读该文件夹中文件的权限,该用户也可以删除文件

文件夹没有 r 时,其他用户可以进入该文件夹但是不能读取该文件夹中的文件,但是可以创建文件,操作文件

?

-----------------------------------------

?

file filename查看文件类型

?

-----------------------------------------

目录结构

?

/bin

/sbin

相当于win32的作用

?

/boot

主要存放启动Linux系统所必需的文件,包括内核文件、启动菜单配置文件等

?

/dev

设备文件,字符设备,存储设备

?

/etc?

主要存放系统配置文件

?

/lib

主要存放一些库文件

?

/media 自动挂载

/mnt 手动挂载

在某些Linux的发行版中用来挂载那些USB接口的移动硬盘(U盘)等

?

/opt

可以理解为安装可选程序的地方。安装源码包

?

/proc

内核参数,不占用磁盘大小

?

/root

根用户的家目录。里面存放根目录的数据、文件等。

?

/usr

主要存放安装的软件、系统共用的文件、内核源码等。

?

/tmp

临时文件

?

/var

缓存,日志,数据库文件

?

-----------------------------------------

1>

uname //查看是什么系统

-i //架构

-r //内核

-a //查看所有

?

2>

cat /etc/redhat-release //CentOS Linux release 7.1.1503 (Final)

?

3>

hostnamectl

status 查看操作系统信息

--static查看静态主机名

--transient 查看瞬态主机名

--pretty 查看灵活主机名

4>

hostname ? ?//主机名

?

?

#####################################################################################################

第七章 Linux文件与目录管理

#####################################################################################################

?

mkdir创建目录(make directories)

-p递归创建

-p small/{bug,cat,hadoop}

?

-----------------------------------------

?

echo $PATH

命令默认会在这些目录中去查找

?

PATH=$PATH:/home

添加查找目录

?

-----------------------------------------

?

cp[item] resource target复制文件(copy)

-r复制目录

-p保留文件属性

-u ?新文件覆盖旧文件(旧文件不会覆盖新文件)

-l ?生成硬链接

-f 强制

-a = -rfp

-d 默认情况下拷贝链接会把原文件拷贝出来,可以加该参数拷贝链接

?

ln创建软硬链接

-s创建软连接

-----------------------------------------

?

mv移动和改名(move)

-i 询问要不要删除(默认)

-r 递归

-f 强制

?

-----------------------------------------

?

alias ll

显示别名

?

alias ll=‘ls -lh --color=auto‘

修改别名

?

-----------------------------------------

?

basename 只显示文件名

dirname 只显示目录名

?

-----------------------------------------

?

cat浏览小文件信息

-n显示行号

?

-----------------------------------------

?

tac反向浏览文件

?

-----------------------------------------

?

nl ? 不算空行显示行号

-d 算空行显示行号

?

-----------------------------------------

?

more浏览文件信息

(空格)或f翻页

(Enter)换行

q或Q退出

?

-----------------------------------------

?

less浏览文件信息

(空格)或f翻页

(Enter)换行

q或Q退出

上箭头向上翻一行

pgup向上翻一页

/XXX搜索

n下一个搜索结果

-N 显示行号

?

-----------------------------------------

?

head显示文件前几行

-5显示前5行

?

-----------------------------------------

?

tail-tailf显示文件后几行

-n显示后几行

-f动态显示文件末尾内容(监视日志)

?

-----------------------------------------

?

od 查看非文本文件

-t c 以ASCII码格式显示输出

?

strings显示二进制文本文件

?

-----------------------------------------

?

rm删除文件

-r删除目录

-f强制删除

?

rm -rf !(keep1 | keep2) ? ?删除keep1,keep2文件之外的文件

?

-----------------------------------------

?

pwd显示当前目录(print working directory)

?

-----------------------------------------

?

rmdir删除空目录(remove empty directories)

?

-----------------------------------------

?

touch创建文件

?

touch filename 如果filename存在的话就修改其修改时间为当前时间

?

-----------------------------------------

?

umask 权限过滤符

文件 : 666 - umask

目录 : 777 - umask

-----------------------------------------

?

lsattr列出文件隐藏属性

chattr修改文件隐藏属性

+a (文件不可写,文件夹只可创建不可删除)

+i (文件夹中,不可添加也不可删除文件)

?

-----------------------------------------

?

SUID ?在命令所有者的位置上出现S代表其他人在执行该命令时具有所有者的权限

chmod u+s xx

chmod 4333 xx

?

SGID 如果一个文件夹的的所属组中出现了S,代表着之后在该文件夹下创建的文件都将会继承该文件夹的所属组

chmod g+s xx

chmod 2333 xx

?

SBIT 只出现在文件夹的其他人权限位,意思是除了root和所有者外其他人即使有权限也不能删除

chmod o+t xx

chmod 1333 xx

?

-----------------------------------------

?

echo "hostname is `hostname`"在字符串中执行命令

echo "hostname is $(hostname)"

输出 : hostname is smallbug

?

-----------------------------------------

?

locate快速搜索(每天跟新一次数据库,新创建的文件可能找不到)

-i不区分大小写

?

updatedb更新资料库

/var/lib/mlocate/mlocate.db ?数据库位置

?

-----------------------------------------

?

find path -option [argu] 查找文件

?

-or 或关联关系

-name根据名称查找

-size +5M根据大小查找

-size -5M -size +3M ?查找大于3M小于5M的文件

-user smallbug根据所有者查找

-group根据所属组查找

-ctime +1 ?创建超过1天的文件

-cmin +1创建时间超过一分钟

-amin访问时间

-newer filename 查找比当前文件比较新的文件

-perm 222根据权限查找(2 -> o, 22 -> go)

+222 ugo只要有一个写权限就行

-222 ugo必须都有写权限

?

?

#####################################################################################################

第八章 Linux磁盘与文件系统管理

#####################################################################################################

?

MBR->[分区]->[分区]

?

引导程序(446) + 分区表(64) + 结束符(2)

?

一个分区需要16字节

-----------------------------------------

?

[分区]

?

boot sector -> super block -> inode -> block(默认4K)

?

[super block 记录inode信息和block信息。例如,使用情况]

[inode 每记录一个文件消耗128bit,相当于一本书的目录]

?

-----------------------------------------

[分区]

?

[block group]

boot sector -> {?

[super block->文件系统描述信息->块位图->inode位图->inode表->block],

[super block->文件系统描述信息->块位图->inode位图->inode表->block],

[super block->文件系统描述信息->块位图->inode位图->inode表->block]

}

?

super block : 记录inode和block信息

文件系统描述信息 :记录一个分区中的 block group 信息。

块位图 :记录block区域中哪些block使用了,哪些没使用。

inode位图:同上

inode表:记录文件存放在哪些block中(128/4只能指向32个block)

|--→直接区(12)

|--→间接区(1)

|--→二间接区(1)

|--→三间接区(1)

?

-----------------------------------------

?

filefrag -v cc ? 查看文件在哪些block中

?

-----------------------------------------

?

dumpe2fs ?/dev/sda3 ? 查看分区信息

?

-----------------------------------------

?

du 显示文件夹大小

-s 单层显示

-h 人性化显示

?

-----------------------------------------

?

VFS(虚拟文件系统) ?不需要考虑要操作什么文件系统

?

-----------------------------------------

?

df ? 显示已挂载磁盘信息

-h ?人性化显示

-T ? 显示文件类型

?

-----------------------------------------

?

硬链接不能跨分区

?

-----------------------------------------

?

[分区]

?

1>

fdisk -l ? ? ? ? ? ?查看分区情况(有多个硬盘的话可以加硬盘名)

?

2>

fdisk /dev/sda ? ? ?给sda分区

3>?

## m查看帮助

? ?a ? toggle a bootable flag ? ? ? ? ? ? ? ?

? ?b ? edit bsd disklabel

? ?c ? toggle the dos compatibility flag

? ?d ? delete a partition //删除分区

? ?g ? create a new empty GPT partition table

? ?G ? create an IRIX (SGI) partition table

? ?l ? list known partition types //列出分区类型

? ?m ? print this menu

? ?n ? add a new partition //创建一个新的分区

? ?o ? create a new empty DOS partition table

? ?p ? print the partition table //显示分区表

? ?q ? quit without saving changes //不保存退出

? ?s ? create a new empty Sun disklabel

? ?t ? change a partition‘s system id //修改分区类型

? ?u ? change display/entry units

? ?v ? verify the partition table

? ?w ? write table to disk and exit //保存并推出

? ?x ? extra functionality (experts only)

?

4>

partprobe [/dev/sda] ? ?//更新分区表

?

5>?

mkfs -t ext3 /dev/sda5 ? ?格式化分区(=mkfs.ext3 /dev/sda5)

mkfs -t ext3 -b 4096 /dev/sda5 ? //每一个block是4k

?

6>

mount /dev/sda5 /mnt ? //挂载

umount /dev/sda5 ? ? //卸载

?

mount -o remount,ro /mnt ? //以只读的形式挂载

mount -o remount,rw /mnt //读写权限

mount -o remount,noexec /mnt ?//无执行权限

mount -o loop xx.iso /mnt //挂载镜像

vim /etc/fstab ? //永久挂载(/dev/sda5 ? /home/smallbug/workspace ? ext3 ? ?defaults ? 0 0)

?

-----------------------------------------

?

fsck -f(强制检查) -C(显示进度) ?检查磁盘

?

-----------------------------------------

?

badblock ?-sv(进度) ? ?检查坏道

?

-----------------------------------------

?

fuser -mv /mnt ? ?//查看哪个进程占用该磁盘

?

-----------------------------------------

?

tune2fs -l /dev/sda5 ? ?查看分区信息

?

-----------------------------------------

?

/proc/swaps ? ?//查看交换分区

?

-----------------------------------------

?

unix2dos -n 123 345 ? ?将Linux文件格式转换为windows格式

?

#####################################################################################################

第九章 文件与文件系统的压缩与打包

#####################################################################################################

?

gzip压缩文件为 *.gz

-d ? ?解压

gzip -c hosts > hosts.gz ? ?压缩时保留源文件

?

zcat ? ? ? ? ? ?查看gzip压缩过的文件

?

gunzip(gzip -d)解压缩文件

?

-----------------------------------------

?

zip -r压缩目录

解压:unzip FileName.zip

压缩:zip FileName.zip DirName

?

-----------------------------------------

?

bzip2压缩文件

-k产生压缩文件后保留原文件

-d ?解压

bzip2 -c hosts > hosts.bz2 ? ?缩时保留源文件

?

bzcat 查看bzip2压缩过的文件

?

bunzip2解压缩文件

?

-----------------------------------------

?

tar打包文件

-c打包(-x解包)

-v显示详细信息

-f指定文件名

-z打包同时压缩(解压缩)(gzip)

-j打包同时压缩(解压缩)(bzip2)

-t ?不解档的情况下,查看文件内容

-C 目录 ? 指定解档目录

?

tar zcvf mkd.tar.gz ./mkd/

?

-----------------------------------------

?

.Z

解压:uncompress FileName.Z

压缩:compress FileName.tar.Z

?

-----------------------------------------

?

增量备份:之备份增加的部分

?

差异备份:只备份全量备份之后的数据

?

-----------------------------------------

?

备份:

-0 全备份

? 增量备份 ? 备份顺序:012345

? 差异备份 ? 备份顺序:09876

dump?

-u ? 记录时间,写入到 /etc/dumpdates

-f ? 指定目录

dump -0u -f /home/back/1.dump /dev/sda3

?

?

restore -r -f /root/rhce/1.dump ? 恢复备份

? ? -r ?恢复所有数据

? ? -i ?交互(恢复部分文件)

? ? -t不恢复查看内容

?

-----------------------------------------

?

创建ISO镜像

mkisofs -o xx.iso file1 file2 file3

?

-----------------------------------------

?

cp /dev/cdrom xxx.iso

直接将光盘中的文件复制成iso镜像

?

-----------------------------------------

?

dd if=/dev/sda5 of=test ? 将sda5分区中的数据备份到test中

?

-----------------------------------------

?

cpio

-o ? 压缩

-i ? 解压

?

find -name ‘file*‘ | cpio -o > xx.cpio

cpio -iu < xx.cpio ? //解档 ?

-u ? 如果解档文件更新的话,就覆盖?

?

?

#####################################################################################################

第十章 vim程序编辑器

#####################################################################################################

?

Vim文本编辑器

?

vi filename(进入)--->命令模式

:wq(退出)------>命令模式

|?

|ESC

|

iao------------>插入模式

?

a在光标所在字符后插入

A在光标所在行尾插入

i在光标所在字符前插入

I在光标所在行行首插入

o在光标下插入新行

O在光标上插入新行

?

:set nu设置行号

:set nonu取消行号

?

gg到第一行

G到最后一行

nG到第n行

:n到第n行

?

$移至行尾

0移至行首

?

x删除光标所在处字符

nx删除光标所在处后n个字符

dd删除光标所在行

ndd删除n行

dG删除光标所在行到文件末尾内容

D删除光标所在处到文件末尾内容

:n1,n2d删除指定范围的行

?

yy复制当前行

nyy复制当前行以下n行

dd剪切当前行

ndd剪切当前行以下n行

p、P粘贴在当前光标所在行下或行上

?

r取代光标所在处字符

R从光标所在处开始替换字符,按ESC结束

u取消上一步操作

?

/string搜索指定字符串

搜索时忽略大小写:set ic

n搜索指定字符串的下一个出现的位置

?

:%s/old/new/g(不询问)c(询问)全文替换指定的字符串

:n1,n2s/old/new/g在一定范围内替换指定字符串

?

:W保存修改

:W new_filename另存为指定文件

:wq保存修改并退出

ZZ快捷键,保存修改并退出

:q!不保存修改退出

:wq!保存修改并退出(文件所有者及root可以使用)

?

:r 文件名将文件中的所有内容导入到该文件中

: !命令执行命令

:map Ctrl+v Ctrl+()增加快捷键

?

:n1,n2s/^/#/g注释多行

?

:ab 打出a换成b

:sp ? ? ? ?分屏

ctrl+w ? ? 切换

:only ? ? ?取消分屏

?

/home/username/.vimrc普通用户设置vim快捷键

/root/.vimrcroot用户设置vim快捷键

?

vim插件:

1>https://github.com/ma6174/vim

编写python程序

?

自动插入头信息:

#!/usr/bin/env python

# coding=utf-8

输入.或按TAB键会触发代码补全功能

:w保存代码之后会自动检查代码错误与规范

按F6可以按pep8格式对代码格式优化

按F5可以一键执行代码

多窗口操作

?

使用:sp + 文件名可以水平分割窗口

使用:vs + 文件名可以垂直分割窗口

使用Ctrl + w可以快速在窗口间切换

编写markdown文件

?

编写markdown文件(*.md)的时候,在normal模式下按 md 即可在当前目录下生成相应的html文件

生成之后还是在normal模式按fi可以使用firefox打开相应的html文件预览

当然也可以使用万能的F5键来一键转换并打开预览

如果打开过程中屏幕出现一些混乱信息,可以按Ctrl + l来恢复

快速注释

?

按\ 可以根据文件类型自动注释

?

2>https://github.com/amix/vimrc

?

#####################################################################################################

第十一章 认识与学习bash

#####################################################################################################

?

whoami ?查看当前用户

?

-----------------------------------------

?

[smallbug@smallbug ~]$ cat /etc/shells 显示系统的所有shell

/bin/sh

/bin/bash

/sbin/nologin

/usr/bin/sh

/usr/bin/bash

/usr/sbin/nologin

/bin/tcsh

/bin/csh

?

切换:直接敲shell的名称

?

echo $$

输出当前shell ID

?

-----------------------------------------

?

: ? ?隔开同一行敲的多个命令使用

?

\ 另起一行 \

?

-----------------------------------------

?

变量名=值

变量名不能以数字开头

等号两边不能有空格

值用双引号引起来

定义变量时不加$,引用时需要加$

在终端敲该命令,所得的变量时当前shell的变量

单引号引用的变量不会被解析

?

declare -x dd=12 / export yy=10

定义环境变量

可以影响到所有子shell

?

declare +x dd

将环境变量变成本地变量

?

declare -r dd (readonly dd)

将变量设为只读

?

-----------------------------------------

?

echo 输出变量

-n 输出不换行

?

unset 取消变量

?

set 显示所有变量

set 1 2 3 4 5 ?设置参数

?

env 显示所有环境变量

export 显示所有环境变量

export -p显示所有环境变量

?

-----------------------------------------

?

$0 ? ?文件的名字

$# ? ?参数的个数

${12} 文件的第12个参数

$* ? ?所有的参数

?

-----------------------------------------

?

全局变量

$PATH

$HOME

$USER

$PS1 ? 提示符([\u@\h \W]\$)

$LAGN ? 系统当前编码

$REPLY read默认赋予的变量

$? 记录上面的命令是否执行成功,0表示失败,非0表示成功

-----------------------------------------

?

locale -a 系统所支持的所有编码

?

-----------------------------------------

?

read -p "pleace input word:" name

相当于先输出再读取变量

?

-----------------------------------------

?

数组操作

xx=(aa bb cc dd) 赋值

echo ${xx[0]} 取值

echo ${xx[*]} ?

echo ${xx[@]} 取所有

echo ${!xx[@]} 查看所有下标

echo ${#xx[@]}查看元素个数

?

-----------------------------------------

?

ulimit -a

查看系统限制

?

core file size ? ? ? ? ?(blocks, -c) 0

data seg size ? ? ? ? ? (kbytes, -d) unlimited

scheduling priority ? ? ? ? ? ? (-e) 0

file size ? ? ? ? ? ? ? (blocks, -f) unlimited

pending signals ? ? ? ? ? ? ? ? (-i) 7866

max locked memory ? ? ? (kbytes, -l) 64

max memory size ? ? ? ? (kbytes, -m) unlimited

open files ? ? ? ? ? ? ? ? ? ? ?(-n) 1024

pipe size ? ? ? ? ? ?(512 bytes, -p) 8

POSIX message queues ? ? (bytes, -q) 819200

real-time priority ? ? ? ? ? ? ?(-r) 0

stack size ? ? ? ? ? ? ?(kbytes, -s) 8192

cpu time ? ? ? ? ? ? ? (seconds, -t) unlimited

max user processes ? ? ? ? ? ? ?(-u) 4096

virtual memory ? ? ? ? ?(kbytes, -v) unlimited

file locks ? ? ? ? ? ? ? ? ? ? ?(-x) unlimited

?

-----------------------------------------

?

r=${path#*kkk/bin}

删除path变量中的按 *kkk/bin 匹配的字符串,然后赋值给r(第一个匹配开始处理)

r=${path##*kkk/bin}

删除path变量中的按 *kkk/bin 匹配的字符串,然后赋值给r(最后一个匹配开始处理)

?

#删除前面的字符串,%删除后面的字符串

?

-----------------------------------------

?

r=${xx-"hello"} 如果变量xx存在就将xx值赋予r否则将hello赋值给r

r=${xx:-"hello"} 在上面的基础上还要判断是否为空

r=${xx:="hello"} 在上面的基础上将字符串赋值给xx

r=${xx:?"error"} ?检查xx是否为空,如果是空的话显示字符串警告信息

r=${xx:+"hello"} ?如果xx非空将后面的字符串赋值给r

?

-----------------------------------------

?

type -a ls 查看命令执行顺序

?

-----------------------------------------

?

用户登录时读取配置文件顺序:

vim /etc/profile 环境变量

/etc/inputrc 快捷键

~/.bash_profile

-----------------------------------------

?

set -u 开启当所用到的变量没有被设置时就会报错

+u 关闭

-x 追踪每一个操作

+x 关闭

?

-----------------------------------------

?

ls -a > a.txt 文件重定向(清空)

ls -a >> a.txt 文件重定向(追加) ?

xx 2> a.txt只重定向错误的结果

xx & >> a.txt 不管正确还是错误全部都追加

?

-----------------------------------------

?

tr ‘a-z‘ ‘A-Z‘ < hosts

将hosts文件中的字母从小写转为大写并输出到屏幕

?

-----------------------------------------

?

cat > filename << end

将输入字符保存到filename中,直到end结束

?

-----------------------------------------

?

grep搜索文件中的内容

-i不区分大小写

-v排除指定字符串 ^表示开头

?

-----------------------------------------

?

cut xx | tee xx | grep aa

将输出信息保存在xx文件中

?

-----------------------------------------

?

cut -d: -f1 /etc/passwd

以:作为分隔符,查看分割后的第一本分文件

?

-----------------------------------------

?

sort -n 以数字的行驶排序

?

sort -t: -k3 -n passwd

-u排除重复(== ? | uniq)

-----------------------------------------

?

wc 统计字符

?

-----------------------------------------

?

col expand ? 将Tab键转化为空格

?

-----------------------------------------

?

paste 将文件组合在一起

join

-----------------------------------------

?

split -b 10k /etc/services xxx

?将services文件以每块10k前缀为xxx进行切分

?

-----------------------------------------

?

diff 判断两个文件是否相同

?

-----------------------------------------

?

xargs 让ls类似的不能使用管道的命令使用管道

?

?

bubuko.com,布布扣未完待续

鸟哥Linux私房菜笔记

原文:http://smallbug-vip.iteye.com/blog/2286468

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!