linux入门到精通-第二章-常用命令和工具

目录

  • 概述
  • 命令格式
  • 帮助文档
      • 内建命令
      • 外部命令(--help)
      • 帮助文档查看man
      • 查看谁登陆过电脑
  • 文件目录命令
      • 创建目录
      • 显示目录结构
      • 删除目录
  • 文件相关命令
      • ls命令
      • touch
      • cp
      • rm删除
      • mv移动命令
  • 文件查看命令
      • cat 文件内容查看命令
      • less 查看文件内容
      • head 从文件头部查看
      • tail 从文件尾部查看
  • du和df命令
      • du 查看目录大小
      • df
  • 查找相关命令
      • find
      • grep
  • 管道
  • 压缩包
      • tar 打包归档
      • gzip
      • bzip2压缩
      • zip和unzip
  • 权限管理
    • 文件权限
    • 访问用户分类
      • 1)只允许用户自己访问 (所有者)
      • 2)允许一个预先指定的用户组中的用户访问 (用户组)
      • 3) 允许系统中的任何用户访问 (其他用户)
    • 访问权限说明
    • chmod(授权)
    • chown(用于修改文件所有者)
    • chgrp(用于修改文件所属组)
  • 网络
    • netstat
      • 查看端口状态情况
      • 列出所有端口
  • 软件安装
    • 在线安装
    • 软件包安装
  • 重定向
  • 进程命令
    • kill
  • 其他命令
    • env环境变量
    • tree
    • ln 链接
    • bc命令
    • nc(socket客户端模拟)
      • tcp
      • udp
      • ipc本地套接字
  • 工具
    • valgrind内存泄露排查工具
    • 抓包 tcpdump

概述

命令格式

command[-options ] [parameter1 ] …
说明:

  • command:命令名,相应功能的英文单词或单词的缩写
  • [-options]: 选项,可用来对命令进行控制,也可以省略,[]中括号代表可选。一个横杆后面跟单词缩写,两个横杆后面是跟完整单词
  • parameter1…: 传给命令的参数,可以是零个一个或多个
    linux入门到精通-第二章-常用命令和工具_第1张图片

帮助文档

内建命令

格式:help + 内建命令

help pwd

外部命令(–help)

一般是linux命令自带的帮助,并不是所有命令都有帮助

帮助文档查看man

linux入门到精通-第二章-常用命令和工具_第2张图片

查看谁登陆过电脑

root@sony-HP-Notebook:~# who
root     pts/0        2023-06-05 10:48 (192.168.0.88)
root     pts/1        2023-06-05 10:48 (192.168.0.88)

文件目录命令

创建目录

mkdir dir1
# 一次创建三层目录
mkdir -p /dir1/dir2/dir3
# 在当前目录下创建file1 ,file2 .....100个文件夹
mkdir file(1..100}

显示目录结构

tree dir1

删除目录

mkdir test
rmdir test
## 批量删除
rmdir file(1..100}
mkdir a b c 
rmdir a b c
mkdir a/b
# 删除目录
rmdir a/b

文件相关命令

ls命令

ls常用参数

参数 含义
-a 显示指定目录下所有子目录与文件,包括隐
-l 以列表方式显示文件的详细信息
-h 配合1 以人性化的方式显示文件大小
使用示例:
ls-al # 显示所有文件包括隐藏文件列表
ls -lt # 显示按日期时间排序后的文件列表等价于Is -l -t
ls -lh # 显示计算大小为KB为单位的文件列表
ls -dl # 显示文件夹详细列表

touch

用法: touch [选项]… 文件…

  • 1)如果文件不存在,创建新文件(只能是普通文件,不能是文件夹)
  • 2)如果文件存在,更新文件时间
    示例:
touch file #创建file空文件,如果file存在则更新file的存取和修改时间
touch file{2,3,4} #同时创建file2,file3,file4三个空文件
touch "file{2,3,4}" #创建file{2,3,4}一个空文件

cp

linux入门到精通-第二章-常用命令和工具_第3张图片

示例:

# 把file文件复制到dirs日录下
cp file dirs/
# 把file1 file2文件拷贝到dirs目录下
cp file1 file2 dirs/
# 把文件file1拷贝到file2中,并且提示
cp -i file1 file2
# 把文件file1拷贝到dirs目录下
cp -t dirs file1
# 把dir1目录复制到dir2目录下
cp -r dir1/ dir2/
# 把dir1目录拷贝到dir2目录下
cp -R dir1 dir2
# 把file文件复制到dirs目录下,保留文件的原来属性
cp -a file dirs/
# 强制复制文件夹,不提示
cp -rf dir1/ dir2/
# 把dir1日录复制到dir2目录下,并且显示复制过程
cp -rvf dir1/ dir2/

# 将目录递归拷贝到目录
cp -rp dir1 dir2/

rm删除

linux入门到精通-第二章-常用命令和工具_第4张图片

mv移动命令

文件查看命令

cat 文件内容查看命令

cat 将文件内容一次性输出到终端
linux入门到精通-第二章-常用命令和工具_第5张图片

less 查看文件内容

将文件内容分页显示到终端,可以自由上下浏览
linux入门到精通-第二章-常用命令和工具_第6张图片

head 从文件头部查看

linux入门到精通-第二章-常用命令和工具_第7张图片

tail 从文件尾部查看

linux入门到精通-第二章-常用命令和工具_第8张图片

du和df命令

du 查看目录大小

linux入门到精通-第二章-常用命令和工具_第9张图片

df

df命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况
linux入门到精通-第二章-常用命令和工具_第10张图片

查找相关命令

find

find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。
按文件名查询:使用参数-name
命令: find + 路径 + -name + “文件名“
示例: find /home -name “a.txt”
按文件大小查询:使用参数 -size
命令: find + 路径 + -size + 范围
范围
大于: +表示 – +100k
小于: - 表示 – -100k
等于: 不需要添加符号 – 100k
大小
M 必须大写 (10M)
k 必须小写 (20k)
例子:查询目录为家目录
等于100k的文件: find ~/ -size 100k
大于100k的文件: find ~/ -size +100k
大于50k,小于100k的文件: find ~/ -size +50k -size -100k

按文件类型查询:使用参数 -type
命令: find + 路径 + -type + 类型
类型
普通文件类型用f表示而不是-
d -> 目录
I -> 符号链接
b -> 块设备文件
c -> 字符设备文件
s -> socket文件,网络套接字
p ->管道
查找指定目录下的普通文件: find /home -type f

grep

Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式grep打印包含模式的所有行。
grep一般格式为:
grep [-选项] ‘搜索内容串’ 文件名
在grep命令中输入字符串参数时,最好引号或双引号括起来。例如: grep “a” 1.txt.
linux入门到精通-第二章-常用命令和工具_第11张图片
命令:
搜索目录需要添加参数: -r
查找 /home/itcast 下包含"hello,world"字符串的文件

grep -r "hello,world" /home/itcast

示例:

# 将二进制文件以文本文件的方式搜索hello
grep -a hello /bin/ls
# 在/etc/passwd文件里找hello并目忽略大小写查找
grep -i hello /etc/passwd
# 搜索hello结果并显示在文件里出现的行号
grep -n hello /etc/passwd
# 搜索完全匹配hello单词的行
grep -w hello /etc/passwd
# 显示出在/etc/passwd文件里没有hello的行
grep -v hello /etc/passwd
# 在/etc/目录里所有文件里找hello并显示结果
grep -r hello /etc/
在/etc/passwd文件中找hello并且忽略大小写,然后高亮显示匹配的关键字
grep -i hello /etc/passwd -color=auto 

管道

管道(I): 一个命令的输出可以通过管道做为另一个命令的输入。
管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里“”"的左右分为两端,左端塞东西(写),右端取东西(读)。

cat /etc/passwd | less

压缩包

tar 打包归档

计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据
tar使用格式

tar [选项] 打包文件名 文件

tar命令很特殊,其选项前面可以使用"-",也可以不使用
linux入门到精通-第二章-常用命令和工具_第12张图片

注意:除了f需要放参数的最后,其他参数的顺序任意

# 归档打包
tar -cvf test.tar 1.txt 2.txt 3.txt

# 解归档
tar -xvf test.tar

# 查看归档文件内容
tar -tvf test.tar

## 打包并压缩目录
tar -czvf test.tar.gz /test

## 打包并压缩多个文件
tar -zcvf test.tar.gz 1.txt 2.txt 3.txt

## 解压缩并拆包
tar -xzvf test.tar.gz
# 万能解压
tar -xvf test.tar.gz

## 解压并拆包到制定目录
tar -xzvf test.tar.gz -C /tmp
tar -xzvf test.tar.gz -C /tmp

压缩用法
linux入门到精通-第二章-常用命令和工具_第13张图片
解压用法
linux入门到精通-第二章-常用命令和工具_第14张图片

gzip

tar与gzip命令结合使用实现文件打包、压缩
tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。
gzip使用格式如下:

gzip [选项] 被压缩文件

linux入门到精通-第二章-常用命令和工具_第15张图片

bzip2压缩

  • tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip一样)。
  • tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名一般用xxxx.tar.bz2
  • 在tar命令中增加一个选项(-j)可以调用bzip2实现了一个压缩的功能,实行一个先打包后压缩的过程.
  • 压缩用法: tar -jcvf 压缩包包名 文件…(tar jcvf bk.tar.bz2*.c)
  • 解压用法: tar -jxvf 压缩包包名 (tar jxvf bk.tar.bz2)

linux入门到精通-第二章-常用命令和工具_第16张图片

zip和unzip

通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip
压缩文件: zip -r 目标文件(没有扩展名)源文件
解压文件: unzip -d 解压后目录文件 压缩文件

权限管理

文件权限

文件权限就是文件的访问控制权限,即哪些用户和组群可以访问文件以及可以执行什么样的操作.
Unix/Linux系统是一个典型的多用户系统,不同的用户处于不同的地位,对文件和目录有不同的访问权限。为了保护系统的安全性,Unix/Linux系统除了对用户权限作了严格的界定外,还在用户身份认证、访问控制、传输安全、文件读写权限等方面作了周密的控制。在Unix/Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目

访问用户分类

通过设定权限可以从以下三种访问方式限制访问权限

1)只允许用户自己访问 (所有者)

所有者就是创建文件的用户,用户是所有用户所创建文件的所有者,用户可以允许所在的用户组能访问用户的文件。

2)允许一个预先指定的用户组中的用户访问 (用户组)

用户都组合成用户组,例如,某一类或某一项目中的所有用户都能够被系统管理员归为一个用户组,一个用户能够授予所在用户组的其他成员的文件访问权限。

3) 允许系统中的任何用户访问 (其他用户)

用户也将自己的文件向系统内的所有用户开放,在这种情况下,系统内的所有用户都能够访问用户的目录或文件在这种意义上,系统内的其他所有用户就是 other 用户类

访问权限说明

用户能够控制一个给定的文件或目录的访问程度,一个文件或目录可能有读、写及执行权限

  • 读权限 ( r )
    对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限
  • 写权限 (w)
    对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限
  • 可执行权限 (x)
    对文件而言,具有执行文件的权限:对目录了来说该用户具有进入目录的权限注意: 通常,Unix/Linux系统只允许文件的属主(所有者)或超级用户改变文件的读写权限。

chmod(授权)

chmod 修改文件权限有两种使用格式: 字母法与数字法
字母法: chmod u/g/o/a +/-/= rwx 文件

[ u/g/o/a ] 含义
u user 表示该文件的所有者
g group 表示与该文件的所有者属于同一组( group )者,即用户组
o other 表示其他以外的人
a all 表示这三者皆是
[ ±=] 含义
+ 增加权限
- 撤销权限
= 设定权限
rwx 含义
r read 表示可读取,对于一个目录果没有r权限,那么就意味着不能通过Is查看这个目录内部的内容
w write 表示可写入,对于一个目录如果没有w权限,那么就意味着不能在目录下创建新的文件
x excute 表示可执行,对于一个目录如果没有x权限,那么就意味着不能通过cd进入这个目录

使用

# 给文件file的其他用户增加写权限
chmod o+w file
# 给文件file的拥有者减去读的权限
chmod u-r file
# 设置文件file的所属组织权限为可执行,同时去除读写权限
chmod g=x file

数字法
数字法:“rwx”这些权限也可以用数字来代替

字母 含义
r 读取权限,数字代号为“4"
w 写入权限,数字代号为“2"
x 执行权限,数字代号为“1"
- 不具任何权限,数字t代号为“0""

如执行: chmod u=rwx,g=rx,o=r filename
就等同于: chmod u=7,g=5,o=4 filename(不可以执行)

chmod 751 file

  • 文件所有者:读、写、执行权限
  • 同组用户:读 执行的权限
  • 其他用户:执行的权限

二进制数字转换

rwx 111 --> 7
rw- 110 --> 6
r-- 100 --> 4
-W- 010 --> 2
--x 001 --> 1
r-X 101 --> 5
-wx 011 --> 3

chmod 777 file
给所有用户拥有读、写、执行的权限
chmod 777 test.txt

递归给目录及下所有文件授权(-R)
例如:chmod -R 777 test/

chown(用于修改文件所有者)

使用方法: chown 用户名 文件或目录名

# 将文件所属者修改为root用户
deng@itcast:-/share/test$ sudo chown root txt
[sudo] deng 的密码:
deng@itcast:-/share/test$ ls -l txt
-rw-rw-r-- 1 root deng 0 1010 11:12 txt
# 将文件所属者改为deng 所属组改为root
deng@itcast:-/share/test$ sudo chown deng:root txt
deng@itcast:~/share/test$ ls -l txt
-rw-rw-r-- 1 deng root 0 1010 11:12 txt
# 单独只改文件所属组
sudo chown :root txt

chgrp(用于修改文件所属组)

linux入门到精通-第二章-常用命令和工具_第17张图片

网络

netstat

查看端口状态情况

netstat -anp | grep 8000

列出所有端口

# 显示所有端口的统计信息
netstat- s
# 显示所有TCP端口统计信息
netstat -st
# 显示所有UDP端口统计信息
netstat -su

软件安装

在线安装

命令 含义
sudo apt update 获取最新的软件包的列表
sudo apt install xxx 从源中安装xxx
sudo apt remvte xxx 删除xxx软件
sudo apt clean 清理安装包

软件包安装

在Ubuntu下安装文件为deb格式

# 软件安装
sudo dpkg -i xxx.deb
# 软件卸载
sudo dpkg -r 软件名

重定向

标准输入 代码 0 默认设备为键盘标准输入
标准输出 代码 1 默认设备为屏幕
错误输出 代码 2 默认设备为屏幕

#  标准正确输出重定向到output.txt
ls /etc/passwd > output.txt
# 标准正确输出追加重定向到output.txt
ls /etc/shadow >> output.txt 
# 标准错误输出重定向到error.txt
ls dddddd 2> error.txt
标准错误输出重定向到error.txt,追加的方式
ls ddddd 2>> error.txt
# 标准错误输出重定向到黑洞
ls dddddd 2> /dev/null
# 标准正确输出标准错误输出全都重定向到黑洞
ls ddddd /etc/passwd &> /dev/null 
# 标准正确输出标准错误输出以追加的方式全都重定向到txt
ls ddddd /etc/passwd &>> txt
# 标准输入重定向,file作为cat输入的内容
cat < file

进程命令

kill

查看所有参数 kill -l

kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

# 暂停一个进程
kill -19 1124
# 唤醒一个进程
kill -18 1124

其他命令

env环境变量

可以查看到当前登录用户,当前目录PWD,等信息

env

tree

tree 以树状形式查看指定目录内容,使用该命令需要安装软件 tree

sudo apt install tree

ln 链接

In命令主要用于创建链接文件。Linux链接文件类似于Windows下的快捷方式
链接文件分为软链接和硬链接

  • 软链接:软链接不占用磁盘空间,源文件删除则软链接失效
  • 硬链接:硬链接只能链接普通文件,不能链接目录

使用格式:
硬链接 ln 源文件 链接文件
软连接(符号链接) ln -s 源文件 链接文件

如果没有-s选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,所以-S选项是更常见的形式。
注意:如果软链接文件和源文件不在同一个目录,源文件最好要使用绝对路径不要使用相对路径

示例

root@sony-HP-Notebook:~# ln -s a a_link
root@sony-HP-Notebook:~# ls -l 
总用量 2084
drwxr-xr-x 2 root root    4096 65 15:43  a
lrwxrwxrwx 1 root root       1 65 15:44  a_link -> a

readlink命令读取符号链接文件的内容(存储目标文件的路径)

root@sony-HP-Notebook:~# readlink a_link
a

bc命令

可以执行计算,比如计算2的16次方

root@sony-HP-Notebook:~# bc
bc 1.07.1
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
2^16
65536

nc(socket客户端模拟)

tcp

nc 192.168.0.44 8000

udp

nc -u 192.168.0.44 8000

ipc本地套接字

nc -U sock.s

工具

valgrind内存泄露排查工具

valgrind ./a.out

如下显示exit: 0 bytes in 0 blocks表明没有泄露

696830== 
==696830== Process terminating with default action of signal 2 (SIGINT)
==696830==    at 0x4872467: accept (accept.c:26)
==696830==    by 0x109640: main (in /usr/local/cpp_demo/net/socket/a.out)
==696830== 
==696830== HEAP SUMMARY:
==696830==     in use at exit: 0 bytes in 0 blocks
==696830==   total heap usage: 2 allocs, 2 frees, 1,496 bytes allocated
==696830== 
==696830== All heap blocks were freed -- no leaks are possible
==696830== 
==696830== For lists of detected and suppressed errors, rerun with: -s
==696830== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

抓包 tcpdump

安装:如何在CentOS中配置Tcpdump网络抓包工具?

tcpdump -i eth0 port 15692 -w /tmp/tcpdump.pcap

再使用wireshark打开

你可能感兴趣的:(linux,linux,服务器,运维)