【Linux系统中的命令】

目录

1.终端相关&用户

2.手册的使用

3.搜索

4.系统相关操作

5.系统调用相关

6.进程管理相关

7.文件系统相关 

9.内存管理相关

10.设备驱动相关

11.网络相关 

12.vi&vim

13.gcc&gdb

14.awk,sed,grep 

15.链接


1.终端相关&用户

shift + pageup   终端向上翻页
shift + pagedown 终端向下翻页
ctrl+ l          清屏
clear            清屏
echo $PATH       查看某个变量的值
echo $?          查看上个程序的退出值是怎样的,查看上个程序是怎样退出的
date             查看当前时间


useradd xxx       添加xxx这个用户(root权限)
passwd  xxx       修改xxx用户的权限

2.手册的使用

man man 查看手册的使用
              区段1:用户指令(Executable programs or shell command)
              区段2:系统调用(functions provided by the kernel)
              区段3:程序库调用(function within program libraries)
              区段4:设备(in /dev)
              区段5:文件格式
              区段6:游戏
              区段7:杂项(说了一些机制)
              区段8:系统指令
              区段9:内核内部指令
              区段n:Tcl或Tk指令
man 1 mkfifo  查看的是命令行中mkfifo的使用方法
man 3 mkfifo  查看的程序库中mkfifo函数的使用方法
man 7 signal  查看的是signal的一些机制
man 7 socket  查看的是socket的一些机制(官方教学)
man 1 printf  查看的是命令行中printf的使用方法
man 3 printf  查看的程序库中printf函数的使用方法
man -k pthread 查看线程相关接口

3.搜索

alias  查看命令的别名(可以在home目录下的隐藏文件.bashrc中看到一些默认设置,对于新手可以将rm的别名设置成rm -i询问一下是否要真的删除)
which alias 查看alias命令在哪里
find . -name "*h" | xargs grep "off_t"  查看当前目录及子目录下包含有off_t字段的以h结尾的文件并显示相关内容
find / -name debugfs       在根目录及子目录下找debugfs文件在哪
find . -name CMakeLists.txt 在当前目录及子目录下找名字为CMakeLists.txt的文件,注意不要加双引号

4.系统相关操作

shutdown -h 1     1分钟后关机,不同版本上的使用有些许区别(root权限)
poweroff          断电,关机(root权限)
reboot            重启系统(root权限)
uname -a          内核版本查看,显示 -m、 -n、 -r、 -s 和 -v 标志指定的所有信息
                  -m 显示硬件运行系统的机器 ID 号
                  -n 显示节点名称。可能是用以标识系统且为 UUCP 通信网络所知的名称
                  -s 显示系统名。标志缺省为开
                  -v 显示操作系统版本
uname -r          显示发行版号
lsb_release -a    查看发行版本信息
free -m           查看空闲内存
free -g
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 查看物理CPU个数
cat /proc/cpuinfo| grep "cpu cores"| uniq                查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "processor"| wc -l               查看逻辑CPU的个数
lscpu                       查看系统的CPU信息
nproc                       查看系统中有几个核心
cat /proc/interrupts        查看当前系统的中断 
top                         查看cpu使用情况
htop                        查看cpu使用情况
cat /proc/1/maps            查看一号进程的线性地址映射

5.系统调用相关

strace pwd      显示出pwd命令执行过程中所调用到的各个系统调用
strace exename  查看程序exename运行时所产生的各个系统调用
dmesg           查看内核日志信息,刚刚开机时可查看开机时内核有关信息
grep -E -iw "emerg|alert|critical|error" /var/log/messages   查看出现的重大的错误


/var/log/message 内核消息及各种应用程序的公共日志信息,包括启动、I/O错误、 网络错误

6.进程管理相关

ps -ef | grep nginx | grep -v grep  查看除了grep以为正在运行有关nginx的进程
ll /proc/62528                      列出PID为62528的进程相关的信息
ll /proc/62528 | grep exe           找出进程号为62528的进程的应用程序
man -k pthread                      查看线程相关接口
kill -l                             查看所有的信号
trap -lp                            查看所有的信号
ps -eLf                             按照线程位最小单位去看当前的程序的运行情况
ps -Lf pid                          根据pid去查看进程的线程分布运行情况
ps -Lw pid                          查看进程号为pid的进程有几个线程
lsof -p pid                         可以查看与进程相关的所有文件

7.文件系统相关 

tree             显示文件目录
umask            指定用户创建文件时的掩码,其中的mode和chmod的命令中的格式是一样的,如果不用mode参数,则显示当前的umask设置,如果用-S参数,则以符号形式显示设置
umask -S         以符号形式显示设置(例如:u=rwx,g=rwx,o=rx)
umask 0          将掩码设置成0
umask            显示掩码,一般默认是0002(第一个零表示八进制,后面三个分别表示文件所有者,群组用户,其他用户)
touch file.txt   创建一个file.txt的文件,默认权限是0666,掩码是002,显示的值0664,664=(666&(~002)),002取反是775.
 110 110 110(666)
 111 111 101(775)
 110 110 100(664)
显示的权限 = mode &(~umask)
zip -q -r TARS.zip TARS/   递归且沉默(不显示执行过程)地压缩TARS路径下的文件
wc -l *   统计某个路径下的所有文件的行数



df -i               查看每个硬盘分区的inode总数和已经使用的数量
ls --all            查看当前目录下所有文件
ls -a               查看当前目录下所有文件
ls -i               显示当前目录下的文件及其Inode编号
ls -l               显示出文件的username和groupname
ls -n               显示出文件的userid和groupid(/etc/passwd,/etc/group)
ls -l --block-size=g   显示出文件的size(以g为单位)
ls -l --block-size=m   显示出文件的size(以m为单位)
ls -l --block-size=k   显示出文件的size(以k为单位)
touch -- -a         当前路径下创建一个-a的文件(--表示当前选项结束,后面的都是非选项的传参)
touch ./-b          当前目录下创建一个-b的文件
df -h               查看系统目前磁盘空间使用情况(任何路径都可执行)
du -sh              统计当前目录所占磁盘空间大小
du -h --max-depth=1 统计当前目录下所有一级子目录文件夹大小
du -h --max-depth=1 |sort  统计当前目录下所有一级子目录文件夹大小并排序
du -h --max-depth=1 |grep 'G' |sort #统计当前目录下所有大小上G的一级子目录并排序 
du -h --max-depth=2 |grep 'G' |sort #统计当前目录下所有大小上G的二级子目录并排序
du -h --max-depth=1 |grep [TG] |sort -nr #统计当前目录下所有大小上T,G的一级子目录并倒序排序
fdisk -l  



lsof | grep deleted  看是否有已删除文件,占用内存,是否有文件已被删除,但是引用该文件的进程
仍然活动,导致文件所占磁盘没有被释放.
cat /proc/filesystems 查看内核支持的文件系统
mkfs -t ext2 /dev/sda5 创建一个文件系统,会格式化该块空间,如果有内容一定要注意备份.
mkfs.ext2  /dev/sda5   创建一个文件系统,会格式化该块空间,如果有内容一定要注意备份.
(mkfs.ext2和mkfs -t是一样的意思)
mke2fs                 专门管理ext系列的文件系统
mke2fs /dev/sda5       创建一个ext2文件系统,会格式化该块空间,如果有内容一定要注意备份.
mke2fs -j /dev/sda5    创建一个ext3文件系统(有日志),会格式化该块空间(注意备份)
mke2fs -b BLOCK        指定块大小,默认为4096,可取值是1024,2048,4096
mke2fs -L LABEL        指定分区卷标,有了卷标以后可以用卷标来引用这个分区
mke2fs -m NUM          指定预留给超级用户的块数百分比
mke2fs -i NUM          指定一个inode的字节大小,默认8K(这里说错了吧);这里给出的数值应该是块大小的2^n 
                       倍,inode的个数比块还多是很浪费的,要注意分配
mke2fs -i 4096         指定一个inode的字节大小为4096
mke2fs -N NUM          指定inode的个数
mke2fs -F              强制创建文件系统属性
mke2fs -E              用户指定额外文件系统属性
blkid  /dev/sda5       查看/dev/sda5这个设备的属性,UUID是设备的全局的唯一的标识符
blkid                  查询或查看磁盘设备的相关属性,如UUID,TYPE(文件系统类型),LABEL卷标
e2lable /dev/sda5      查看文件系统设备的卷标    
tune2fs                调整文件系统(无损)   
tune2fs -j /dev/sda5   如果以前/dev/sda5是ext2,经过这个命令/dev/sda5会变成ext3,无损(只能升级)
tune2fs -L MYDATA /dev/sda5 将/dev/sda5的卷标干成MYDATA
tune2fs -m NUM         调整预留百分比
tune2fs -r             指定预留块数
tune2fs -o             设定默认挂载选项
tune2fs -c NUM         指定挂载次数在达到#后进行自检,0或-1表示关闭此功能
tune2fs -i NUM         每挂载使用多少天后进行自检,0或-1表示关闭此功能
tune2fs -l /dev/sda5   显示设备/dev/sda5超级块中的信息
注意tune2fs无法改变块大小(除非格式化文件系统,否则无法改变块大小)


dumpe2fs   /dev/sda5   显示文件系统相关系统,更详细
dumpe2fs -h /dev/sda5  只显示指定文件系统的超级块信息(高级,free block会有碎片信息)
fsck /dev/sda5         检查并修复文件系统/dev/sda5

[root@localhost test]# df -lh
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   17G   17G  370M   98% /
devtmpfs                 894M     0  894M    0% /dev
tmpfs                    910M     0  910M    0% /dev/shm
tmpfs                    910M   11M  900M    2% /run
tmpfs                    910M     0  910M    0% /sys/fs/cgroup

dumpe2fs /dev/centos/root(找不到有效的文件系统超级块)
fsck                     检查并修复Linux文件系统
fsck -t FSTYPE           指定文件系统类型
fsck -a    /dev/sda5     不询问自动修复,各种文件系统都可以
e2fsck                   专门修复ext系列文件系统                 
e2fsck -f                强制检查,没问题也检查
e2fsck -a  /dev/sda5     不询问自动修复/dev/sda5(假如有错的话)

ftp-vsftpd  https://blog.youkuaiyun.com/qq_31319235/article/details/106942879                    
  


chown root:root ./* 将当前目录下的所有文件的拥有者和组ID都设置成root

scp /etc/profile root@192.168.244.142:/root

9.内存管理相关

cat   /proc/slabinfo 查看slab内存信息
dmesg | grep e820    查看e820表的信息
ipcs                 检查系统共享内存的分配情况
ipcrm                手动解除系统上共享内存的分配

10.设备驱动相关

mknod /dev/mapnopage c 240 0 创建一个名字为/dev/mapnopage,主设备号是240,次设备号是0的字符设备


lspci |grep VGA               查看显卡使用
lspci -vnn | grep VGA -A 12   详细使用情况

11.网络相关 

指定端口范围为4400-4600通过防火墙
firewall-cmd --zone=public --add-port=4400-4600/udp --permanent 运行接口通过
firewall-cmd --reload                             重新加载
firewall-cmd --zone=public --remove-port=80/tcp --permanent   关闭指定端口
systemctl start firewalld.service                开启防火墙
systemctl stop firewalld.service                 关闭防火墙
service firewalld restart                        从启防火墙
firewall-cmd --zone=public --list-ports          查看通过的端口
firewall-cmd --state                             查看防火墙状态 


netstat -anop | grep 8080                        查看8080端口占用情况  
netstat -s                                       显示每种协议的统计信息
netstat -r                                       显示内核路由表
netstat -g                                       显示IPv4和IPv6的IGMP组播组成员关系信息
netstat (none)  
无选项时, netstat 显示打开的套接字.  如果不指定任何地址族,那么打印出所有已配置地址族的有
效套接字.
netstat -i                                       显示所有网络接口列表或者是指定的iface
netstat -M                                       显示一份所有经伪装的会话列表
netstat --timers                                 包含与网络定时器有关的信息

curl  http://127.0.0.1:8080 -I                   请求http://127.0.0.1:8080并返回头部
vim /etc/sysconfig/network-scripts/ifcfg-ens33  编辑网卡配置文件
systemctl restart network network.service        重启网络
tcpdump -i lo port 8080 -A -s 0                  抓本地8080端口的包
tcpdump -nn -i ens33 port 6666
lsof -i:80 查看80端口被那个进程占用了                                        https://www.cnblogs.com/sparkbj/p/7161669.html
route -n  查看路由
vim /etc/sysconfig/network-scripts/ifcfg-ens33
vim /etc/resolv.conf
service network restart   重启网络,我的centos7上面的命令,有时候不能上网重启一下就好了


ss  (ss - another utility to investigate sockets ,please man ss, ss is used to dump socket 
statistics. It allows showing information similar to netstat.  It can display more TCP and 
state informations than other tools.) 

通过PID来查看程序占用的端口 

12.vi&vim

VIM的ctag跳转工具

1.vim实现排版         在命令模式下(按esc,不需要:)按顺序打出 gg , = ,G可实现排版。 
2.vim编辑多个文件     【vim FILE1 FILE2 FILE3】可以同时编辑FILE1 FILE2 FILE3这三个文件
                     【:next】切换至下一个文件
                     【:prev】切换至前一个文件
                     【:last】切换至最后一个文件
                     【:first】切换至第一个文件
3.垂直分屏(分成左右两个屏幕)
vim一个文件的前提下,切换到命令行,需要:,然后输入vs(或vsplit) filename.

3.水平分屏(分成上下两个屏幕)
vim一个文件的前提下,切换到命令行,需要:,然后输入s(或split) filename.

4.缩小字体   vim打开 ctl+'-'
5.放大字体   vim打开 ctl+shift+'+'
6.显示行号   vim打开 切换到命令行,需要:,输入set nu或者set number
7.不显示行号 vim打开 切换到命令行,需要:,输入set nonu或者set nonumber
8.调到第一行 vim 在命令模式下(不需要:),打出gg
9.调到最后一行 vim 在命令模式下(不需要:),打出G
10.调到第n行   vim 在命令模式下,需要:,打出n
                   或者不需要:,打出ngg
11.删除5个字符 vim 在命令模式下(不需要:),打出5x 
12.全局替换:% s/XXX/YYY/g(命令行模式下,需要加:,用YYY替换所有XXX)
13.vim /etc/vimrc   (Centos)加上set number 或者 set nu 之后vim打开任何文件就可以自动加行号了. 
   vim /etc/vim/vimrc(Ubuntu)
14.Vim快速移动光标至行首和行尾
14.1 需要按行快速移动光标时,可以使用键盘上的编辑键Home,快速将光标移动至当前行的行首。
     除此之外,也可以在命令模式中使用快捷键"^"(即Shift+6)或0(数字0)。
14.2如果要快速移动光标至当前行的行尾,可以使用编辑键End。也可以在命令模式中使用快捷
键"$"(Shift+4)。与快捷键"^"和0不同,快捷键"$"前可以加上数字表示移动的行数。例如使
用"1$"表示当前行的行尾,"2$"表示当前行的下一行的行尾。

15.向前搜索查找匹配的内容"N",向后搜索查找匹配的内容"n".

vim向前和向后匹配关键字

vim分屏的链接

13.gcc&gdb

gcc
1、-pedantic 选项,那么使用了扩展语法的地方将产生相应的警告信息

2、-Wall 使用它能够使GCC产生尽可能多的警告信息

3、-Werror,它要求GCC将所有的警告当成错误进行处理

g++相关参数的参考链接

ldd 命令介绍

14.awk,sed,grep 

ref1ref2

一条命令杀掉查找出的相关进程
查看项目的进程号:
ps -efww | grep 项目名 | grep -v grep | grep -v less | awk '{print $2}'
kill项目:
kill `ps -efww | grep 项目名 | grep -v grep | grep -v less | awk '{print $2}'`


找出ls -lrt结果集合中的第九列
ls -lrt | awk -F ' ' '{ print $9 }'


获得机器中IP地址:
/sbin/ifconfig -a | grep inet | grep -v 127.0.0.1 | grep -v inet6 | awk '{print $2}' | tr -d "addrs"

15.链接

一个链接
比较全

16.文件查看

Linux 命令中 more,less,head,tail 命令的用法

17.find 

find / -type f -size +1G   大文件查找

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值