您的位置:首页 > 运维架构 > Linux

linux学习笔记

2013-05-17 16:32 204 查看
一直在linuxcast.net 学习linux视频,边学边总结了一些笔记。

=================一些基本操作===============

startx 进入图形界面

XXXX & 命令后面加上一个&位与运算符号,表示后台执行该命令

shutdown -h now 立刻进行关机

shutdown -r now 现在重启

reboot 现在重启

hostname 显示主机名

history 显示历史命令记录

clear 清除屏幕

!! 重复上一个命令

!字符 重复前一个以"字符"开头的命令

!num 按照历史记录序号执行命令

!?abc 重复之前包含abc的命令

!-n 重复n个命令之前的那个命令

cat 查看文件内容

su 切换用户

sudo 使用管理员身份运行命令

id 显示当前用户的信息

passwd 修改当前用户密码

================进程管理命令==============

jobs 管理(查看)后台作业

bg 编号1 把编号1的进程设为后台运行作业

fg 编号2 把编号2的进程设为前台运行作业

====================文件相关命令==========

ls 列出当前目录文件(不显示隐藏文件)

参数 -l 显示详细信息

-a 显示所有文件(包括隐藏文件)

-R 递归显示子目录结构

-ld 显示目录和链接信息

pwd 显示当前工作路径

touch 创建一个大小为空的文件或者 更新文件修改时间

file 查看文件信息(属性)

cp 复制文件或目录

参数 -r 递归复制整个目录树

-v 显示详细信息

mv 移动或者重命名文件或目录

rm 删除文件或目录

参数 -i 交互式

-r 删除包括目录中的所有内容

-f 强制删除,没有警告提示(小心使用)

mkdir 创建一个目录

rmdir 删除一个空目录

rm -r(-f) 删除一个非空目录

===========vi使用基本操作===================

1.vi hello.java

2.输入i[进入到插入模式]

3.按ESC键[进入命令模式]

4.输入“:”[wq退出并保存 q!退出不保存]

命令模式下

i 在光标前插入文本

o 在当前行下面插入新行

dd 删除整行

yy 复制当前行放入缓冲区

n+yy 将n行的内容复制放入缓冲区

p 将缓冲区的内容在光标处粘贴

u 撤销上一个操作

r 替换当前字符

/ 查找关键字(取消查找高亮颜色 :noh[nohighlightsearch])

ex模式下

:w 保存修改

:q 退出

:q! 强制退出,不保存修改

:x 保存并退出,相当于:wq

:set nu 显示行号(:set nonu[no number] 取消行号显示)

:! 执行系统命令

:sh 切换到命令行,使用 ctrl + d 切换回vim

===========日期时间命令=====================

date 查看当前系统时间

+%Y:%m:%d 格式化显示时间

clock 显示硬件时钟时间

cal 查看日历

uptime 查看系统运行时间

===========输出查看命令=====================

echo 显示输入的内容

cat 显示文件内容

more 用于翻页显示文件内容(只能向下翻页)

less 用于翻页显示文件内容(带上下翻页)

head 显示文件的头几行(默认10行)

-n 指定显示的行数

tail 显示文件的末尾几行(默认10行)

-n 指定显示的行数

-f 追踪显示文件更新(一般用于查看log日志文件,命令不退出)

===========查看硬件信息=====================

lspci 查看PCI设备

-v 查看详细信息

lsusb 查看USB设备

-v 查看详细信息

lsmod 查看加载的模块(驱动)

===========关机、重启=====================

shutdown [关机、重启] 时间

-h 关机

-r 重启

ex:

立即关机 shutdown -h now

10分钟后关机 shutdown -h +10

23:30分关机 shutdown -h 23:30

立即重启 shutdown -r now

poweroff 立即关机

reboot 立即重启

===========归档、压缩=====================

zip 压缩文件

格式:zip 压缩后的文件名.zip 要压缩的文件(或目录)

unzip 解压压缩的zip文件

tar 归档文件

-cvf 创建一个归档文件

ex: tar -cvf 归档后的文件名.tar 要归档的文件(或目录)

-xvf 释放一个归档文件

ex: tar -xvf 要释放的归档文件.tar

-cvzf 将归档后的归档文件进行gzip压缩以减少大小

ex: tar -cvzf backup.tar.gz /etc 将etc这个目录归档压缩

=================查找=====================

locate 查找文件、文件夹

ex: locate keyword

此命令是从数据库中查找,数据库每天更新一次,也可用updatedb手动更新

find 高级查找文件、文件夹

find 查找位置 查找参数

ex: find . -name *linuxcast* 在当前目录查找文件名包含linuxcast的文件

find / -name *.txt 从根目录递归查找 后缀为 .txt的文件

find / -perm 777 从根目录递归查找权限为777的文件

find / -type d 从根目录查找所有类型为“目录”的文件

-d 目录

-l 链接(相当于快捷方式)

更多详见 man find

find . -name "a*" -exec ls -l {} \;

将当前目录查找到的所有以a开头的文件 作为参数传递给 ls -l 命令

像 -exec XXXX {} \; 这为固定格式,XXXX 表示某些命令

============使用fdisk进行磁盘管理==============

fdisk是来自IBM的老牌分区软件,几乎所有Linux系统均默认安装

fdisk是一个MBR分区工具,不可用于GPT分区

只有超级用户(root)权限可以执行fdisk

fdisk分区后需要使用partprobe让内核识别新的分区

============ 创建文件系统 ==============

mke2fs [参数] [需要创建的文件的路径]

-t 创建的类型(type)

ex: mke2fs -t ext3 /dev/sdb1

-b 指定文件系统块(block)大小(block是文件系统读写操作的最小单位)

-c 建立文件系统的时候检查块损坏

-L 指定卷标

-j 建立文件系统日志

mkfs.*** 可用来快速建立文件系统(***表示文件系统名)

ex: mkfs.ext3 /dev/sdb1

dumpe2fs 用来查看指定文件系统的信息

ex: dumpe2fs /dev/sda1

e2label 为指定文件系统添加卷标

ex: e2label /dev/sda1 LINUXCAST

fsck 检查文件系统错误

ex: fsck /dev/sda1

============文件系统挂载管理==================

mount mount 要挂载的设备 挂载点

ex: mount /dev/sdb1 /mnt

-t 指定文件系统的类型,如: -t ext3、-t vfat

-o 指定挂载选项:

ro,rw 只读挂载或读写挂载

sync 不使用文件缓存,所有操作直接写入磁盘

async 使用缓存提高文件系统读写效率

noatime 不更新文件访问时间

atime 更新文件访问时间

remount 重新挂载

umount 卸载一个挂载的文件系统

ex: umount 挂载源或挂载点

umount /dev/sdb1 == umount /mnt

有时会出现 device busy 错误信息(因为被占用了)无法卸载 可以使用以下命令

fuser 可查看某文件系统中正在使用的文件

ex: fuser -m /mnt

lsof 可查看正在被使用的文件[list open file 简写]

ex: lsof /mnt

-----------------自动挂载设置----------------

配置文件/etc/fstab 用来定义需要自动挂载的文件系统,其中

每一行代表一个挂载配置

/dev/sdb1 /mnt ext3 defaults 0 0

需要挂载的设备 挂载点 文件系统 挂载选项 暂时不用明白

================Linux下获取帮助=================================

几乎所有命令都可以通过 -h 或 --help参数获取命令的帮助信息

man命令是Linux中最为常用的帮助工具,可以通过以下形式获取man帮助:

man 要获取帮助的命令

man -k 关键字 搜索包含关键字的帮助文档

info与man命令类似,但是输出信息更为详细

绝大多数程序都有相应的帮助文档,保存在/usr/share/doc文件夹中

=================== 用户基础 ==============================

每个用户有一个用户名和一个用户ID(UID),用户ID是操作系统真正用来管理标识用户的,UID为32位长,从0开始,最大一般到60000。

用户分为:root用户(uid为0)、系统用户(uid 1~499)、普通用户(uid 500+)

每个用户有一个家目录,用来保存用户私有数据,

root用户的家目录为/root,

普通用户家目录为/home下与用户名相同的目录

每个可登陆用户拥有一个指定的shell

一个用户可以属于一个主组,可以属于一个或多个附属组

用户、组信息保存在以下三个文件中:

/etc/passwd 用户信息

/etc/shadow 用户密码

/etc/group 组信息

命令id用以显示当前用户的信息,命令passwd用以修改当前用户的密码

以下命令用以显示登陆用户信息:

whoami 显示当前用户

who 显示登陆的用户的信息

w 显示登陆的用户的详细信息

命令useradd用以添加一个用户:

useradd 用户名

-d 指定用户家目录

-s 指定用户登陆shell

-u 指定用户uid

-g 指定用户所属主组

-G 指定用户所属附属组

命令usermod用以修改一个用户的信息:

usermod 参数 用户名

-l 修改用户名

-u 修改uid

-g 修改用户主组

-G 修改用户附属组

-L 锁定用户

-U 解锁用户

命令userdel用以删除一个用户:

userdel 用户名

userdel -r 用户名 删除用户的同时删除该用户家目录

groupadd 用以创建一个组:

groupadd 组名

groupmod 用以修改一个组信息:

groupmod -n 新组名 旧组名

groupmod -g 新组ID 旧组ID

groupde 用以删除一个组

==================Linux权限机制=====================

chown 修改一个文件的所属用户:

chown 用户 文件

ex: chown linuxcast testfile

chgrp 修改一个文件的所属组:

chgrp 组 文件

ex: chgrp linuxcast-group testfile

chmod 修改一个文件的权限:

chmod 权限 文件

ex: chmod u+w linuxcast-file

--------------------Linux扩展权限--------------------

umask属性用来确定新建文件的默认权限

命令umask可以修改当前umask属性:

umask 022

创建文件: 666-umask

创建文件夹: 777-umask

Linux拥有三个特殊权限:

对文件的影响对目录的影响
suid以文件的所属用户身份执行,而非执行文件的用户
sgid以文件所属组身份执行在该目录中创建的任意新文件的所属组与改目录的所属组相同
sticky对目录拥有写入权限的用户仅可以删除其拥有的文件,无法删除其他用户所拥有的文件
命令chmod用以设置特殊权限:

chmod u+s linuxcast-file 设置suid

chmod g+s linuxcast-dir 设置sgid

chmod o+t linuxcast-dir 设置sticky

=================Linux网络基础配置================================

Linux中网卡标识为eth,第一块网卡叫做eth0,第二块叫做eth1,以此类推

使用lspci或lsusb命令可查看网卡物理信息

命令ifconfig用以查看网卡信息

命令ifup、ifdown用以启用、关闭一个网卡接口

ifup eth0

ifdown eth0

我们一般使用setup命令设置网卡信息

网卡的配置信息保存在下面目录中:

/etc/sysconfig/network-scripts/

配置文件为ifcfg-网卡名称,如:ifcfg-eth0

DNS服务器IP保存在:

/etc/resolv.conf

主机名配置保存在:

/etc/sysconfig/network

常用网络命令:

ping

host

traceroute

mtr

网络故障排查遵循从上至下、从里至外的原则

==================管道及重定向 =========================

管道及重定向就是Linux多命令协作的基础机制

Linux的Shell对数据流进行以下分类定义:

stdin 标准输入 编号为:0 默认:键盘

stdout 标准输出 编号为:1 默认:终端

stderr 标准错误 编号为:2 默认:终端

重定向用来控制终端数据流:

> 将标准输入以覆盖形式重定向到指定文件,如:ls > outfile

>> 将标准输入以追加形式重定向到指定文件,如:ls >> outfile

< 重定向标准输入 如:grep linuxcast < /etc/passwd

2> 重定向标准错误

2>&1 将标准错误合并到标准输出中

管道“|”用以将一个命令的标准输出作为另一个命令的标准输入:

命令1 | 命令2

管道通常用来组合不同命令

重定向通常用来保存输出信息

====================命令行文本处理工具==========================

关键字搜索:

grep 关键字 指定文件

-i 搜索时忽略大小写

-n 显示结果所在行

-v 显示不包含关键字的行

基于列的文本处理:

cut -d: -f1 /etc/passwd

-d 指定分割字符

-f 指定显示列

-c 基于字符顺序进行列分割

文本统计:

wc linuxcast

-l 只统计行数

-w 只统计单词书

-c 只统计字节数

-m 只统计字符数

文本排序:

sort linuxcast

-r 倒序排序

-n 基于数字进行排序

-f 忽略大小写

-u 删除重复行

文本比较:

diff linuxcast-1 linuxcast-2

-i 忽略大小写

-b 忽略空格数变化

-u 统一显示信息(一般用于生成patch文件)

文本转换:

tr -d "TMD" < linuxcast 删除指定关键字

tr 'a-z' 'A-Z' < linuxcast 转换大小写

搜索替换:

sed 's/linux/unix/g' linuxcast 将所有linux关键字替换为unix

sed '1,50s/linux/unix/g' linuxcast 将1到50行中的所有的linux替换为unix

sed -e 's/linux/unix/g' -e /nash_su/six_sex/g' linuxcast

将所有的linux替换为unix,所有的nash_su 替换为six_sex

sed -f sedrules linuxcast 将sedrules中的替换规则在linuxcast中执行

======================================Linux系统启动详解====================================================

Linux系统启动流程如下:

BIOS

MBR

GRUB

加载内核

init

runlevel

Linux内核文件保存在:

/boot/vmlinuz 内核文件

/boot/initramfs 内核模块

命令dmesg显示本次内核启动信息

init是系统运行的第一个进程

Linux运行级别:

0 关机

1 单用户模式

2 不带网络的多用户模式

3 命令行多用户模式

4 未使用

5 X11图形界面模式

6 重启

运行级别保存在配置文件:

/etc/inittab

命令runlevel显示当前及上一个运行级别

命令init可修改当前运行级别

init 3 单用户模式

单用户模式下可恢复root密码

在启动菜单下按e进入编辑模式,再在内核行最后添加1,再按b启动。进入单用户模式,

进入终端后用passwd修改root密码了。

为了安全起见,防止一般人修改内核启动引导。可以给修改引导命令添加一个密码,有点

相当于windows的BIOS密码。先再终端用grup-md5-crypt生成一个用md5加密后的密码串,再

将这个密码串复制下来。再在/boot/grup/grup.conf文件中添加一行

password --md5 加密后的密码串

然后保存退出,下次再想修改启动参数就要先按p输入密码,才能修改。

待续。。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: