化身天使的博客

linux系统命令

1. 文件与目录管理

1.1 目录管理

1.1.1 创建

mkdir 目录名

  •  

1.2 文件管理

1.2.1 创建

vim  name

touch  name

1.2.2 写入

vim name              #打开文件编辑

echo “内容”  >> name    #追加到文件末尾, 新起一行

echo “内容”  > name    #覆盖写入到文件

 

1.2.3 文件内容合并

paste  f1  f2        #按列合并,以tab作为分隔符,

paste  -d  ‘,’  f1 f2  #以逗号作为分隔符

cat   f1  f2        #按行合并

 

1.2.4  文件内容删除

cp /dev/null  f1   #清空内容,cat /dev/null  > f1

tr -s  '\n'   f1    #删除空行

tr -d  ‘0-9’   f1    #删除所有数字

 

 

1.3 查看

1.3.1 文件详情

ls      #只看文件名

ls -a    #查看全部文件(包含隐藏文件)

ll       #查看文件详情,或ls -l

ll   -t    #查看文件详情按时间排序,-r

file  f1   #查看文件类型

1.3.2 文件大小

ls -lh   #查看文件详情及大小

ls -lhS  #查看文件详情,并按大小排序

du  -sh  f1    #查看指定目录或文件的大小

du  -m  f1     #以M为单位

du  -am   f1    #递归遍历目录

du  -d  2     #遍历目录深度2

 

1.3.3 文件内容

cat  name         #显示文件全部内容

cat  f1  f2       #查看(拼接)两个文件

cat  -n  f1       #查看文件,并显示行号

cat  -b  f1      #跳过空白行

cat  -s  f1      #空行只显示一次

 

head name         #查看前10行

head -n 20  name  #查看前20行

head -n -20 name   #查看整个文件,除了后20行

 

tail name          #查看前10行

tail -n 20  name    #查看后20行

tail -n +21 name     #查看整个文件,除了前21行

tail  -f  name     #实时输出文件末尾的10行内容

 

less name          #分屏查看文件内容,q退出,vim命令可用

 

 

  •  

 

2. 查询

通配符

*     #任意0到多个

?     #任意一个

[0-9]   #其中一个[ab]

{ab,cd}  #其中一组

2.1 查找实例

2.1.1 查找大文件

#查看当前目录下最大的前10个文件, 单位M, 递归两层, 路径缺省为当前目录

du -hm .  --max-depth=2 | sort -nr | head -10     

 

#查找大于100M的文件

find / -type f -size +100M |xargs du -shm  2>/dev/null

 

#查找已删除文件占用

lsof  -L1      

lsof |grep delete

2.1.2 查找可执行文件

which   curl     #查看可执行文件位置

whereis  curl   #查找应用程序位置

type  curl      #跟上面的差不多

 

  •  

2.2 文件名查找

locate

locate  abc.py   #从根目录查找abc.py,模糊匹配    

find

find 路径 [选项] [要查找的内容]

默认递归

部分情况文件名要加引号

2.2.1 基础查询

以下选项均可组合

find  .  -name  a*        #按名称查找,当前路径下,a开头的文件

find .  -type f           #按类型查找,f文件,d目录

find .  -perm  644        #按权限查找,644

find . -size +10M  -size  -120M  #按大小查找,大于10m,小于100m的

find .  -user 用户名或id   #按用户查找,根据用户名或者用户id    

find  .  -iname  a*       #按名称查找忽略大小写

find  . !  -name  a*       #取反,按名称查找,不以a开头的文件

find  .  -prune f1    #排除指定的目录或文件

find . -maxdepth 1   #最大深度1,此处为当前目录

find . -mindepth 1   #最小深度1,此处为当前目录和1级子目录

find .  -type f  -print0  #每个文件名后添加空字符

find / -name update*  2> /dev/null  #过滤没有权限的错误

#查找名字以log结尾,大于200M, 小于1200M的文件

find . -name "*.log"   -size +200M   -size -1200M 

2.2.2 多条件与正则查找

多个条件

find . \( -name *.txt  -or  -type  f  \)  -and -size +1M

                 -and

                  !  

正则查找

find .  regex  ‘正则表达式’

find .  -iregex      #忽略大小写正则

2.2.3 对每一条查询结果执行命令

方式一:

find . -name "*.log" -size +200M -exec   ls -lh  {}  \;   

find . -name "*.log" -size +200M -exec   ls -lh  {}  +

#{}代表参数, \;对分号转义,表明ls命令的结束,而非find命令结束

方式二:    

find   |xargs  du -shm  

#默认find的查询结果(参数)放在语句最后,

2.2.4 按时间查询

以天为单位

-atime  7    #最近访问时间,正好在之前的第7天

-mtime  -7     #最近修改时间,7天内

-ctime   +7    #最近权限变更时间,超过7天

 

以分钟为单位-amin  -mmin  -cmin

 

 

  •  

2.3 内容查找

grep 参数 要查找的内容 路径

grep  -r  --include=*.py  .  #当前路径下递归查找

grep默认模糊匹配, 精确匹配用-w参数

2.3.1 内容查找grep

grep  abc  *.log       #查找当前目录下,所有包含abc的文件log文件

grep  -n             #查找内容加行号

grep  -r              #递归

grep  -R              #递归

grep  -w             #精确查找, 缺省模糊匹配

grep  -B  3         #显示查找到的内容之前3行的数据

grep  -A  3         #显示查找到的内容之后3行的数据

grep  -C  3         #显示查找到的内容前后各3行的数据

grep  -l     #显示匹配的文件

grep  -L     #显示不匹配的文件

grep  --include=*.py       #包含指定文件

grep  --exclude=*.log       #不包含log文件

grep  --exclude=*.{log, out}       #不包含log和out文件

grep  --exclude-dir=f1    #不包含指定目录

 

 

grep -r  "mai" .   *.{c,cpp}  #从当前目录递归搜索c,cpp结尾的包含mai的文件

 

注:其他用法见2.5结果过滤

2.3.2 重复项查找

uniq file              #不排序, 直接查看,

sort file | uniq         #重复项只显示一次

sort file | uniq  -c      #重复项只显示一次, 并显示重复次数

sort file | uniq  -u      #重复项一次都不显示

sort file | uniq  -d      #只查看重复项

sort file | uniq  -cd      #只查看重复项, 及重复次数

 

  •  

 

 

 

2.4 对结果排序

可对文件/目录/查询结果进行排序

 

sort  f1  #对文件内容排序

sort  -n  #按数值排序

sort  -r  #逆序

 

 

2.5 结果中过滤

grep  ‘^[a]’   #可直接使用基础正则

egrep  ‘’     #可使用全部正则

grep  -e 模式一 -e 模式二  #多条件查找

grep  --color=auto   #显示颜色

 

grep  -v     #取反,不显示指定项

grep  -n     #行号

grep  -c     #匹配到的行数

grep  -o     #只输出匹配到的文本

grep  -i     #忽略大小写

 

 

 

 

2.6 对结果执行命令

|xargs  du  -sh      #对每条输出执行 du  -sh,上一条命令的输出放在最后

|xargs  -l  {}   #上一条命令的输出传入参数{},可把参数放在命令中间执行

|xargs  -l  {}  service {} start  #对每条输出执行service  start命令

|xargs  -0     #以空字符作为分隔,默认是空格,常用于find查找到的文件含空格情况

 

3. 终端使用

3.1 历史命令

ctrl  r        #快捷键,搜索执行过的命令,向上查找

ctrl  s        #搜索框里向下查找

ctrl  g        #退出命令搜索

 

vim  !$      #使用上一条命令的最后一个参数

history  9    #查看最近的9条命令

!7           #执行编号为7的命令

!cat         #运行上一条cat开头的命令

3.2 多条命令

ctrl z       #当前进程放在后台

;     #逐条执行

&&   #前面的命令执行成功再执行后面的

||    #前面的命令执行不成功才执行后面的命令

$()    #把命令的执行结果作为参数

 

3.3 后台执行

nohup  命令   &

3.4 输出

  • /dev/null         #丢弃正确输出
  • /dev/null         #丢弃错误输出

&>  /dev/null         #全部丢弃

 

 

4. 进程与服务

4.1 进程

ps -ef      # 查看所有进程

top        # 实时显示进程状态

pgrep firefox              #查找指定进程

ps -ef |grep [f]irefox      #查看指定进程,首字母用方括号,能避免显示grep本身

ps -ef  e              #查看进程及环境变量

ps -ef   f             #查看进程树

ps -ef  --sort  -pid,+stat  #进程排序,pid降序,stat升序

  -L                 #查看线程

strace -p pid    #跟踪进程执行情况, 查看进程是否被锁等

kill pid         #结束进程, -15

kill -2 pid

kill -1 pid

kill -3 pid

kill -9 pid

4.2 服务

systemctl start vsftpd        #启动指定服务, 

 

service vsftpd start          #启动服务,旧版

 

chkconfig --list # 列出所有系统服务

 

chkconfig --list | grep on # 列出所有启动的系统服务

 

setup #启动项管理

 

 

 

  •  

5. 磁盘与文件系统

5.1 文件系统

df -h            # 查看各分区使用情况

5.2 磁盘

lsblk #查看树形硬盘表

 

cat /etc/mtab

 

cat /proc/partitions # 查看分区

 

ls /dev/oracleasm/disks

 

 

fdisk -l # 查看所有分区

 

swapon -s # 查看所有交换分区

 

hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)

 

dmesg | grep IDE # 查看启动时IDE设备检测状况

5.3 挂载

5.3.1 命令

mount | column -t   #查看挂接的分区状态

mount  /dev/sda1  /mnt/1   #设备sda1挂载到/mnt/1目录

umount   /mnt/1            #取消挂载

 

可选参数

-o  ro   只读

-o  rw   读写

-o  loop   挂载文件

-o  iocharset  指定字符集

 

-t 指定文件系统类型,缺省自动识别

光盘或光盘镜像:iso9660

DOS fat16文件系统:msdos

Windows 9x fat32文件系统:vfat

Windows NT ntfs文件系统:ntfs

Mount Windows文件网络共享:smbfs

UNIX(LINUX) 文件网络共享:nfs

 

 

 

5.3.2 配置文件

vim /etc/fstab

6. 用户管理

w # 查看活动用户

 

id <用户名> # 查看指定用户信息

 

finger # 用户详细信息

 

last # 查看用户登录日志

 

cut -d: -f1 /etc/passwd # 查看系统所有用户

 

cut -d: -f1 /etc/group # 查看系统所有组

 

crontab -l # 查看当前用户的计划任务

passwd -l username //禁止登陆

 

7. 网络

7.1 命令

ifconfig  # 查看所有网络接口的属性

ip addr  #新版命令

 

route -n # 查看路由表

 

netstat -lntp # 查看所有监听端口

 

netstat -antp # 查看所有已经建立的连接

 

netstat -s  # 查看网络统计信息

hostname  #查看主机名

 

7.2 ping指定端口

host 主机或域名

nmap  -p 443 host      #nmap

nc    host  443       #netcat

telnet  host  443      #Telnet

curl   host:443        #curl

7.3 配置文件

vi /etc/sysconfig/network-scripts/ifcfg-eth0

 

vi /etc/sysconfig/network

 

vi /etc/hosts

 

7.4 防火墙

iptables -L # 查看防火墙设置

 

7.5 ssh

  • 配置
  • 命令

7.5.3 端口转发

  • 本地端口转发

中转主机需要开启ssh服务,

ssh  -L  2000:localhost:3000  username@中转主机ip

#访问本机2000端口, 将经过中转主机转发到中转主机的3000端口

 

ssh  -L  2000:目标主机ip:4000  username@中转主机ip

#访问本机2000端口, 将经过中转主机转发到目标主机的4000端口

 

  • 远程端口转发

ssh  -R  2000:localhost:3000  username@中转主机ip

      中转主机:目标主机(本机)   

#访问中转主机的2000端口, 将转发到本机的3000

ssh  -R  2000:192.168.1.3:3000  username@中转主机ip

      中转主机:目标主机(本机能访问到的主机)  

#访问中转主机的2000端口, 将转发到本局域网内192.168.1.3的3000端口

 

  • 动态端口转发

ssh  -D  localhost:2000  username@中转主机ip

           本机          远程

不指定远程端口, 本机经过2000端口的数据, 都会到达中转主机.比较适用于目标主机开了多个端口, 且需要访问多个端口的情况

 

  •  
  •  

 

8. 压缩与归档

8.1 tar

tar  

v  详情

f  文件名(放在参数的最后)

c   创建  

x   解包  

t   查看包里的内容

z   Gzip  

j   Bzip2  

 

8.1.1 归档

tar  -cvf test.tar  f1  f2  #打包文件f1,f2为test.tar

tar  -zcvf test.tgz  f1  f2  #打包文件为gzip压缩文件

tar  -jcvf test.tbz  f1/     #打包目录为bzip2压缩文件

 

8.1.2 解包

tar  -xvf test.tar         #解包文件test.tar

tar  -xvf test.tar         #解包文件test.tar

tar  -jtvf  test.tbz2    #查看bz2文件里的内容

tar  -jxvf  test.tar.bz2   #解压并解包bz2文件

tar  -zxvf  test.tar.gz   #解压并解包gzip文件

 

 

 

8.2 zip

8.2.1 解压

unzip  -l  file     #查看压缩包内容

unzip  -t file.zip   #测试压缩文件

unzip  file         #解压文件

unzip -v  file        #解压并显示详情

 

8.2.2 压缩

zip 压缩后的文件名.zip  要压缩的文件/文件夹/多个文件

zip  file.zip  file       #压缩文件

zip  -r  file.zip  f1 f2  #递归压缩子目录

zip  -9  file.zip  f1/   #指定压缩级别9(最高最慢),0最低(相当于tar),缺省6

zip feil.zip  .  -i  \*.txt  #只压缩当前目录的txt文件

zip  -e  file.zip  f1    #压缩并创建密码

 

9. 系统设置

9.1 系统信息查看

uname -a   #查看内核/操作系统/CPU信息

uname -r   #查看当前使用的内核

 

cat /etc/issue      # 查看操作系统版本cat /etc/centos-release

 

cat /proc/cpuinfo   # 查看CPU信息

 

hostname # 查看计算机名

 

lspci -tv # 列出所有PCI设备

 

lsusb -tv # 列出所有USB设备

 

lsmod # 列出加载的内核模块

 

env                          # 查看环境变量

 

9.2 系统状态查看

free -h          # 查看内存使用量和交换区使用量

 

 

grep MemTotal /proc/meminfo # 查看内存总量

 

grep MemFree /proc/meminfo # 查看空闲内存量

 

vmstat

uptime          # 查看系统运行时间、用户数、负载

 

cat /proc/loadavg # 查看系统负载

 

9.3 包管理

9.3.1 包管理命令

rpm -qa # 查看所有安装的软件包,红帽

安装

yum install python  #红帽

apt install python   #ubuntu

 

9.3.2 软件源配置

9.3.3 源码安装

./confiure  --prefix=/usr/local/bin   #自定义安装位置

make && make install

 

 

9.4 设置授时服务器

/usr/sbin/ntpdate -s 授时服务器   

 

posted @ 2021-09-01 17:37  化身天使  阅读(75)  评论(0)    收藏  举报