linux学习笔记
Posted TPMer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux学习笔记相关的知识,希望对你有一定的参考价值。
一直在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输入密码,才能修改。
待续。。。。。
以上是关于linux学习笔记的主要内容,如果未能解决你的问题,请参考以下文章