内核的引导(BIOS OS Read /boot 内核文件) - 运行init(所有进程的父进程 /etc/inittab window服务 Linux守护进程Daemon,不同的应用场景不同运行级别)
- 系统初始化(激活交换分区/检查磁盘/加载硬件模块以及其他需要优先执行的任务 /etc/init.d) - 建立终端 - 用户登录系统 (命令行登录 ssh登录 图形界面登录)
关机流程:
sysnc > shutdown > reboot > halt
内存数据同步到硬盘 > 关机 > 重启 > 关闭系统
bin:Binary 常用的命令浏览
boot:启动linux的核心文件
dev:linux外部设备 linux访问设备与访问文件方式相同
etc:所有的系统管理所需配置文件和子目录
home:每个用户都有一个自己的目录,以用户的账户命名
lib:基本的动态链接共享库,Windows DLL
mnt:临时挂载别的文件系统
opt:额外安装软件目录 oracle数据库
proc:系统内存的映射,访问该目录获取系统信息,该目录内容存在于内存中
root:系统管理员的用户主目录
sbin:super user 系统管理程序
selinux:安全机制 windows的防火墙 存放selinux的相关文件的
srv:服务启动后需要提取的数据
sys:新的文件系统sysfs sysfs文件系统,针对进程信息的proc文件系统,针对设备的devfs的文件系统以及针对伪终端的devpts文件系统
tmp:临时文件
usr:user software resource 用户很多应用程序和文件都在此目录下,类似windows下的program files
usr/bin:系统用户使用的应用程序
usr/sbin:超级用户使用的比较高级管理程序和系统守护程序
usr/src:内核源代码默认的放置目录
var:习惯性修改的目录放在此 如日志目录
文件基本属性:
多用户系统,不同用户不同地位不同权限
d 目录 - 文件 l 链接文档 b 接口设备 c 串行端口(键盘鼠标)
rwx read write execute 文件类型-文件所有者 权限-所有者的同组用户 权限-其他用户 权限
chgrp 更改文件属组 -R 递归更改
chown 更改文件属性 更改文件属组 -R 递归更改
chmod 更改文件9个属性 4+2+1 4+2+1 4+2+1 user group other
绝对路径 /
相对路径 ../
ls
-a 全部文件 隐藏文件
-d 列出目录本身,不是列出目录内的文件数据
-l 长数据串列出
cd change directory
cd ~ 回到自己的home目录
pwd print working dirctory
mkdir
-m 配置文件的权限 不许要默认权限
-p 将所需要的目录递回创建
rmdir 删除空目录 rm可以删除非空目录
-p 将关联目录递回创建(上一级空目录)
cp 拷贝文件和目录
-a -pdr
-p 文件属性一起复制,备份常用
-d 若来源档为link,则复制连接档属性而非文件本身 常用
-r 递归持续复制 目录的复制 常用
-f force 强制目标文件存在但无法开启 移除后再尝试一次
rm 可删除非空目录
-r 递归删除
-f force 忽略不存在的文件,不会出现告警信息
-i 互动模式 询问使用者动作
mv 移动文件与目录 或 修改文件名称
-f force 目标文件已经存在,不询问直接覆盖
-i 目标文件存在,询问
Linux文件内容查看
cat 第一行开始显示文件内容 -b 行号,空白行无行号 -n 行号,空白行也有行号 -V 列出看不出来的特殊字符
tac 最后一行开始显示 tac-cat
nl 显示的时候 输出行号 -b 行号指定方式 a 列空行 t 不列空行 -n 行号表示方法
more 一页一页的显示文件内容 空白建space-下翻页;Enter 下翻行;/字串 下寻字串; :f 档名及当前显示的行数;q 离开;b 回翻页
less 与more类似,可以往前翻页 【PageDown】下翻页 【PageUp】上翻页; /字串 下寻字串; ?字串 上寻字串; n 重复前一个搜寻;N 反向重复前一个搜寻; q 离开
head 默认只看头10行 -n
tail 默认只看尾巴10行 -n
Linux用户和用户组管理
用户帐号的添加/删除/修改
用户口令的管理
用户组的管理
useradd -d 指定主目录 -m ; -c comment;-g 用户组 ; -G 附加组 /etc/passwd /etc/shadow /etc/group userconf 用户帐号同一管理
userdel 用户帐号删除
usermod 帐号修改
passwd 用户口令管理 用户帐号刚创建时没有口令。被系统锁定,无法使用,指定口令后才有用。 -l 锁定口令,禁用帐号 -u 口令解锁 -d 帐号无口令
groupadd 用户组添加
groupdel 用户组删除
groupmod 用户组修改
/etc/passwd 用户的基本属性,每个用户在文件中有一个对应的记录行
用户标识号 0-65535 0是超级用户root的标识号,1-99由系统保留 作为管理帐号 普通用户标识号 100 - 500
伪用户 psuedo users 这类用户在文件中也占用一条记录,但是不能登录,登录shell为空,为方便系统管理而存在,满足相应的系统进程对文件属主的要求。
伪用户含义: bin 拥有可执行的用户命令文件 sys拥有系统文件 adm 拥有账户文件 uucp UUCP使用 nobody NFS使用
/etc/shadow 保存加密后的口令字 超级用户才拥有该文件读权限,其记录行与/etc/passwd 一一对应
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group 每个用户都有所属组 一组可以多用户,一用户可以多组
添加批量用户
Linux磁盘管理:
df:列出文件系统的整体磁盘使用量
du:检查磁盘空间使用量
fdisk:用于磁盘分区
磁盘格式化:磁盘分隔完毕后进行文件系统的格式化,mkfs make filesystem -t ext3 ext2 vfat
fsck file system check
mount 磁盘挂载 umount 卸载
vi
一般模式 编辑模式 指令列命令模式 [Esc]
yy p dd x
i a o r
:w :w! :q :q! :wq ZZ :!Command :set nu :set nonu
yum 软件包管理器
yum check-update \ update \ install packagename \ update packagename \ remove packagename \
清除缓存命令: clean packages; clean headers
Linux命令大全-文件管理
熟悉的:
cat chgrp chmod chown less more mv rm touch cp scp
非常重要的:
find
不熟悉的:
chattr cksum cmp diff diffstat file find git gitview indent cut ln locate lsattr mattrib
mc mdel mdir mktemp mmove mread mren mtools mtoolstest od paste patch rcp slocate split
tee tmpwatch umask which whereis mcopy mshowfat rhmask awk
linux命令大全:文档编辑
熟悉的:
重要的:
grep fold ex look sed sort uniq wc
不熟悉的:
col colrm comm csplit ed egrep ex fgrep fmt fold grep ispell
jed joe join mtype pico rgrep sed spell tr expr uniq wc
磁盘管理:m- MS-DOS 目录
熟悉的:
cd du mkdir pwd mount rmdir stat tree umount ls
重要的:
cd du mkdir pwd mount rmdir stat tree umount ls
不熟悉的:
df dirs edquota eject mcd mdeltree mdu mlabel mmd
mrd mzip quota mmount rmt quotacheck quotaoff Indir repquota quotaon
磁盘维护:
熟悉的:
mkfs
重要的:
mkfs sync
不熟悉的:
badblocks cfdisk dd e2fsck ext2ed fsck fsck.minix fsconf fdformat hdparm mformat mkbootdisk
mkdosfs mke2fs mkfs.ext2 mkfs.msdos mkinitrd mkisofs mkswap mpartition swapon symlinks sync
mbadblocks mkfs.minix fsck.ext2 fdisk loseup mkfs sfdisk swapoff
网络通讯:
熟悉的:
telnet
重要的:
telnet netconfig nc httpd ifconfig mesg dnsconf wall netstat ping talk traceroute tty netconf write tcpdump
不熟悉的:
apachectl arpwatch dip getty mingetty uux uulog uustat ppp-off netconfig nc
httpd ifconfig minicom mesg dnsconf wall netstat ping pppstats samba setserial
talk traceroute tty newaliases uuname netconf write statserial efax pppsetup
tcpdump ytalk cu smbd testparm smbclient shapecfg
系统管理:
熟悉的:
重要的:
adduser useradd date exit finger sleep groupdel groupmod halt kill
last login logname logout ps nice procinfo top pstree reboot screen
shutdown sudo userconf userdel usermod vlock who whoami whois
newgrp su skill w id free
不熟悉的:
adduser chfn useradd date exit finger fwhios sleep suspend
groupdel groupmod halt kill last lastb login logname logout
ps nice procinfo top pstree reboot rlogin rsh sliplogin screen
shutdown rwho sudo gitps swatch tload logrotate unname chsh
userconf userdel usermod vlock who whoami whois newgrp renice
su skill w id free
系统设定:
熟悉的:
重要的:
reset clear alias clock crontab declare enable
eval export grpconv rpm insmod set ntsysv
mouseconfig passwd resize modinfo time
setup setenv setconsole timeconfig ulimit chkconfig
不熟悉的:
reset clear alias discolors aumix bind chroot clock
crontab declare depmod dmesg enable eval export pwunconv
grpconv rpm insmod minfo set modprobe ntsysv mouseconfig
passwd pwconv rdate resize rmmod grpunconv modinfo time
setup sndconfig setenv setconsole timeconfig ulimit unset
chkconfig apmd hwclock mkkickstart fbset unalias
备份压缩:
熟悉的:
重要的:
gunzip compress cpio dump gzexe gzip restore tar unzip zip zipinfo
不熟悉的:
ar bunzip2 bzip2 bzip2recover gunzip unarj compress cpio
dump uuencode gzexe gzip lha restore tar uudecode unzip
zip zipinfo
设备管理:
setleds loadkeys rdev dumpkeys
文件传输:lp - line print
熟悉的:
重要的:
ftp tftp ncftp
不熟悉的:
lprm lpr lpq lpd bye ftp uuto uupick uucp uucico tftp ncftp ftpshut ftpwho ftpcount
man
info
x --help
1. 最关键的命令
man
echo
2. 目录文件操作命令
ls: 查看目录下的文件信息或文件信息
dir:
pwd: 打印当前路径
cd:改变路径
mkdir:创建路径
rmdir:删除路径
cp:拷贝文件或目录
mv:移动文件或目录,或改名
rm: 删除文件或目录
tree:输出该目录下的文件目录树
3. 查看文件内容
cat:
more:
less:
head:
tail:
wc:统计文件的字符数、单词数和行数等信息
4. 用户管理
useradd:添加用户
groupadd:
userdel: 删除用户
groupdel
passwd: 为用户设置密码
usermod: 更改用户设置
su:用户切换
finger root:查看某用户资料
finger:查看所有用户资料
last:最近一个月用户登录情况
id:打印用户的UID和GID
users:
groups:
who:列出活跃用户
whoami:
who am i:
w:
/etc/default/useradd:添加用户时候的默认设置文件
/etc/profile
/etc/bashrc
~/.bashrc
~/.bash_profile
5. 命令历史
history
!!:执行最近一次命令
6. 创建连接
ln a b:为a创建硬连接(hard link)b
ln -s a b: 为a创建符号链接(symbolic link)b
7. 进程管理
top 查看后体进程,监控系统性能
top -d 2:每2秒刷新一次
top -d 2 -p 3690 查看某个PID
top -b -n 2 > /tmp/top.txt 将top的信息刷新两次的结果输出到/tmp/top.txt
ps 查看进程近况
free -m 查看系统内存使用情况
uptime:系统开机时间
8. 文件比较命令
diff
cmp
9. 关机和重启
shutdown [-t 秒数] [-rkhncf] 时间 [警告信息]
shutdown -h now 立即关机,相当于halt
shutdown -r now 立即重启,相当于reboot
dmesg | more 查看开机信息
clear 清屏
10. 网络命令
ifconfig 显示或查看网络设备
/etc/init.d/network restart:重启网络服务(网卡)
网络IP的配置文件是:/etc/sysconfig/network-script/ifcfg-eth0
ifdown eth0 关闭网卡
ifup eth0 开启网卡
route -n 查看路由表
routeadd -net 192.168.2.1 netmask 255.255.255.0 dev eth0
netstat: 查看网络连接状况
traceroute
hostname:显示主机名
hostname -i:显示当前主机名的IP
11. 系统集成管理菜单
setup:系统服务管理命令
ntsysv;设置系统服务
12. RPM软件包管理
rpm -ivh xxx.rpm 安装rpm包
rpm -qa --last | less 根据安装日期显示已经安装的包
rpm -qa |grep mysql -i 查询系统是否安装mysql包(-i,忽略大小写)
rpm -e 删除安装的软件包
rpm -e mysql* --nodpes
强制删除相关的软件包
rpm --test 测试安装
rpm -qi 查询mysql包的说明资料
rpm -qpl xxx.rpm 查看rpm包内含的内容.
rpm -qc[d] 设定档与说明档
rpm -Uvh 升级安装
rpmbuild --bb SPECS/xxx.spec 重新装将xxx.spec编译成rpm包.
rpmbuild --rebuild packagename.src.rpm 重新把.src.rpm编译成rpm包.
13. 实时通讯
write:给指定用户发信
write username
talk:
wall: 给所有人发信
14. 文件所有权或权限管理
chown:改变文件属主
chgrp:改变文件的属组
chmod:改变文件的读写、执行权限
umask:改变系统下文件、目录的默认权限
15. 管道(pipe)
管道:将前一个命令的输出作为另一个命令的输入
ls -la | more
16. 重定向
将一个命令的输出写入一个文件或者文件句柄
ls -la > filecontents.txt
17. 查找文件
locate:
find:
which:
whereis:
18. 源程序的编译过程
./configure检查系统信息
./configure --help | more 给出configure的帮助信息
make clean 清除之前留下的文件
make 编译
make install 安装
安装时多查看README/INSTALL文件的说明
19. 文件压缩命令
*.Z compress程序压缩的文件
*.bz2 bzip2程序压缩的文件
*.gz gzip程序压缩的文件
*.tar tar程序打包的文件,并没有压缩过
*.tar.gz tar程序打包的文件,并经过gzip的压缩处理
compress filename filename.Z 压缩文件
compress -d filename.Z 解压文件
gzip filename filename.gz 压缩文件
gzip -d filename.gz 解压文件
zcat filename.gz 查看压缩文件
bzip2 -z filename 压缩文件
bzip2 -d filename.bz2 解压文件
bzcat filename.bz2 查看压缩文件内容
tar -cvf filename.tar directory_name 文件归档
tar xvf filename.tar 把文件包解开
tar xzvf filename.tar.gz 解压并解包
tar xjvf filename.tar.bz2 解压并解包
tar ztvf filename.tar.gz 查看tar内容
20. 通配符(wildcard character)
?:表示该位置可以是任意单个字符
*:表示该位置可以是若干个任意字符
[charset]:可替代charset中的任意单个字符
例如
[Cc]h可以分别表示Ch和ch
[a-z]可以代替任意单个小写字母,[a-zA-Z]表示任意字母
rm a*.out表示删除所有以a开头的,扩展名为.out的文件
ls img-[1-5].jpg表示img1.jpg, img2.jpg, img3.jpg, img4.jpg, img5.jpg
21. Linux目录架构
/ 根目录
/bin 常用命令存放的目录,binary file
/boot 存放系统启动时必须读取的文件,包括内核在内
/boot/grub/menu.lst GRUB设置
/boot/vmlinuz 内核
/boot/initrd 内核解压所需要的RAM Disk
/dev 系统周边设备
/etc 系统相关配置文件和子目录,包括网络配置文件、文件系统、X系统配置文件、设备配置信息、用户信息等
/etc/DIR_COLORS 设定颜色
/etc/hostname 设定节点名称
/etc/networking 只有yes表明网络存在
/etc/host.conf 文件说明用户的系统如何查询节点名称
/etc/hosts 设定机器IP与名称的对应表
/etc/hosts.allow 设置允许使用inetd的机器列表
/etc/hosts.deny 设置不允许使用inetd的机器列表
/etc/hosts.equiv 设置不用密码访问的客户机名称
/etc/inetd.conf 设定系统网络守护进程inetd的配置
/etc/gateways 设定路由器的配置
/etc/protocols 设定系统支持的协议
/etc/named.conf 系统作为DNS服务器的配置文件
/etc/sysconfig/network/scripts/ifcfg-eth0 设置IP/MAC等信息
/etc/resolv.conf 设置DNS
/etc/X11 X Window的配置文件
/etc/fstab 记录开机要加载的文件系统
/etc/inittab 设定系统启动时init进程要进入什么样的runlevel
/etc/issue记录用户登录前显示的信息
/etc/group设定用户的组名和相关信息
/etc/passwd 设定用户帐号信息
/etc/shadow 用户密码信息
/etc/sudoers 可以sudo命令的配置文件
/etc/securetty 设定root用户可以登录的终端
/etc/login.defs 设定所有用户登录时的缺省配置
/etc/exports 设定NFS系统
/etc/init.d/ 存放预设的自动启动进程的启动脚本
/etc/xinetd.d/ 存放super daemon管理的各项服务的设置文件
/etc/modprobe.conf 内核模块额外参数设置
/etc/syslog.conf 系统日志设置文件
/home 普通用户家目录
/lib或/lib64 系统会用到的函数库,系统动态链接共享库
/lib/modules kernel相关模块
/var/lib/rpm rpm包安装处
/lost+found 系统不正常错误发生时,会将一些遗失的片段置于该目录下
/mnt 外部设备的挂载点
/media 与/mnt相类
/opt 主机额外安装的软件
/proc 虚拟目录,内存的映射,存储系统信息
/proc/version 内核版本
/proc/sys/kernel 系统内核功能
/root 系统管理员的家目录
/sbin 系统管理员才能执行的系统管理指令
/srv 一些服务启动后,这些服务所需的文件目录
/tmp 一般用户或正在执行的程序存放临时文件的地方
/usr 最大的目录,存放应用程序和文件
/usr/X11R6 X-window目录
/usr/src Linux源代码
/usr/include 系统头文件
/usr/openwin 存放SUN的OpenWin
/usr/share/man 在线使用手册
/usr/bin 用户执行的binary file目录
/usr/local/bin 用户执行的binary file目录
/usr/lib 系统使用的函数库
/usr/local/lib 系统使用的函数库
/usr/sbin 系统管理员才能执行的指令
/usr/local/sbin 系统管理员才能执行的指令
/var 日志文件等
/var/log/secure 记录登录系统存取文件的信息
/var/log/wtmp 记录登录用户的信息
/var/log/messages 系统发生的错误信息
/var/log/boot.log 记录开机或者是一些服务启动的时候,所显示的启动或关闭信息
/var/log/maillog 记录邮件存取或往来的用户记录
/var/log/cron 记录crontab服务的内容
/var/log/httpd, /var/log/news, /var/log/mysqld.log, /var/log/samba, /var/log/procmail.log 不同的网络服务信息
22. runlevel的级别
0:系统停机状态
1:单用户工作状态,root权限,用于系统维护,禁止远程登录
2:多用户状态(没有NFS)
3:完全的多用户状态(有NFS),登录后进入控制台命令行模式
4:系统未使用,保留
5:X11控制台,登录后进入GUI模式
6:系统正常关闭并重新启动,默认运行级别不能为6,否则不能正常启动
23. BASH常用变量
$HISTFILE: 用于存储历史命令的文件
$HISTSIZE:历史命令列表的大小
$HOME:当前用户的家目录
$OLDPWD:前一个目录
$PATH:bash寻找可执行文件的搜索路径
$PS1:命令行的一级提示符
$PS2:命令行的二级提示符
$PWD:当前工作目录
$SECONDS:当前shell开始后所经过的时间长度,单位为秒