Linux笔记
linux(Redhat7.6)简化笔记,为简洁并且快速寻求个人所需,而作的一篇Linux命令大合集。
Linux启动过程
主机启动并进行硬件自检
启动引导器程序
引导硬盘中的操作系统
加载Linux内核程序
进一步加载系统的INIT进程
进入指定的系统运行级别
在不同的运行级别中,根据系统的设置启动相应的服务程序
允许用户输入账号和口令进行登录
运行级别
INIT进程:inittab文件为INIT进程的配置文件。
Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser,without NFS (The same as 3,if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault
0- 停机,不要把系统的默认运行级别设置为0,否则系统不能正常启动。
1 - 单用户模
2 - 字符界面的多用户模式,在该模式下不能使用NFS。
3 - 字符界面的完全多用户模式,主机作为服务器时通常在该模式下。
4 - 未分配。
5 - 图形界面的多用户模式,用户在该模式下可以进入图形登录界面。
6 - 重新启动,不要把系统默认运行级别设置为6,否则系统不能正常启动。
查看运行级别:runlevel
登录和退出
-
文本登录模式: 打开终端窗口 – su root(超级用户才能进入文本登录模式) – init 3(文本登录模式) – root – password
退出方式:logout / exit -
图形界面登录:init 5
退出方式:系统 – 注销
root密码修复(忘记密码)
进入单用户模式重置ROOT密码
查看版本信息 :cat /etc/redhat-release
Redhat6版本
Redhat6版本 |
---|
进入开机界面,点击‘e’![]() |
选中第二项,点击‘e’ ![]() |
输入1回车![]() |
点击‘b’键![]() |
进入单用户模式![]() |
输入passwd,修改密码,完成后重启服务器 |
Redhat7版本 or Centos7
Redhat7版本 or Centos7 |
---|
开机看到内核条目的时候,按e开始编辑![]() |
要去掉rhgb和 quiet之后的参数(必须要去掉)![]() |
kernel的最后加入init=/bin/sh,按ctrl+x启动系统,此时无需密码即可进入系统![]() |
以rw的方式重新挂载/(否则没写权限)![]() |
为了保证一些文件受到selinux上下文的影响,所以必须执行下面的命令: |
touch /.autorelabel |
初始化和启动系统:exec /sbin/init |
Linux命令
".“代替当前目录,”…“代表当前目录的父目录,”~"个人主目录(家目录)
命令按Tab键补齐文件名称,pwd查看当前路径
同一命令行要输入多个命令,以分号隔开;
普通用户提示符“$”,超级用户提示符为“#”; 命令后加“&”表示程序以后台方式执行。
浏览目录类命令
cd命令
cd/cd ~ | 改变目录位置至用户登录时的工作目录 |
---|---|
cd /etc 或 cd …/etc(相对路径) | 改变目录位置到根目录etc文件夹下 |
cd … | 改变目录位置到当前目录的父目录 |
cd /etc/hosts | 用绝对路径到/etc/hosts目录下 |
ls命令
ls | 列出当前目录下的文件及目录 |
---|---|
ls -a | 列出包括以"."开始的隐藏文件在内的所有文件 |
ls -t | 依照文件最后修改时间的顺序列出文件 |
ls -F | 列出当前目录下的文件名及类型。以 / 结尾i表示目录名,以*结尾表示为可执行文件,以@结尾表示为符号连接 |
ls -l/ls -ll | 列出当前目录下所有文件的权限、所有者、文件大下、修改时间及名称 |
ls -lg | 同上,并显示出文件的所有者工作组名 |
ls -R | 显示出目录下以及其所有子目录的文件名 |
浏览文件类命令
cat命令
cat 滚屏显示文件内容或是将多个文件合并成一个文件
多个文件合并成一个文件 | 语法为:cat file1 file2>>file3或cat file1 file2>file3 (将文件file1和file2合并到file3) |
---|---|
cat -b /file1 | 将file1文件输出内容的非空行标注行号 |
cat -n /file1 | 将file1文件输出内容的所有行标注行号 |
more命令
cat命令在文件太长时,用户只能看到文件的最后一部分。那么可以使用more命令,一页一页的分屏显示文件的内容。
按【Enter】向下一行,按【space】向下移动一页,按【q】退出more命令。
常用参数 | 解析 |
---|---|
-num | 这里的num是一个数字,指定分页显示时每页的行数 例:more -10 /file1表示以每页十行来浏览file1文件 |
+num | 指定从文件的第num行开始显示 例:more +18 /file2 表示从第18行开始浏览file2文件 |
less命令
1、less命令可以上下翻页,甚至可以前后左右的移动;
进入less状态,按【Enter】向下移动一行,按【space】向下移动一页;按【b】向上移动一页;也可以用光标向前、后、左、右移动;按【q】退出less命令。
2、less命令支持在一个文本文件中进行快速查找。
按【/】,再输入要查找单词或字符;less命令会把找到的第一个搜索目标高亮度显示,如果要继续查找,则再次按下【/】,再按【Enter】即可。
head命令
head显示开头部分,默认情况下只显示文件的前10行内容
语法 | 解析 |
---|---|
head -n num 文件名 | 显示指定文件的前num行 |
head -c num 文件名 | 显示指定文件的前num字符 |
tail命令
tail 显示末尾部分,默认情况下只显示文件的末尾10行内容
语法 | 解析 |
---|---|
tail -n num 文件名 | 显示指定文件的前num行 |
tail -c num 文件名 | 显示指定文件的前num字符 |
tail +num 文件名 | 从第num行开始显示指定文件内容 |
目录操作类命令
mkdir命令:创建新目录
语法:mkdir [参数] 目录名
常用参数-p:如果父目录不存在,则同时创建目录及其父目录。
rmdir命令:删除目录
语法:rmdir [参数] 目录名
常用参数-p:再删除目录时,一起删除父目录,但父目录中必须没有其他目录及文件。
cp命令:复制文件
语法:cp [参数] /绝对路径/文件名 复制到/绝对路。
用root身份,将家目录下的.bashrc复制到/tmp下,并更名为bashrc
cp .bashrc /tmp/bashrc
cp -i .bashrc /tmp/bashrc
-i会在覆盖前询问使用者是否确定覆盖
cp -a .bashrc /tmp/bashrc
-a复制.bashrc的所有属性
cp -r .bashrc /tmp/bashrc
-r可以复制目录,但是文件与目录的权限属性会改变,所以利用-a来执行命令,尤其是在备份的情况下。
文件操作类命令
mv命令
mv命令主要用于文件或目录的移动或改名。
语法:mv [参数]源文件或目录 目标文件按或目录
常用参数:
-i:如果目标文件或目录存在时,提示是否覆盖目标文件或目录
-f:无论目标文件或目录是否存在,直接覆盖目标文件或目录,不提示
rm命令
rm命令主要用于文件或目录的删除。
语法:rm [参数] 文件名或目录
常用参数:
-i:删除文件或目录时提示用户
-f:删除文件或目录时不提示用户
-R:递归删除目录(包含目录下的文件和各级子目录)。
touch命令
touch命令用于建立文件或更新文件的修改日期。
语法:touch [参数] 文件名或目录
常用参数:
-d yyyymmdd:把文件的存取或修改时间改为yyyy年mm月dd日
-a:只把文件的存取时间改为当前时间
-m:只把文件的修改时间改为当前时间
diff命令
diff命令用于比较两个文件内容的不同。
语法:diff [参数] 源文件 目标文件
常用参数:
-a:将所有的文件当作文本文件处理
-b:忽略空格造成的不同
-B:忽略空行造成的不同
-q:只报告什么地方不同,不报告具体的不同信息
-i:忽略大小写的变化
ln命令
ln命令用于建立两个文件之间的链接关系。
语法:ln [参数] 源文件或目录 链接名
常用参数:
-s:建立符号链接(软链接),不加该参数时建立的链接为硬链接
两个文件之间的链接关系有两种:一种称为硬链接,这时两个文件名指向的是硬盘上的同一块存储空间,对两个文件中的任何一个文件的内容进行修改都会影响到另一个文件。它可由ln命令不加任何参数建立。
tar命令
tar命令用于文件打包,它可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。
语法:tar [参数] 档案文件 文件列表
常用参数:
-c:生成档案文件
-v:列出归档解档的详细过程
-f:指定档案文件名称
-r:将文件追加到档案文件末尾
-z:以gzip格式压缩或解压文件
-j:以bzig2格式压缩或解压文件
-b:比较档案与当前目录中的文件
-x:解开档案文件
常用压缩解压参数:
压缩:-cvf
解压:-xvf
或
压缩名为A.gz:gzip -v A
解压名为A.gz:gunzip -v A
rpm命令
rpm命令主要用于对RPM软件包进行管理。
语法:rpm [参数] 软件包名
常用参数:
查询
-qa:查询系统中安装的所有软件包
-q:查询指定的软件包在系统中是否安装
-qi:查询系统中已安装软件包的描述信息
-ql:查询系统中已安装软件包里所包含的文件列表
-qf:查询系统中指定文件所属的软件包
-qp:查询RPM包文件中的信息,通常用于在未安装软件包之前了解软件包中的信息
操作
-i:用于安装指定的RPM软件包
-v:显示较详细的信息
-h:以“#”显示进度
-e:删除已安装的RPM软件包
-U:升级指定的RPM软件包。软件包的版本必须比当前系统中安装的软件包的版本高才能正确升级。如果当前系统中并未安装指定软件包,则直接安装。
-F:更新软件包
安装一个软件包:-ivh
whereis命令
whereis命令用于寻找命令可执行文件所在位置
语法:whereis [参数] 命令名称
常用参数:
-b:只查找二进制文件
-m:只查找命令的联机帮助手册部分
-s:只查找源代码文件
whatis命令
whatis命令用于获取命令简介
语法:whatis 命令名称
find命令
find命令用于文件查找
语法:find [路径] [匹配表达式]
-name filename:查找指定名称的文件
-name username:查找属于指定用户的文件
-group grpname:查找属于指定组的文件
-print:显示查找结果
-size n:查找大小为n块的文件,一块为512B。符号“+n”表示查找大小大于n块的文件;符号“-n”表示查找大小小于n块的文件;符号“nc”表示查找大小为n个字符的文件。
-inum n:查找索引节点号为n的文件
-type:查找指定类型文件。文件类型有:b(目录)、p(管道文件)、l(符号链接文件)、f(普通文件)
-atime n:查找n天前被访问过的文件。“+n”表示超过n天前被访问的文件
-mtime n:类似于atime,但检查的是文件内容被修改的时间
-ctime n:类似于atime,但检查的是文件索引节点被改变的时间
-perm mode:查找与给定权限匹配的文件,必须以八进制的形式给出访问权限
-newer file:查找比指定文件新的文件,即最后修改时间离现在较近
-exec command {} ;:对匹配指定条件执行command命令
-ok command {} ;:与exec相同,但执行command命令时请求用户确认
查找权限为755的普通文件,执行显示
grep命令
grep命令用于查找文件中包含有指定字符串的行。
语法:grep [参数] 要查找的字符串 文件名
常用参数
-v:列出不匹配的行
-c:对匹配的行计数
-l:只显示包含匹配模式的文件名
-h:抑制包含匹配行只按照相对的行号显示
-i:对匹配模式不区分大小写
系统信息类命令
dmesg命令
- dmesg命令用实例名和物理名称来标识连到系统上的设备。
- dmesg命令显示系统诊断信息、操作系统版本号、物理内存大小及其他信息。
- 系统启动时,屏幕上会显示系统CPU、内存、网卡等硬件信息。通常显示的比较快,如果用户没有来得及看清,可以在系统启动后用dmesg命令查看。
df命令
- df命令主要用来查看文件系统的各个分区的占用情况。
- 该命令列出系统上所有已挂载的分区大小、已占用空间、可用空间以及占有率。
- 空间大小的单位:K。
du命令
- du命令用于查看某个目录中的各级子目录所使用的硬盘空间数。
- 基本用法是命令后跟目录名,如果不跟目录名,则缺省为当前目录。
free命令
free命令查看系统内存,虚拟内存大小及占用情况。
date命令
- date命令还可以查看当前日期和时间。
- date命令还可以设置当前日期和时间(只有root用户才可以改变系统的日期和时间)。
cal命令
cal命令用于显示指定月份或年份的日历,可带两个参数,其中年、月份用数字表示;只有一个参数表示年份,年份的范围为1~9999;不带任何参数的cal命令显示当前月份的日历。
ps命令
ps命令主要用于查看系统进程。
语法:ps [参数]
常用参数
-a:显示当前控制终端的进程(包含其他用户的)
-u:显示进程的用户名和启动时间等信息
-w:宽行输出,不截取输出中的命令行
-l:按长格形式显示输出
-x:显示没有控制终端的进程
-e:显示所有的进程
-t n:显示第n个终端的进程
kill命令
- 前台进程运行时,可以用【ctrl+c】来终止它。
- 后台进程则使用kill命令向进程发送强制终止信号,以达到终止进程的目的。
top命令
- top命令实时监控进程的状况
- top屏幕自动每5秒刷新一次,也可以“top -d 20”,使得top屏幕每20秒刷新一次。
bg命令
bg命令用于把进程放后台运行。
jobs命令
jobs命令用于查看在后台运行的进程。
fg命令
fg命令用于把从后台运行的进程调到前台。
其他常用命令
clear命令用于清楚字符终端屏幕内容。
uname命令用于显示系统信息。
man命令用于列出命令的帮助手册。
shutdown命令用于在指定时间关闭系统。
halt命令:立即停止系统,但该命令不自动关闭电源,需要人工关闭电源。
reboot命令:重新启动系统,相当于“shutdown -r now”
poweroff命令:立即停止系统,并关闭电源,相对于“shutdown -h now”。
命令的创建、取消
alias命令用于创建命令的别名。
unalias命令用于取消别名的定义。
history命令用于显示用户最近执行的命令。只要在命令编号前加“ !”,就可以重新运行history中显示出的命令行。
用户和组群
UID:每个用户都有唯一的身份标识,称为用户ID。
GID:每个用户组都有唯一的身份标识,称为用户组ID。root用户的UID为0;普通用户的UID在创建时指定(默认从500开始顺序编号)。
用户和组群配置文件
用户账户文件:
/etc/passwd文件:用户账号信息
/etc/shatdow文件:用户口令
组群文件:
/etc/group文件:组群账户信息
/etc/gshadow文件:组群口令、管理员等管理信息
/etc/login.defs文件
用户创建与管理
显示当前用户:whoami
用户切换:su username
退回到上一使用用户:exit
新建用户:useradd/adduser(useradd [选项] )
-c command 用户的注释性信息
-d home_dir 指定用户的主目录
-e expire_date 禁用账号的日期,格式为:YYYY-MM-DD
-f inactive_days 设置账户过期多少天后,用户账户被禁用(如果为0,账户过期后将立即被禁用,如果为-1,账户过期后将不被禁用)
-u UID 指定用户的UID
-g initial_group 用户所属主组群的组群名称或者GID
-G group-list 用户所属的附属组群列表
-m 若用户主目录不存在则创建它
-M 不要创建用户主目录
-n 不要为用户创建用户私人组群
-p passwd加密的口令
-r 创建UID小于500的不带主目录的系统帐号
-s shell 指定用户的登录Shell,默认为/bin/bash
passwd命令参数
-l 锁定(停用)用户账户
-u 口令解锁
-d 将用户口令设置为空,这与未设置口令的账户不同;未设置口令的账户无法登录系统,而口令为空的账户可以
-f 强迫用户下次登录时必须修改口令
-n 指定口令的最短存活期
-x 指定口令的最长存活期
-w 口令要到期前提前警告的天数
-i 口令过期后多少天停用帐户
-S 显示帐户口令的简短状态信息
用户账户的维护
修改用户账户:usermod
格式:usermod [选项]
例:修改用户user1的主目录未为/var/user1,把启动Shell修改为/bin/tcsh
禁用和恢复用户账户
- passwd命令
- userwd命令
- 直接修改/etc/passwd或/etc/shadow文件
●可将/etc/passwd文件或/etc/shadow文件中关于user1帐
户的passwd域的第一个字符前面加上一个 “”,达到禁用帐户的目的,在需要恢复的时候只要删除字符“”即可。
●如果只是禁止用户帐户登录系统,可以将其启动Shell设
置为/bin/false或者/dev/null. - usermod命令
●禁用user1用户账户
usermod -L user1
●解除user1用户锁定
usermod -U user1