内核版本分为三个部分,整理主版本号、介绍次版本号、常用末版本号,命令次版本号是整理奇数为开发板,偶数为稳定版。介绍
发行版本:
/ 根目录/root root用户目录/home/username 普通用户目录/etc 配置文件目录/bin 命令目录/sbin 管理命令目录/usr/bin | /usr/sbin 系统预装的其他命令
man 是 manual 的缩写man 帮助用法演示 #man lsman 也是一条命令,分为9章,可以使用man命令获得man的帮助 #man 7 manhelpshell(命令解释器)自带的命令成为内部命令,其他的是外部命令内部命令使用 help 帮助 #help cd外部命令使用help帮助 #ls --help可以通过type来判断一个命令是内部还是外部命令 #type ls #type cd
显示当前的目录:
pwd 显示当前的目录名称
文件查看:
ls 查看当前目录下的文件ls / /root 这样会同时查看根目录和 /root目录下的文件常用参数 -l 长格式显示文件 -a 显示隐藏文件 -r 逆序显示(默认按照文件名排序) -t 按照时间顺序显示 ls -l -r -t (会按照时间逆向排序) ls -lrt -R 递归显示 -h 人性化显示、 -d 只显示目录
更改当前的操作目录:
cd 更改当前的操作目录cd /path/to/... 绝对路径cd ./path/to/... 相对路径cd ../path/to/... 相对路径
目录文件的创建与删除:
mkdir 建立空目录mkdir a常用参数 -p 递归创建多级文件夹rmdir 删除空文件夹rmdir arm 可以删除非空目录及文件常用参数 -r 删除目录 -f 强制删除,不提示 需要注意,rm -rf 后面可以跟多个目录 不要出现 rm -rf / usr 这种,会从根目录开始删除
复制和移动目录:
cp 复制文件和目录cp /root/a /tmp常用参数 -r/R 递归复制目录 -v 显示过程 -p 保留文件原有更新时间(属性) -a 时间戳+所有权+复制连接文件属性而非档案本身 -f 强行覆盖 -i 覆盖之前先行提示mv 移动文件或者重命名mv /a /othermv /a /tmpmv /a /tmp/b(移动+重命名)常用参数 -i 覆盖文件前提示
常用通配符:
* 匹配任何字符串? 匹配1个字符串[xyz] 匹配xyz任意一个字符[a-z] 匹配一个范围[!xyz]或者[^xyz] 不匹配
cat 文本内容显示到终端 显示全部head 查看文件开头 head test.txt 默认查看前10行 head -5 test.txt head -c 20 runoob_notes.log 显示文件前 20 个字节tail 查看文件结尾 tail -1000f catalina.out 常用参数 -f 文件内容更新后,显示信息同步更新wc 统计文件内容信息 wc -l /tmp/test.txt 查看文件有多少行 -c或--bytes或——chars:只显示Bytes数; -l或——lines:只显示列数; -w或——words:只显示字数。more 分行显示 less
最早的Linux备份介质是磁带,使用的命令是tar。可以打包后的磁带文件进行压缩储存,压缩的命令是 gzip 和 bzip2,经常使用的扩展名是 .tar.gz .tar.bz2 .tgz。
tar 打包命令常用参数 c 打包 x 解包 f 指定操作类型为文件 v 显示进度 P 使用绝对路径打包tar cf /tmp/etc-backup.tar /etc 把 /etc 这个文件夹打包放在/tmp/etc-backup.tar会提示,但是也能成功:tar: Removing leading `/' from member namestar cPf /tmp/etc-backup.tar /etc 使用绝对路径 (没有提示)tar czf /tmp/etc-backup.tar.gz /etc (tar集成了gzip和bzip2)tar cjf /tmp/etc-backup.tar.bz2 /etc (压缩比例更高)解包tar xf /tmp/etc-backup.tar -C /root 把 tar包解压到 /root 目录下tar zxf /tmp/etc-backup.tar.gz -C /etctar zjf /tmp/etc-backup.tar.gz -C /etc
四种模式: 正常模式(Normal-mode) 插入模式(Insert-mode) 命令模式(Command-mode) 可视模式(Visual-mode)i 进入插入模式i是当前光标I是光标当行开头a是光标后一位A是光标当行结尾o下一行,会产生一个空行O上一行,会产生一个空行v进入可视模式:进入命令模式esc返回正常模式正常模式下:hjkl可以控制上下左右yy表示复制当行,p可以粘贴3yy表示复制三行y$ 表示复制从光标到当行结尾dd d$表示剪切操作错误,u可以撤销,ctrl+r重做x表示删除当前光标的字符r可以替换当前字符:set nu 可以查看目前是第几行数字 + G可以到数字对应的行g移动到第一行G移动到最后一行^来到光标所在行的开头,$来到光标所在行的结尾 命令模式:w /root/test.txt 文件新建的,可以保存一个新文件:w 文件已经存在的情况下,保存:wq 保存退出:q! 强制退出:! 执行linux命令,看完后回车重新回到vim/x 查找x字符,n查找下一个,shift+n上一个:s/old/new 用新字符替换旧字符(只正对光标所在的行):%s/old/new 用新字符替换旧字符(整个文本,但只替换一个):%s/old/new/g 用新字符替换旧字符(整个文本,全部替换):3,5s/x/X/g 3-5行内全部替换,替换一个就去掉g:set nu 显示行号:set nonu 不显示行号以上是单次修改的,如果要修改默认配置vim /etc/vimrc可视模式三种进入可视模式的方式v 字符可视模式V 行可视模式ctrl + v 块可视模式 配合d和I(大写i)命令可以进行块的便利操作需要在块的所有行之前加入一些字符,选中块,I的时候会在选中的块的第一行的第一个光标处,输入字符,连续两次esc。选中块,d,然后选中的块就会被删除
useradd 新建用户 useradd user1 (可以用 id user1 来验证是否存在) 创建一个用户后,自动在 /home建立Home目录,并且创建一些隐藏文件。同时,在 /etc/passwd 这个文件里会加入新用户user1的数据,/etc/shadow里面也有会相关数据(密码相关)。如果没有组的话,创建一个同名的组。userdel 删除用户 userdel user1 userdel -r user1 同时删除Home目录passwd 修改用户密码 passwd user1 passwd更改当前用户密码 /etc/passwd 和 /etc/shadow 里面的数据也被删除usermod 修改一个用户账户 usermod -d /home/other user1 Home目录从 /home/user1 改成 /home/otherchage 修改用户生命周期 设置用户密码的过期时间,甚至用户本身的过期时间
groupadd 新建用户组 groupadd group1 useradd user1 usermod -g group1 user1 把user1这个用户的组改成group1 useradd -g group1 user2 新建用户user2时就把它放到group1组下groupdel 删除用户组 groupdel group1 删除组group1
su 切换用户 su - USERNAME 使用 login shell 方式切换用户 su USERNAME 不完全切换,比如还是在 /root下而不会自动跳转到用户家目录sudo 以其他用户身份执行命令 visudo 设置需要使用sudo的用户(组)
/etc/passwd 用户配置文件,7个字段user3:x:1003:1003::/home/user3:bin/bashuser3:用户名称x:是否需要密码验证,x表示需要,空表示不需要1003:用户的uid,用户的id信息,唯一识别用户的标识。root是0。1003:用户的gid,表示组id信息第五个字段:注释/home/user3:Home目录/bin/bash:用户登录后的命令解释器。/sbin/nologin 表示不能登录/etc/shadow 保存用户和用户密码相关信息的第一个字段:用户名称第二个字段:用户加密过后的密码(看到也没用,经过处理,即使相同的密码也会显示不同)/etc/group 用户组相关的配置文件,4个字段group:x:10:anothergroup:组的名称x:是否需要密码验证10:gidanother:其他组设置,说明another这个用户的第二个组是group比如输入 id user1uid=1001(user1) gid=1001(group1) 组=1001(group1)id anotheruid=1002(another) gid=1002(another) 组=1003(group) 查找another信息,发现他的第二个组是group
文件类型- 普通文件d 目录文件b 块特殊文件c 字符特殊文件l 符号链接f 命名管道s 套接字文件文件权限的表示方法 字符权限表示方法 r 读 w 写 x 执行 数字权限的表示方法 r=4 w=2 x=1文件权限的表示方法rwxrwxrwx第一个表示文件属主的权限,第二个表示文件属组的权限,第三个表示其他用户的权限创建新文件有默认权限,根据umask值计算,属主和属组根据当前进程的用户来设定目录权限的标识方法x 进入目录rx 显示目录内的文件名wx 修改目录内的文件名
修改权限命令(测试的时候别用root,root不受限制)chmod 修改文件、目录权限 chmod u+x /tmp/testfile u表示属主 chmod u=rwx /tmp/testfile chmod g-r /tmp/testfile g表示属组 chmod 0-r /tmp/testfile o表示其他用户 chmod a+r /tmp/testfile a表示所有 chmod 755 /tmp/testfile如果属主没有权限,所属的组有权限,以属主为准,还是没有权限。chown 更改属主、属组 chown user1 /test 把test这个目录的属主改成user1 chown :group /test 把test这个目录的属组给成group chown user1:group /test 一起修改chgrp 可以单独更改属组、不常用linux一般创建一个文件默认会赋予666权限,然后根据用的umask值来计算。用户默认umask值为022,所以一般是 666-022=644,对应rw-r--r--
SUID 用于二进制可执行文件,执行命令时取得文件属主权限 如,/usr/bin/passwdSGID 用于目录,在该目录下创建新的文件和目录,权限自动更改为该目录的属组 文件共享时使用SBIT 用于目录,该目录下新建的文件和目录,仅root和自己可以删除 如 /tmp
net-tools VS iproute1. net-tools ifconfig route netstat 2. iproute2 ip ss
网卡名称:
ifconfig查看网卡名称 · eth0 第一块网卡(网络接口) · 你的第一个网络接口可能叫做下面的名字 · eno1 板载网卡 · ens33 PCI-E网卡 · enp0s3 无法获取物理信息的 PCI-E 网卡 · CentOS7使用了一致性网络设备命名,以上都不匹配则使用eth0 当工作中大量管理网卡,所有设备的网卡最好都是以 eth0 命名,这样可以批量操作。 网络接口命名修改 网卡命名规则受 biosdevname 和 net.ifnames 两个参数影响 编辑 /etc/default/grup 文件,增加 biosdevname=0 net.ifnames=0 更新 grub # grub2-mkconfig -o /boot/grub2/grub.cfg 重启 # reboot 组合,biosdevname=0 net.ifnames=0,则网卡名为 eth0 biosdevname=1 net.ifnames=0,则网卡名为 em1 biosdevname=0 net.ifnames=1,则网卡名为 ens33
ifconfig:
普通用户要使用ifconfig,要使用 /sbin/ifconfig如果只想要看某一张网卡,可以 ifconfig 网卡名mii-tool eth0 查看网卡物理连接情况route -n 查看网关(路由),使用 -n 参数不解析主机名(把ip解析成域名)
网络配置命令:
ifconfig <接口> <IP地址> [netmask 子网掩码] 设置网卡的ip地址ifup <接口> 启用网卡ifdown <接口> 禁用网卡
网关配置命令:
添加网关route add default gw <网关ip>route add -host <指定ip> gw <网关ip>route add -net <指定网段> netmask <子网掩码> gw <网关ip>
ping 检测是否连接到主机 ping www.baidu.com traceroute 跟踪当前主机到目标主机的网络状态,-w 1超时最多等1秒 traceroute -w 1 www.baidu.com mtr 显示自己主机的网络状态nslookup 域名解析成ip nslooup www.baidu.comtelnet 检测端口 telnet www.baidu.com 80tcdump 网络抓包 -i any 抓取所有网卡里的数据包,-n 把域名解析成 ip ,port 80 抓取指定端口 host 10.0.0.1 抓取当前主机到某个主机的数据包 tcpdump -i any -n port 80 tcpdump -i any -n host 10.0.0.1 tcpdump -i any -n host 10.0.0.1 and port 80 tcpdump -i any -n host 10.0.0.1 and port 80 -w /tmp/filename 捕获并且保存netstat 监听地址 -n 域名转换,-t 显示tcp ,-p 进程 ,-l tcp状态 listen netstat -ntplss 跟netstat一样,参数也一样,显示的格式不一样网络服务管理程序分为两种,分别是 SysV 和 systemd(centos7)service network status|start|stop|restart网络配置文件/etc/sysconfig/network-scripts/ifcfg-eth0 (网卡配置项)/etc/hosts
rpm 命令常用参数 -q 查询软件包 rpm -qa 查询所有软件包 rpm -q vim-common 查询某个软件包 -i 安装软件包 rpm -i vim-enhanced-7.4.160-5.el7.x84_64.rpm (要全称) -e 卸载软件包 rpm -e vim-enhanced (只要名字,不需要版本号等)用 rpm 安装的问题:如果一个软件包依赖其他软件包,那么就会安装失败。需要操作者自己解决依赖关系。
CentOS yum源 http://mirror.centos.org/centos/7/国内镜像 https://opsx.alibaba.com/mirroryum 配置文件 /etc/yum.repos.d/CentOS-Base.repo可以修改配置文件[base]name=CentOS-$releasever - Base -mirrors.aliyun.comfailovermethod=prioritybaseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/gpgcheck=1gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7或者直接用别人已经写好的配置文件wget -O /etc/yum.repo.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo需要清除缓存yum makecache常用选项install 安装软件包remove 卸载软件包list |grouplist 查看软件包update 升级软件包
二进制安装源代码编译安装wget https://openresty.org/download/openresty-1.15.8.1.tar.gztar zxf openresty-VERSION.tar.gzcd openresty-VERSION/./configure --prefix=/usr/local/openrestymake -j2 (用2核编译)make isntall
rpm 格式内核 查看内核版本 uname -r 升级内核版本 yum install kernel-3.10.0 这种方式一般不能升级到最新 epel软件仓库会有较高的软件版本。yum install epel-release -y 升级已安装的其他软件包和补丁 yum update 除了升级内核,还会升级软件包。正常不要使用。源代码编译安装内核yum install gcc gcc-c++ make ncurses-devel openssl-devel elfutils-libelf-devel下载并解压缩内核https://www.kernel.orgtar xvf linux-5.1.10.tar.xz -C /usr/src/kernels配置内核编译参数cd /usr/src/kernels/linux-5.1.10/make menuconfig | allyesconfig | allnoconfigmake allyesconfig (无脑全选)使用当前系统内核配置cp /boot/config-kernelversion.platform /usr/src/kernels/linux-5.1.10/.config查看cpulscpu编译make j2 all安装内核make modules_installmake install
进程-运行中的程序,从程序开始运行到终止的整个生命周期是可管理的查看命令ps -e 表示所有的终端运行的进程 -f 显示更多信息,比如 UID、PPID(父进程)、CMD(命令的完整路径) -L 多显示 LWP ,线程信息 ps -eLf 常用命令pstree 查看进程树 top 动态查看进程信息top -p 进程号结论:进程也是树形结构进程和权限有着密不可分的关系
调整优先级 nice 范围从 -20 到 19,值越小优先级越高,抢占资源就越多 nice -n 10 ./rest.sh 启动的时候调整为 10 renice 重新设置优先级 renice -n 15 19312 已经处于启动的情况下进行调整。根据进程号进程的作业控制 &符号,后台运行 ./test.sh & jobs 把处于后台运行的程序调到前台显示 jobs 能得到一个编号 fg 编号,可以调到前台 ctrl +z,把已经处于前台的程序调到后台,状态会stop
信号是进程间通信方式之一,典型用法是:终端用户输入中断命令,通过信号机制停止一个程序的运行。
使用信号的常用快捷键和命令kill -l 查看所有的信号 SIGINT 通知前台进程组终止进程 ctrl + c,2号信号 SIGKILL 立即结束程序,不能被阻塞和处理 kill -9 pid ,9号信号
守护进程(精灵进程)使用 nohup 与 & 符号配合运行一个命令 (nohup进程不是守护进程) nohup 命令使进程忽略 hangup(挂起)信号。关掉终端这个进程依然可以运行,忽略输入并且把输出打印到 nohup.out守护进程(daemon)和一般进程有什么差别呢? 开机自启,守护进程不需要终端,输出可以打印到特殊的文件中,进程所占用的目录是根目录。cd /proc/ 这个目录是内存信息,相应的进程会有进程号同名的目录。使用 screen 命令,进入screen环境后,如果远程连接断掉了,可以通过screen恢复工作现场 screen 进入 screen 环境 ctrl +a然后再单独按d退出(detached)screen 环境 screen -ls 查看 screen 的会话 screen -r sessionid 恢复会话系统日志文件 /var/log系统常规日志:messages内核运行情况:dmesg安全日志 secure定时任务日志 cron
内存使用率查看free -m 以兆的方式显示 -g 以G的方式显示,但是会被四舍五入。一般不用top磁盘使用率的查看fdisk -l 查看 磁盘分区一块硬盘最多分15个分区df 既能够看到分区,又能够看到挂载到的目录 -h 人性化可读du (实际占用的空间) -h 人性化显示 -s 只显示总计du与ls的区别 du 是实际占用的,ls算上空洞数据。
Linux 支持多种文件系统,常见的有:
ext4(centos6)xfs(centos7)NTFS(需安装额外软件,window常用,有版权)
常用命令fdiskmkfspartedmount常见配置文件/etc/fstab用fdisk创建分区(一个硬盘设备可以创建多个分区,也可以创建一个)1:fdisk -l 查看有几个硬盘设备及分区2:fdisk /dev/sdc (比如有设备sdc,则可以针对sdc进行分区)3:之后 m 键是帮助4:n 表示新建一个分区5:新建分区时,需要选择主分区和扩展分区,其中 p表示主分区,最多有4个。e表示扩展分区(里面可以建立逻辑分区)。一般把一块硬盘划分为一个主分区。使用扩展分区时,只能建立3个主分区。6:选择区分编号1-47:指定分区扇区大小,默认20488:指定分区大小。默认全部。可以 + 20G等可以选择分区大小9:q 表示退出,分区不生效。w 表示生效建立完分区后,需要对分区进行格式化。mkfs.ext4 mkfs.xfs等命令mkfs.ext4 /dev/sdc1然后要进行操作,linux里都是文件级别的操作,需要挂载到某个目录下mkdir /mnt/sdc1mount /dev/sdc1 /mnt/sdc1 挂载上去对/mnt/sdc1的读写就会落入sdc1设备上1、一个硬盘2、进行分区3、格式化4、挂载5、对指定目录进行操作需要注意的事情:如果一个硬盘大于 2T ,不能使用 fdisk 进行分区,需要使用 partedparted /dev/sddhelp 获取帮助mount 进行挂载是临时的,不是固化的vim /etc/fstab在文件中新增下面一句话/dev/sdc1 /mnt/sdc1 ext4 defaults(表示权限)0 0
使用 sar 命令查看系统综合状态 sar -u 1 10 CPU的查看,每隔1秒做采样,采样10次, sar -r 1 10 看内存 sar -b 1 10 IO的情况(磁盘读写) sar -d 1 10 查看每块磁盘的读写 sar -q 1 10 查看进程使用第三方命令查看网络流量yum install epel-releaseyum install iftop (网络情况)iftop -p (默认eth0)
责任编辑:赵宁宁 来源: 沐雨花飞蝶 Linux内核(责任编辑:热点)
《战地手游》主创:2042的失败是手游取消和工作室被关的主因
冠豪高新(600433.SH):重组事项获有条件通过 公司A股股票自3月12日起复牌