Linux学习笔记

目录作用

/etc [重点]

  • 所有的系统管理所需要的配置文件和子目录my.conf

/usr [重点]

  • 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。

/tmp

  • 这个目录是用来存放一些临时文件的。

/media [重点]

  • linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

/mnt [重点]

  • 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。d:/myshare

/opt

  • 这是给主机额外安装软件所摆放的目录。如安装ORACLE数据库就可放到该目录下。
    默认为空。

/usr/local [重点]

  • 这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序。

/var [重点]

  • 这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件。

VIM

基础命令

进入
vim 文件名
编辑模式
进入后按i
正常模式
按下Esc
用于查看文本,也可复制、粘贴、撤销、重做等
命令模式
按下Esc,再按:
用于输入指令,如:保存、运行、切换标签、切割屏幕等
保存退出
编辑完后按Esc,输入:wq,如果是新建的,则需要命名后才能退出,输入:wq [文件名]
强制退出
不保存内容直接退出,输入:q!
无修改退出
:q进去后看了下,对原文件没修改,则可以使用q退出

实用快捷键

以下都是进入正常模式使用,注意区分大小写

复制
按下yy:复制光标所在行,再按p:粘贴一行
复制相同内容多行
按下yy后,在按 [数字]p
例如:9pp,粘贴9行;123456pp,粘贴123456行
删除
删除当前行dd,删除当前行及下面的行 [数字]dd
查找
/[内容]n跳转到下一个
例如查找fuck,/fuck即可
显示/隐藏行号
输入:set nu / :set nonu
移动到首行/尾行
按下gg / G
撤销
按下u
跳转到指定行
在显示行号的前提下(方便查看),按下 [行号]+Shift+g

实操篇

关机/重启

shutdown -h now 立该进行关机
shudown -h 1 “hello, 1 分钟后会关机了”
shutdown -r now 现在重新启动计算机
halt关机,作用和上面一样.
reboot 现在重新启动计算机
sync 把内存的数据同步到磁盘
不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中

用户(组)操作

Linux用户和用户组(包含两者之间的关系)

添加用户

useradd 用户名:添加
passwd 用户名:指定密码
没指定home目录,则会自动在/home/下删除用户名同名目录

删除用户

userdel 用户名:不删除自己的home目录,即/home/用户名(建议写法)
userdel -r 用户名:删除自己的home目录

查询用户

id 用户名

切换用户

su - 用户名:高权限切换到低权限无需输入密码,反之需要

用户组操作

添加:groupadd 组名
删除:groupdel 组名
添加用户时直接加上组:useradd -g 用户组 用户名
修改用户的组:usermod -g 用户组 用户名

用户和组的相关文件

如用户zs

/etc/passwd 文件: 用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

zs:x:1001:1002::/home/zs:/bin/bash

/etc/shadow 文件: 口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

zs:$6$P.lwTkmp$O4VJjAGNBXOmnkkIHSbFUVTORJfONPrG:18675:0:99999:7:::

/etc/group 文件: 组(group)的配置文件,记录Linux包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表

zs:x:1002:

文件目录类

pwd 显示当前工作目录的绝对路径

ls 列出目前工作目录所含之文件及子目录
-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出

[root@localhost ~]# ls
[192.168.159.130:9200]  4560  anaconda-ks.cfg  applog  get-docker.sh  json_lines  logs  rubydebug
[root@localhost ~]# ls -a
.   [192.168.159.130:9200]  anaconda-ks.cfg  .bash_history  .bash_profile  .cshrc         json_lines  .pki       .swp     .viminfo
..  4560                    applog           .bash_logout   .bashrc        get-docker.sh  logs        rubydebug  .tcshrc
[root@localhost ~]# ls -l
total 20
-rw-r--r--  1 root root     0 Apr 16  2020 [192.168.159.130:9200]
-rw-r--r--  1 root root     0 Apr 16  2020 4560
-rw-------. 1 root root  1457 Aug 18  2019 anaconda-ks.cfg
-rw-r--r--  1 root root     0 Apr 16  2020 applog
-rw-r--r--  1 root root 13328 Apr 15  2020 get-docker.sh
-rw-r--r--  1 root root     0 Apr 16  2020 json_lines
drwxr-xr-x. 3 root root    70 Mar  4  2020 logs
-rw-r--r--  1 root root     0 Apr 16  2020 rubydebug

mkdir 创建目录
mkdir [选项] 要创建的目录
选项
-p :创建多级目录

touch 创建空文件
touch 1.txt 2.txt 3.txt

cp 复制
cp [选项] 原文件(夹) 目标文件夹
选项
-r :递归复制整个文件夹
强制覆盖不提示的方法:\cp

rm 删除
rm [选项] 要删除的文件或目录
选项
-r :递归删除整个文件夹
-f :强制删除不提示

mv 移动文件与目录
mv oldNameFile newNameFile (功能描述:重命名)
mv /temp/movefile /targetFolder (功能描述:移动文件)
mv -f 1.txt 2.txt可以强制覆盖已存在的,不会弹出提示

cat 显示文件内容
cat [选项] 要查看的文件
选项
-n :显示行号
如需分页查看
请在末尾加上| more(一次性加载全部内容),使用后可以用以下快捷键

  1. Enter 向下n行,需要定义。默认为1行
  2. Ctrl+F 向下滚动一屏
  3. 空格键 向下滚动一屏
  4. Ctrl+B 返回上一屏
  5. = 输出当前行的行号
  6. :f 输出文件名和当前行的行号
  7. V 调用vi编辑器
  8. q 退出more

less 显示内容
根据显示需要加载内容,对于显示大型文件具有较高的效率,比more好
less 要查看的文件
空格:向下翻动一页;
q:退出

>和>> 覆盖或追加文本

  1. ls -l >文件(功能描述:列表的内容写入文件a.txt中(覆盖写))
  2. ls -al >>文件(功能描述:列表的内容追加到文件aa.txt的末尾)
  3. cat 文件1 > 文件2(功能描述:将文件1的内容覆盖到文件2)

echo 输出内容到控制台
echo 内容>> 文件 将echo后的内容追加到文件里
echo $PATH 输出环境变量

tail 用于输出文件中尾部的内容
默认输出尾10行

  1. tail 文件(功能描述:查看文件头10行内容)
  2. tail -n 5 文件(功能描述:查看文件头5行内容,5可以是任意行数)
  3. tail -f 文件(功能描述:实时追踪该文档的所有更新,常用来查看日志)

ln 软链接,存放了链接其他文件的路径
ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)

history 查看已经执行过历史命令,也可以执行历史指令
history 10 //显示最近10条终端执行过的命令
显示后,可以用!5 执行显示第5条的指令

find 在指定目录下查找文件
find [搜索范围] [选项]
find / -name 1.txt
选项
-name 文件名:按照指定的文件名查找模式查找文件
-user 用户名:查找属于指定用户名所有文件
-size 文件大小:按照指定的文件大小查找文件
find /opt -size +20Mfind /opt -size 20Mfind /opt -size -20M

locate 快速定位文件路径
locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。
语法:locate 文件名
特别说明:由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。

| 管道符,将前一个命令的处理结果输出传递给后面的命令处理

grep 查找文件里符合条件的字符串
grep [选项] 查找内容源文件
-n:显示匹配行及行号。
-i:忽略字母大小写
cat 1.txt | grep -n ttt 在1.txt文件里查找ttt并输出显示行号,区分大小写
cat 1.txt | grep -ni ttt 不区分大小写
tar 打包—解压缩
tar -zcvf t.gz 1.txt 2.txt 打包 1.txt,2.txt为t.gz的压缩文件
tar -zxvf t.gz 解压到当前目录
tar -zxvf t.gz -C /opt 解压到指定目录 注意C大写

组管理和权限管理

组管理

-R 如果是目录则使其下所有子文件或目录递归生效

chown 命令用于设置文件所有者和文件关联组的命令
全称change owner
chown 用户名 文件名
chown zs 1.txt 把原来1.txt所有者为root改成zs
chown newowner:newgroup file 改变用户的所有者和所有组
chown -R zs:zs fuck 递归更改fuck目录及所有子目录或文件 用户为zs,组为zs

chgrp 变更文件或目录的所属群组
chgrp 组名 文件名
chgrp zs 1.txt 把原来1.txt所在组root改成zs组

usermod 改变用户所在组
usermod -g 组名 用户名


权限管理

输入命令ll后显示的列表之一如下,它代表的含义是什么呢
在这里插入图片描述

rwx权限详解

rwx作用到文件

  1. [ r ] 代表可读(read): 可以读取,查看
  2. [ w ] 代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
  3. [ x ] 代表可执行(execute):可以被执行

rwx作用到目录

  1. [ r ] 代表可读(read): 可以读取,ls查看目录内容
  2. [ w ] 代表可写(write): 可以修改,目录内创建+删除+重命名目录
  3. [ x ] 代表可执行(execute):可以进入该目录

可用数字表示为: r=4,w=2,x=1 因此rwx=4+2+1=7

修改权限

chmod 修改文件或者目录的权限
第一种方式:+ 、-、= 变更权限
u:所有者g:所有组o:其他人a:所有人(u、g、o的总和)
chmod u=rwx,g=rx,o=x 文件/目录名 给所有者全部权限,所有组读执行或进入权限,其他执行或进入权限
chmod o+w 文件目录名 给其他人添加写权限
chmod a-x 文件目录名 给所有人移除执行或进入权限

第二种方式:通过数字变更权限
r=4 w=2 x=1 rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件目录名 相当于 chmod 751 文件目录名

定时任务

crontab 进行定时任务的设置
crontab [选项]
选项
-e:编辑crontab定时任务
-l:查询crontab任务
-r:删除当前用户所有的crontab任务

设置任务调度文件:/etc/crontab
设置个人任务调度。执行crontab –e命令。
接着输入任务到调度文件如:*/1 * * * * ls –l /etc/ > /tmp/to.txt
意思说每小时的每分钟执行ls –l /etc/ > /tmp/to.txt命令

分区

lsblk 查看所有设备挂载情况

[root@localhost /]# lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda      8:0    0  60G  0 disk 
├─sda1   8:1    0   1G  0 part /boot
├─sda2   8:2    0  30G  0 part /
├─sda3   8:3    0  20G  0 part /data
├─sda4   8:4    0   1K  0 part 
└─sda5   8:5    0   3G  0 part [SWAP]

[root@localhost /]# lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINT
sda                                                      
├─sda1 xfs          40e0595f-f145-4d6b-9748-716bf03c97b4 /boot
├─sda2 xfs          94121cd9-f036-487e-a8c2-1c4d1fcd343a /
├─sda3 xfs          d0525e16-244e-4c70-9ee3-ec3fd67caa47 /data
├─sda4                                                   
└─sda5 swap         13936418-1c12-4b45-9a19-d04c4059a09e [SWAP]

磁盘情况

查询

df -lh (disk free) 查询系统整体磁盘使用情况

du (disk usage)查询指定目录的磁盘占用情况,默认为当前目录
du [选项] /目录
选项
-s指定目录占用大小汇总
-h 带计量单位
-a 含文件
–max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值

工作实用指令

wc (world count)是一个统计文件字词,字节,行数的命令
wc [选项] 文件
选项
-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。注意,这里的字指的是由空格,换行符等分隔的字符串。

[root@localhost apache-maven-3.6.3]# wc -l README.txt 
79 README.txt

统计文件夹下文件的个数 ll | grep "^-" | wc -l
统计文件夹下目录的个数 ll | grep "^d" | wc -l
统计文件夹下文件的个数,包括子文件夹里的 ll -R | grep "^-" | wc -l ll -R=ls -lR
统计文件夹下目录的个数,包括子文件夹里的 ll -R | grep "^d" | wc -l
以树状显示目录结构 tree 目录,不填默认当前

进程管理

显示系统执行的进程 BSD风格

ps 显示当前进程的状态
ps [选项]
-a:显示同一终端下的所有程序
-u :ps -u 以用户的格式显示进程信息;ps -u zs指定用户的所有进程
-x:显示后台进程运行的参数
-aux:显示所有包含其他使用者的行程,显示格式如下

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

  1. USER: 行程拥有者
  2. PID: pid
  3. %CPU: 占用的 CPU 使用率
  4. %MEM: 占用的记忆体使用率
  5. VSZ: 占用的虚拟记忆体大小
  6. RSS: 占用的记忆体大小
  7. TTY: 终端的次要装置号码 (minor device number of tty)
  8. STAT: 该行程的状态:
       D: 无法中断的休眠状态 (通常 IO 的进程)
       R: 正在执行中
       S: 静止状态
       T: 暂停执行
       Z: 不存在但暂时无法消除
       W: 没有足够的记忆体分页可分配
       <: 高优先序的行程
       N: 低优先序的行程
       L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
  9. START: 行程开始时间
  10. TIME: 执行的时间
  11. COMMAND:所执行的指令

过滤进程

ps -aux | grep sshd 显示sshd服务

[root@localhost apache-maven-3.6.3]# ps -aux | grep sshd
root        793  0.0  0.0 112872    32 ?        Ss   09:10   0:00 /usr/sbin/sshd -D
root       2113  0.0  0.0 161480   232 ?        Ss   09:11   0:00 sshd: root@pts/0
root       7582  0.0  0.0 112716   964 pts/0    S+   11:35   0:00 grep --color=auto sshd

全格式显示当前所有的进程 V风格

ps -ef
-e:显示所有进程
-f :全格式

杀死进程

kill 停止进程
kill [选项] 进程号
选项
-9 :表示强迫进程立即停止

killall 进程名称
通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用

查看进程树

可以更加直观的来看进程信息
pstree [选项]
常用选项:
-p :显示进程的PID
-u :显示进程的所属用户

服务管理

service 服务名 status 检查服务状态

chkconfig 查看或给每个服务的各个运行级别设置自启动/关闭
chkconfig 查看所有服务
chkconfig | grep mysql 查看mysql服务
chkconfig --level 5 mysqld off 在运行级别为5的情况下,关闭mysqld服务
chkconfig --level 3 sshd on 在运行级别为3的情况下,开启sshd服务

动态监控进程

top
与ps命令很相似。它们都用来显示正在执行的进程。Top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的的进程。
top [选项]
-d 秒数:指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令:
-i:使top不显示任何闲置或者僵死进程。
-p:通过指定监控进程ID来仅仅监控某个进程的状态。

交互操作说明:
P:以CPU使用率排序,默认就是此项
M:以内存的使用率排序
N:以PID排序
q:退出top

监控网络状态

netstat
netstat [选项]
选项
-an 按一定顺序排列输出
-p 显示哪个进程在调用

netstat -anp | grep sshd 查看sshd网络状态

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      793/sshd            
tcp        0     36 192.168.128.130:22      192.168.128.1:51781     ESTABLISHED 2113/sshd: root@pts 
tcp6       0      0 :::22                   :::*                    LISTEN      793/sshd            
unix  3      [ ]         STREAM     CONNECTED     25221    793/sshd             
unix  2      [ ]         DGRAM                    36829    2113/sshd: root@pts  

RPM 与YUM

rpm

查询

rpm –qa|grep xx 查询已安装的rpm列表
–a选项是查询所有已经安装的软件包。
-q是查询一个包是否安装

一个rpm包名:firefox-45.0.1-1.el6.centos.x86_64.rpm

rpm -q 软件包名:查询软件包是否安装
rpm -qi 软件包名:查询软件包信息

[root@localhost apache-maven-3.6.3]# rpm -q asd
package asd is not installed
[root@localhost apache-maven-3.6.3]# rpm -q python-firewall-0.5.3-5.el7.noarch
python-firewall-0.5.3-5.el7.noarch

[root@localhost apache-maven-3.6.3]# rpm -qi python-firewall-0.5.3-5.el7.noarch
Name        : python-firewall
Version     : 0.5.3
Release     : 5.el7
Architecture: noarch
Install Date: Sun 18 Aug 2019 11:17:36 AM CST
Group       : Unspecified
Size        : 1862472
License     : GPLv2+
Signature   : RSA/SHA256, Mon 12 Nov 2018 11:19:12 PM CST, Key ID 24c6a8a7f4a80eb5
Source RPM  : firewalld-0.5.3-5.el7.src.rpm
Build Date  : Wed 31 Oct 2018 06:47:03 AM CST
Build Host  : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.firewalld.org
Summary     : Python2 bindings for firewalld
Description :
Python2 bindings for firewalld.

卸载

rpm -e RPM包的名称

安装

rpm -ivh RPM包全路径名称
i=install 安装
v=verbose 提示
h=hash 进度条

yum

yum list | grep mysql 查询yum服务器是否有需要安装的软件
yum install mysql++.x86_64 安装指定的yum包

Linux学习笔记是关于学习Linux操作系统的记录和总结。在学习Linux时,你可能会遇到以下几个方面的内容。 首先,Linux是一个面向网络服务的操作系统,因此你可以随意更换桌面系统。Linux有多种不同的桌面系统供你选择。这意味着你可以根据自己的喜好和需求,选择适合自己的桌面环境。 其次,在Ubuntu中,root用户默认是被锁定的,因此你无法直接使用root权限进行操作。但是,你可以使用sudo命令来提升权限,以执行需要root权限的操作。通过sudo命令,普通用户可以在需要时暂时获得root权限,以便进行需要的操作。 此外,如果你需要修改内核为bash,可以使用vim编辑器打开/etc/passwd文件进行修改。在Linux系统中,vim是一种常用的文本编辑器,类似于Windows的记事本。通过编辑/etc/passwd文件,你可以修改用户的登录shell为bash。 总结起来,Linux学习笔记记录了学习Linux操作系统的过程和经验,包括选择适合自己的桌面环境、使用sudo提升权限以及通过vim编辑器修改/etc/passwd文件等。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Linux学习笔记](https://blog.csdn.net/m0_65379736/article/details/125700177)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值