Linux 命令基础

前言

考研结束,基础知识也该补起来,视情况可能会把整理的东西放上来。大多数可能都只是摘抄整理,当笔记的东西,不喜勿喷。

1 基础知识

1.1 各版本

在这里插入图片描述

1.2 系统启动过程

  • https://www.runoob.com/linux/linux-system-boot.html

内核的引导 -> 运行 init -> 系统初始化 -> 建立终端 -> 用户登录系统

1.3 Linux树状目录机构

https://www.runoob.com/linux/linux-system-contents.html

在这里插入图片描述

  • /boot:启动Linux时使用的一些核心文件
  • /dev: 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的
  • /proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
  • /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序

1.4 Linux 忘记密码解决方法

https://www.runoob.com/linux/linux-forget-password.html

简便方法,重启,进入单用户模式修改密码

1.5 文件基本属性

https://www.runoob.com/linux/linux-file-attr-permission.html

在这里插入图片描述

在这里插入图片描述
权限 链接数 所有者 用户组 大小 时间 文件名

2 更改文件属性

2.1 chgrp:更改文件属组

语法:

chgrp [-R] 属组名 文件名

参数选项:

  • -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改

2.2 chown:更改文件属主,也可以同时更改文件属组

语法:

chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

2.3 chmod:更改文件9个属性

Linux文件属性有两种设置方法,一种是数字,一种是符号

r:4 w:2 x:1

3 处理目录的常用命令

  • ls: 列出目录
  • cd:切换目录
  • pwd:显示目前的目录
  • mkdir:创建一个新的目录
  • rmdir:删除一个空的目录
  • cp: 复制文件或目录
  • rm: 移除文件或目录
  • mv: 移动文件与目录,或修改文件与目录的名称

4 文件内容查看

  • cat 由第一行开始显示文件内容
  • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写!
  • nl 显示的时候,顺道输出行号!
  • more 一页一页的显示文件内容
  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
  • head 只看头几行
  • tail 只看尾巴几行

4.1 more

[root@www ~]# more /etc/man_db.config 
#
# Generated automatically from man.conf.in by the
# configure script.
#
# man.conf from man-1.6d
....(中间省略)....
--More--(28%)  <== 重点在这一行喔!你的光标也会在这里等待你的命令
  • 空白键 (space):代表向下翻一页;
  • Enter :代表向下翻『一行』;
  • /字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
  • :f :立刻显示出档名以及目前显示的行数;
  • q :代表立刻离开 more ,不再显示该文件内容。
  • b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。

5 用户和用户组管理

https://www.runoob.com/linux/linux-user-manage.html

5.1 /etc/passwd

# cat /etc/passwd

root:x:0:0:Superuser:/:
daemon:x:1:1:System daemons:/etc:
bin:x:2:2:Owner of system commands:/bin:
sys:x:3:3:Owner of system files:/usr/sys:
adm:x:4:4:System accounting:/usr/adm:
uucp:x:5:5:UUCP administrator:/usr/lib/uucp:
auth:x:7:21:Authentication administrator:/tcb/files/auth:
cron:x:9:16:Cron daemon:/usr/spool/cron:
listen:x:37:4:Network daemon:/usr/net/nls:
lp:x:71:18:Printer administrator:/usr/spool/lp:
sam:x:200:50:Sam san:/home/sam:/bin/sh

格式:

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
  • 用户标识号:通常用户标识号的取值范围是0~65 535。0是超级用户root的标识号,1~99由系统保留,作为管理账号,普通用户的标识号从100开始。在Linux系统中,这个界限是500
  • 组标识号:它对应着/etc/group文件中的一条记录

5.2 /etc/shadow

# cat /etc/shadow

root:Dnakfw28zf38w:8764:0:168:7:::
daemon:*::0:0::::
bin:*::0:0::::
sys:*::0:0::::
adm:*::0:0::::
uucp:*::0:0::::
nuucp:*::0:0::::
auth:*::0:0::::
cron:*::0:0::::
listen:*::0:0::::
lp:*::0:0::::
sam:EkdiSECLWPdSa:9740:0:0::::

格式:

登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

5.3 /etc/group

root::0:root
bin::2:root,bin
sys::3:root,uucp
adm::4:root,adm
daemon::5:root,daemon
lp::7:root,lp
users::20:root,sam

格式:

组名:口令:组标识号:组内用户列表

6 磁盘管理

  • df:列出文件系统的整体磁盘使用量
  • du:检查磁盘空间使用量
  • fdisk:用于磁盘分区

6.1 df

格式:

df [-ahikHTm] [目录或文件名]

选项与参数:

  • -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统
  • -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示

6.2 du

与df命令不同的是Linuxdu命令是对文件和目录磁盘使用的空间的查看

语法:

du [-ahskm] 文件或目录名称

选项与参数:

  • -s :列出总量而已,而不列出每个各别的目录占用容量

7 vi/vim

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。

7.1 搜索替换

在这里插入图片描述

7.2 删除、复制

  • gg:是让光标移到首行,在vim才有效,vi中无效
  • yG:复制游标所在行到最后一行的所有数据
  • dG:删除光标所在到最后一行的所有数据
  • dd:删除游标所在的那一整行(常用)

史上最全Vim快捷键键位图:https://www.runoob.com/w3cnote/all-vim-cheatsheat.html

7.3 底线命令模式常用命令

  • :set nu 显示行号,设定之后,会在每一行的前缀显示该行的行号

8 apt

apt-cache search # ------(package 搜索包)
apt-cache show #------(package 获取包的相关信息,如说明、大小、版本等)
apt-get install # ------(package 安装包)
apt-get install # -----(package --reinstall 重新安装包)
apt-get -f install # -----(强制安装, "-f = --fix-missing"当是修复安装吧...)
apt-get remove #-----(package 删除包)
apt-get remove --purge # ------(package 删除包,包括删除配置文件等)
apt-get autoremove --purge # ----(package 删除包及其依赖的软件包+配置文件等(只对6.10有效,强烈推荐))
apt-get update #------更新源
apt-get upgrade #------更新已安装的包
apt-get dist-upgrade # ---------升级系统
apt-get dselect-upgrade #------使用 dselect 升级
apt-cache depends #-------(package 了解使用依赖)
apt-cache rdepends # ------(package 了解某个具体的依赖,当是查看该包被哪些包依赖吧...)
apt-get build-dep # ------(package 安装相关的编译环境)
apt-get source #------(package 下载该包的源代码)
apt-get clean && apt-get autoclean # --------清理下载文件的存档 && 只清理过时的包
apt-get check #-------检查是否有损坏的依赖
dpkg -S filename -----查找filename属于哪个软件包
apt-file search filename -----查找filename属于哪个软件包
apt-file list packagename -----列出软件包的内容
apt-file update --更新apt-file的数据库

9 查找文件

  • which 查看可执行文件的位置。
  • whereis 查看文件的位置。
  • locate 配合数据库查看文件位置。
  • find 实际搜寻硬盘查询文件名称。

9.1 which

root@vultr:~# which whoami
/usr/bin/whoami

9.2 whereis

whereis 及 locate 都是基于系统内建的数据库进行搜索,因此效率很高,而find则是遍历硬盘查找文件

常用参数:

  • -b 定位可执行文件。
  • -m 定位帮助文件。
  • -s 定位源代码文件。
  • -u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。

9.3 locate

常用参数:

  • -l num(要显示的行数)
  • -f 将特定的档案系统排除在外,如将proc排除在外
  • -r 使用正则运算式做为寻找条件

查找 /var 目录下,以 reason 结尾的文件:

locate -r '^/var.*reason$'(其中.表示一个字符,*表示任务多个;.*表示任意多个字符)

9.4 find

语法:

find pathname -options [-print -exec -ok ...]

命令参数:

  • pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
  • -print: find命令将匹配的文件输出到标准输出。
  • -exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ { } ;,注意{ }和\;之间的空格。
  • -ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

命令选项:

  • -name 按照文件名查找文件
  • -newer 如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项
  1. 查找 48 小时内修改过的文件
find -atime -2
  1. 在当前目录查找 以 .log 结尾的文件。 . 代表当前目录
find ./ -name '*.log'

10 crontab 定时任务

https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html

https://www.cnblogs.com/peida/archive/2013/01/08/2850483.html

语法:

crontab [ -u user ] file
或
crontab [ -u user ] { -l | -r | -e }

参数选项:

  • -e : 执行文字编辑器来设定时程表
  • -l : 列出目前的时程表
  • -r : 删除目前的时程表

10.1 crontab文件格式

crontab执行时间计算:https://tool.lu/crontab/

在这里插入图片描述

11 tar命令

tar 本身不具有压缩功能,只具有打包功能,有关压缩及解压是调用其它的功能来完成。

打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件

常用参数:

  • -c 建立新的压缩文件
  • -f 指定压缩文件
  • -r 添加文件到已经压缩文件包中
  • -u 添加改了和现有的文件到压缩包中
  • -x 从压缩包中抽取文件
  • -t 显示压缩文件中的内容
  • -z 支持gzip压缩
  • -j 支持bzip2压缩
  • -Z 支持compress解压文件
  • -v 显示操作过程
  1. 将 /etc 下的所有文件及目录打包到指定目录,并使用 gz 压缩
tar -zcvf /tmp/etc.tar.gz /etc
  1. 查看刚打包的文件内容(一定加z,因为是使用 gzip 压缩的)
tar -ztvf /tmp/etc.tar.gz
  1. 解压文件
tar -zxvf /tmp/etc.tar.gz

12 ln命令

链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。

软链接:

  • 1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
  • 2.软链接可以 跨文件系统 ,硬链接不可以
  • 3.软链接可以对一个不存在的文件名进行链接
  • 4.软链接可以对目录进行链接

硬链接:

  • 1.硬链接,以文件副本的形式存在。但不占用实际空间。
  • 2.不允许给目录创建硬链接
  • 3.硬链接只有在同一个文件系统中才能创建

语法:

ln [参数][源文件或目录][目标文件或目录]

参数:

  • -s 软链接(符号链接)
  • -n 把符号链接视为一般目录
  • -i 交互模式,文件存在则提示用户是否覆盖
  • -f 强制执行
  1. 给文件创建软链接,为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效:
ln -s log2013.log link2013

输出:

[root@localhost test]# ll
-rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log
[root@localhost test]# ln -s log2013.log link2013
[root@localhost test]# ll
lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log
-rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log
  1. 给文件创建硬链接,为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同
ln log2013.log ln2013

输出:

[root@localhost test]# ll
lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log
-rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log
[root@localhost test]# ln log2013.log ln2013
[root@localhost test]# ll
lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log
-rw-r--r-- 2 root bin      61 11-13 06:03 ln2013
-rw-r--r-- 2 root bin      61 11-13 06:03 log2013.log

13 grep

正则表达式元字符:https://www.runoob.com/regexp/regexp-metachar.html

语法:

grep [option] pattern file|dir

参数:

  • -i 忽略大小写
  • -l 只列出文件内容符合指定的样式的文件名称
  • -R 递归查找文件夹
  • -c --count 计算符合样式的列数
  1. 查找指定进程个数
ps -ef | grep svn -c
  1. 从文件中读取关键词
cat test1.txt | grep -f key.log
  1. 从文件夹中递归查找以grep开头的行,并只列出文件
grep -lR '^grep' /tmp

14 wc

统计指定的文件中字节数、字数、行数,并将统计结果输出

语法:

wc [option] file..

参数:

-c 统计字节数
-l 统计行数
-m 统计字符数
-w 统计词数,一个字被定义为由空白、跳格或换行字符分隔的字符串

15 ps

用来查看当前运行的进程状态,一次性查看,如果需要动态连续结果使用 top

ps 工具标识进程的5种状态码:

D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process

参数:

-A 显示所有进程
-a 显示同一终端下所有进程
a 显示所有终端下所有进程
-aux 显示所有包含其他使用者的行程(较详细信息)
c 显示进程真实名称
f 显示进程间的关系

16 kill

发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如果任无法终止该程序可用"-KILL" 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。

先使用ps查找进程pro1,然后用kill杀掉

kill -9 $(ps -ef | grep pro1)

17 netstat

语法:

netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

参数:

-a或--all 显示所有连线中的Socket。
-A<网络类型>或--<网络类型> 列出该网络类型连线中的相关地址。
-t或--tcp 显示TCP传输协议的连线状况。
-u或--udp 显示UDP传输协议的连线状况。
-n或--numeric 直接使用IP地址,而不通过域名服务器。
-l或--listening 显示监控中的服务器的Socket。
-p或--programs 显示正在使用Socket的程序识别码和程序名称。
  1. 查看服务及监听端口
netstat -nlp

18 free

显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。

参数:

-b 以Byte显示内存使用情况
-k 以kb为单位显示内存使用情况
-m 以mb为单位显示内存使用情况
-g 以gb为单位显示内存使用情况
-s<间隔秒数> 持续显示内存
-t 显示内存使用总合

参考链接

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值