欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux基础知识笔记

程序员文章站 2024-02-15 19:30:04
...

Centos -7 sudo权限
vim /etc/sudoers

 root   ALL=(ALL)     ALL    
 hazy   ALL=(ALL)     ALL      新增行

2-14
vim编辑器
i 插入
esc 退出
u 撤销
x 删除
v 选择文本
y 复制
p 粘贴
yy 复制整行
dd 删除所在行
:w 保存
:wq 保存退出
:q! 强退

安装 vim-gnome
+y 表示从vim复制到系统剪切板
+p 表示从外部文件粘贴到vim
+d 表示剪切

2-1
whoami 查看用户
su xxx 切换用户
useradd xxx 添加用户
passwd xxx 设置新用户密码

2-2
Ctrl+a 命令行开头
Ctrl+e 命令行结尾
Ctrl+u 命令行开头到光标处删除
Ctrl+k 命令行结尾到光标处删除
Ctrl+r 历史记录搜索命令
Ctrl+l=clear
history 显示历史命令
!+数字 执行

2-3
pwd 看当前路径
ls 看当前路径下的文件
-d 看当前目录信息 dictory -i inode编号
-l 看详细信息
-a 显示所有文件 all
-h 显示文件大小

2-4
cd 路径切换

  • 返回到之前的目录
    . 当前目录
    … 上一级目录
    ~ 家目录

2-5
/boot linux启动时需要的文件
/dev 设备文件
/etc 配置文件
/etc/passwd 记录Linux上所有的账号
/etc/shadow 记录账户对应的密码
/etc/group 记录所有的组
/etc/crontab 配置文件
/home 用户家目录
/media 媒体文件
/mnt 挂载文件
/opt 第三方软件
/proc 虚拟化文件
/root 管理员家目录
/run 进程文件
/svr 压缩文件
/sys 系统文件
/usr 安装的软件,共享库
/var 可变数据,日志文件
/var/spool/mail 用户邮箱
/var/log 日志文件
/var/log/message 大多数系统日志消息记录的日志
/var/log/secure 安全和身份验证的消息和错误日志
/var/log/maillog 与邮件服务器相关的日志
/var/log/cron 与定期执行任务相关的日志文件
/var/log/boot/log 记录和系统启动有关的日志
/tmp 临时文件
/user/bin 普通用户可以使用的命令
/user/sbin 超级用户可以使用的命令
/user/lib 32位库文件
/user/lib64 64位库文件
ls -l - 文件
d 目录
l 软连接、快捷方式
b 设备文件,提供存储的设备接口
c 设备文件,提供串行的接口设备–键盘、鼠标

2-6
cp 复制文件
mv 移动文件
rm 删除文件
mkdir 创建目录
touch 创建文件
cp -r 复制目录、递归
rm -r 删除目录 强制删除 -f

2-7
mv file1 file2 重命名

2-8
mkdir -p 直接创建

2-10
查看 cat、tac 相反
-b 列出行号 =nl -bt
-n 同时显示空白行 =nl -ba
-E 显示结尾的$
-T 将Tab以^I显示
-v 列出看不到的符号
-A = -vET

nl
-nln 行号显示左边
-nrn 行号显示右边
-nrz 右边、行号前加0
-w+x位 缩进

2-11
查看 less man page
pagedown
pageup
/字串符 搜索
n 下翻
N 上翻
q 退出

2-12
查看 head、tail 显示文件头尾,默认十行
-n 指定几行

                  日志文件     /var/log/message

	tail -f  现实最后10行,如果有新的内容加入会以翻滚形式继续输出

wc 显示文件 行数、字数、字节
-c 只字节
-w 只字数~~~字=空白、空格、分隔符
-l 只行

2-15
gedit 图形化界面的编辑 ----Xmanager

2-16
软链接=快捷方式
对不存在文件创建
对文件、目录创建
删除后不会影响指向文件
删除指向文件、软链接变死
创建
ln-s old new

2-17
硬链接
多个文件对应同一个inode编号–多用户协同一致工作
不能对目录进行创建
只能对已经存在的文件进行创建
删除一个硬链接文件、不影响相同inode编号文件
创建
ln
link

2-18
关机-shutdown
-t x秒后
-k 发出告警信息、不关
-r 系统服务停止后重启
-h 系统服务停止后关机
-f 关闭并开机后、强行略过磁盘检查
-F 重启后、强制进行磁盘检查
-c 取消已经在进行的shutdowm指令内容 ctrl+c

2-19
man 1 命令帮助
man 5 文件

3-1(文件权限)
-rw-r–r--. 1 root root 1090 Sep 18 12:58 /etc/passwd
权限 硬连接 所有者 所属组 容量/B 修改日期 文件名
-rwx 读(cat)、写(vim)、执行(脚本程序)
文件权限 -rwx rwx rwx
所有者 所属组 其他人

3-2(目录权限)
r 读取目录结构列表,查看文件
w 创建、删除、重命名、移动
x 是否可以进入该目录

3-3 3-4
chown 修改拥有者 chmod 修改拥有者和所属组权限
-R 递归 加减、 chomd u/g/o +/-/= r/w/x
chgrp 修改所属组 数字、 r=4、w=2、x=1
-R 递归 r–=4 r-x=5

3-5
gpasswd -a 用户 组 添加用户 /etc/group
-b 删除
groupadd 创建组 -g 指定gid
组的默认信息 /etc/login.defs

3-7
umask 默认权限 (-S)

3-9 文件的特殊权限
SUID SGID SBIT(系统看的、即账户组名 查看命令 id)
-rws------ 拥有者有SUID权限
----rws— 所属组有SGID权限
-------rwt 其他人有SBIT权限
SUID 临时获取文件拥有者的权限(文件)
SGID (文件)
继承上级目录并不断继承 (目录)
SBIT 只有文件拥有者才能删除修改该目录下的文件(目录)
s、t有大小写之分
大:没有x权限
小:有x权限
chomd (SUID=4/SGIB=2/SBIT=1) 7 777
sst rwx
ls -l 系统根据/etc/passwd和/etc/group文件内容找到对应的UID、GID显示

3-11 Linux用户账户管理
/etc/passwd
lewis❌1000:1000:lewis:/home/lewis:/bin/bash
lewis 用户名
x 早先用户密码—/etc/shadow
UID 0=管理员、1-999=系统ID、>=1000=一般使用者
=GID
lewis 使用者信息说明
/home/lewis 用户家目录,登入时所在目录
/bin/bash、/sbin/nologin 用户登入时 可以/不可以 使用shell

3-12
/etc/shadow
1.Root 用户名
2.一串红色的字 经过加密的密码
3.最近更改过密码的日期 linux中日期从1970.1.1号开始累加
4.密码不能修改的天数 0:随时
5.密码需要重新被修改的天数 可以修改值强制用户修改密码
6.密码需要变更的告警天数
7.密码到期账号还可以使用时间
8.账号失效日期
9.保留

3-13
useradd 创建 chage 修改密码有关时间参数 usermod 修改
-u 设置UID -u
-g 设置主组 -g
-G 设置附属组 -G
-c 设置用户说明 -c
-d 指定用户家目录 -d
-s 指定用户shell -a 和-G一起用,增加附属组
-e 账号失效日期 -l 用户名
-f 制定密码是否失效,0=立刻,1永不 -L 冻结 -U 解冻

passwd useradd -r 连同家目录邮箱一起删除
-l 锁住该账号
-u 解锁
-S 显示账号的密码参数
-n+天数 多久不修改密码
-x+天数 多久必须改密码
-w+天数 过期前警告天数
-i+天数 密码失效天数

进程与服务
4-1 进程:已经启动的可执行程序的运行实力

1.PID:进程的ID(每一个新进程都有唯一的PID)
2.PPID:父进程的ID
3.任何一个进程都可以创建一个子进程
4.在redhat 7以上,所有进程的父进程:systemd
  在redhat 5,6中,所有进程的父进程:init

ps 显示当前进程状态
-aux=-ef 列出所有进程
-l 列出和当前用户有关的进程
-u 用户 查看用户的进程状态

top 查看实时的进程状态
进程状态
*R 该进程正在运行或等待运行
*S 正在休眠但是可以被唤醒
D 正在休眠而且不可以被唤醒,该进程被中断可能会导致设备的异常状态
K 正在休眠而且不可以被唤醒,该进程可以被中断
*T 进程被停止,但是可以通过其他进程来进行恢复
T 正在被调试的进程
*Z 子进程在退出时向父进程发出信号,除了PID外,全部进程被释放
X 父进程获取了子进程的结构,子进程可以完全释放,该状态进程中是看不到的

进程优先级

  1. < 高优先级
  2. n 低优先级
  3. s 包含子进程
    • 位于后台的进程组

参数解释
1.%CPU 占用的CPU使用率
2.%MEM 占用的内存使用率
3.VSZ 占用的虚拟内存
4.RSS 占用的内存大小
5.TTY 终端的次要装置号码
6.STAT 该进程的状态
7.START 行程开始时间
8.TIME 执行的时间
9.COMMAND 所执行的指令

4-3 Linux中的会话和作业
& 命令后加该符号,可以让命令在后台执行
sleep – 延迟几秒
ctrl+c 中断
ctrl+z 挂起
~date;sleep 5;date
jobs:查看当前后台的作业状态
-l 除了列出作业号外,同时列出PID
-r 列出仅仅在后台运行的作业
-s 列出仅仅在后台暂停的作业

4-4
fg 将后台的命令调到前台来继续执行
bg 将后台暂停的命令继续执行
ps -j 显示当前作业进程信息
~TGID 进程组ID号
~SID 会话ID号

kill -l 现实可以传递给linux进程的所有信号
kill -9 PID 结束进程强制
kill -15 PID 正常的方式终止一个进程
kill -2 PID =ctrl+c

4-5 控制服务和守护进程

systemd:是所有进程的父进程(Linux内核3.0以上版本)
systemctl:用户管理各种类型的systemd对象/单元
常用单元:service(服务单元)
socket(套接字)
path(路径单元)
ssh:是一个协议
sshd:是一个进程

systemctl status sshd(.service) 显示中的关键字–redhat7
~status : 查看默一单元的状态
~start : 在系统中启动一项服务
~stop : 等待程序需处理完毕后再stop
~restart: 直接关闭程序 在开启
~reload : 重新加载配置文件,进程暂停,然后把配置文件加载进去后,
继续执行后续操作。进程的PID不会发生改变
~enable : 设置开机自启动
~disable: 关闭开机自启动
1.losded 配置文件已加载 (enable : 开机自启动)
(disable:开机不自启动)
(static : 无法启动,可通过关 联服务帮助启动)
2.active(running) 正在运行
(exited) 配置成功
(waiting) 运行中,但正在等待事件
inactive 不在运行

4-6 分析和存储日志
日志组成:
1.时间
2.主机
3.进程
4.内容
日志 : 用于系统审核和故障排除—“黑匣子”
/var/log 日志文件
Redhat 7中,系统日志消息由两个服务负责处理。
为:
systemd-journald
rsyslogd
/var/log/message 大多数系统日志消息记录的日志
/var/log/secure 安全和身份验证的消息和错误日志
/var/log/maillog 与邮件服务器相关的日志
/var/log/cron 与定期执行任务相关的日志文件
/var/log/boot/log 记录和系统启动有关的日志
tail -f 现实最后10行,如果有新的内容加入会以翻滚形式继续输出

4-7 打包和压缩

打包     tar

(选项前不加-)
~~x 提取存档////解压
A 将以存档与已有的存档合并
c 创建文档
d 比较存档与当前文件的不同之处
-delete 从存档中删除
r 附加到存档结尾
t 列出存档内容
f file 要操作的存档的文件名
v 详细信息

压缩  

	压缩工具 
	gzip	压缩速度最快、历史最久、应用最广泛
               z - - -   file.tar.gz
	bzip2   压缩成的存档文件小,可用性不如gzip
	       j - - -   file.tar.bz2
	xz      最新的方式,提供最佳的压缩率
	       J - - -   file.tar.xz

GDB调试
1、file <文件名>
加载被调试的可执行程序文件。因为一般都在被调试程序所在目录下执行GDB,因而文本名不需要带路径。
示例:(gdb) file gdb-sample
2、r
Run的简写,运行被调试的程序。如果此前没有下过断点,则执行完整个程序;如果有断点,则程序暂停在第一个可用断点处。
示例:(gdb) r
3、c
Continue的简写,继续执行被调试程序,直至下一个断点或程序结束。
示例:(gdb) c
4、b <行号>
b <函数名称>
b *<函数名称>
b <代码地址>
b: Breakpoint的简写,设置断点。两可以使用“行号”“函数名称”“执行地址”等方式指定断点位置。
其中在函数名称前面加“
”符号表示将断点设置在“由编译器生成的prolog代码处”。如果不了解汇编,可以不予理会此用法。
5、set args [parameter]
gdb调试的时候,设置命令行参数。
6、bt
bt可以去查看堆栈信息。down和up和一个一个打印堆栈信息。bt直接打印全部堆栈信息。
7、n
单步调试
8、s
单步进入

调试步骤:
首先,输入gdb test启动调试器
进入到gdb的调试界面之后,输入list,即可看到test.c源文件
设置断点,输入 b main
启动test程序,输入run
程序在main开始的地方设置了断点,所以程序在printf处断住
这时候,可以单步跟踪。s单步可以进入到函数,而n单步则越过函数
如果希望从断点处继续运行程序,输入c
希望程序运行到函数结束,输入finish
查看断点信息,输入 info break
如果希望查看堆栈信息,输入bt
希望查看内存,输入 x/64xh + 内存地址
删除断点,则输入delete break + 断点序号
希望查看函数局部变量的数值,可以输入print + 变量名
希望修改内存值,直接输入 print + *地址 = 数值
希望实时打印变量的数值,可以输入display + 变量名
查看函数的汇编代码,输入 disassemble + 函数名
退出调试输入quit即可

基本操作:

list 从第一行列出代码
按回车重复上次命令
quit退出
file装入想要调试的可执行文件
cd改变工作mulu
pwd返回当前工作目录
run 执行当前被调试的程序
kill停止正在调试的程序
break设置断点后面跟行号或者函数名
tbreak设置临时断点
watch 设置监视点,监视表达式的变化
next执行下一条代码,不进入函数内部,要先run了才能执行
setp执行下一条代码,进入函数内部
display停止运行时显示的表达式
info break显示当前断点列表
info func显示所有函数名
info local显示当前所有局部变量信息
info prog显示调试程序的执行状态
print 显示表达式的值
delete删除断点
shell执行命令
make 不退出而重新编译生成可执行文件
set 变量=值
c可以继续运行程序

6-1 软件安装
RPM安装 — 无法解决依赖关系
RPM命名规则
httpd - 2.4.6 - 45.el7.centosx86-64.rpm
名称 版本号 发行号 处理器架构
Yum安装 — 有安装包(需yum仓库)或有网络

把光盘中内容先进行挂载 安装包 — Packages
mkdir /mnt/hazy-cdrom
mount (-r) /dev/cdrom /mnt/hazy-cdrom 对只读的东西进行挂载加-r

6-3 软件安装rpm
rpm
-i 安装软件包
-q 询问软件包 和 -a 一起使用
-e 删除软件包
-U 把一个已经安装好的软件包升级
-v 验证已经安装的软件包
-h 显示安装进度条
常见:
-ivh 安装
-Uvh 升级
-qa 查询 rpm -qa|grep vim
-e 卸载

vim:vim-common vim-enhanced

6-5 软件安装–yum(仓库)

 yum search 包名  //搜索软件包
 yum install 包名 //安装软件包   -y
 yum remove  包名 //删除软件包
 yum update      更新源
 yum upgrade     更新软件

编写本地yum
vim /etc/yum.repos.d/hazy.repo
[hazy] //yum的名称起到标记的作用
name=It is a cdrom yum //对这个文件的描述
baseurl=file:///mnt/hazy-cdrom //软件包的位置file、ftp(本地)
fttp(联网)
enable=1 //1路径可用、0不可用
gpgcheck=0 //是否进行gpg检查,默认不检查,检查的话要导入公匙和私匙
yum clean all //清除yum源缓存
yum repolist //检查yum源
yum list //查看yum源中的文件

最小化安装的Linux,nmcil无法补齐命令,需要安装软件包
yum install bash-completion

相关标签: Linux学习