https://wangchujiang.com/linux-command/
https://linuxtools-rst.readthedocs.io/zh_CN/latest/index.html
man:例man top----Linux命令
help:例help cd------shell内置命令
如何判断:which 命令 。没有路径就是shell内置命令
which top:有路径------是 Linux命令
语法:ls【选项】 【目录】
选项:
-a : 显示包含隐藏文件(文件以"."开头的所有文件)-A :显示除隐藏文件".“和”…"以外的所有文件列表-l :长数据串列出,包含文件的属性与权限等等数据;(常用,可简写为 ll )-C :多列显示输出结果,默认-R :递归显示目录下的所有文件列表和子目录列表-s : 以块(1块=1024字节)为单位显示文件的大小实操:
[root@linux01 home]# ll 总用量 20 -rw-r--r--. 1 root root 175 10月 20 21:01 alldata.tar.gz drwx------. 24 fxy fxy 4096 10月 16 20:23 fxy drwx------. 5 root root 4096 10月 21 17:01 jh drwx------. 4 lili english 4096 10月 20 17:30 lili drwx------. 5 list list 4096 10月 20 21:01 lisi语法:cd [参数]
选项:
cd绝对路径 切换路径cd相对路径 切换路径cd ~或cd 回到自己的家目录cd - 回到上一次所在目录cd … 回到当前目录的上一级目录cd -P 跳转到实际物理路径,而非快捷方式路径实操:
[root@linux01 ~]# cd /home [root@linux01 home]#语法:rename 【原字符串】 【目标字符串】 【文件】
实操:
[root@linux01 ~]# rename aaa bbb /home/test/*aaa*语法: cp 【选项】 【源文件】【目标文件】 将1/多个源文件/目录 复制到 指定的目标文件/目录
选项:
-a 保持源文件的原有结构和属性,与选项“-dpR"的功能相同-R或则-r 以递归的操作方式,将指定目录及其子目录,中的所有文件复制到指定的目标目录-v 详细显示指令执行的操作实操:
[root@linux01 ~]# cp -vr xiyou/dssz/ ./语法:cat [选项] 要查看的文件
选项:
-b 在非空行前面显示行号-n 显示所有行的行号,包括空行。-s 压缩空行,多个空行连续出现时仅显示一个空行实操:
[root@linux01 ~]# cat -n aa.txt语法:
ll >文件 (功能描述:列表的内容写入文件中(覆盖写))ll >>文件 (功能描述:列表的内容追加到文件的末尾)cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)echo “内容” >> 文件实操:
[root@linux01 ~]# echo hello>>a.txt语法:ln -s [原文件或目录] [软链接名]
选项:
-i 创建链接时,如果目标文件已经存在,则提示用户确认覆盖-s 创建符号链接。如果系统不支持符号链接,则导致命令出错-v 详细信息模式,输出指令的详细执行过程实操:
[root@linux01 ~]# ln -s /home/test1/b.txt /home/a.txtPS:
ln 默认创建链接为硬链接,不能对目录建立链接。要为目录建立链接必须使用“-s”选项,指明创建的链接类型为符号链接。只能为普通文件创建硬链接, 不能为目录创建硬链接。而符号链接(软连接)则没有任何限制,删除软链接: rm -rf 软链接名,而不是rm -rf 软链接名/查询:通过ll就可以查看,列表属性第1位是l,尾部会有位置指向。find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。
语法:find [搜索范围] [选项]
选项:
-name <查询方式> 按照指定的文件名查找模式查找文件-user<用户名> 查找属于指定用户名所有文件-size<文件大小> 按照指定的文件大小查找文件。-empty 查找文件大小为0的目录或文件-type<文件类型> 按照指定的文件类型查找文件 [b,c,d,p,f,l,s] b:块设备文件(block device)c:字符设备文件( characterdevice)d:目录(directory)p:命名管道(FIFO)f:普通文件1:符号链接文件(symbolic links)s:网络套接字文件( socket)实操:
[root@linux01 home]# find -name fxy ./fxy [root@linux01 home]# find -user root . ./jh ./jh/log.txt ./jh/mail.txt ./jh/alldata.tar.gz ./jh/test ./lisi/log.txt ./lisi/mail.txt ./lisi/test ./alldata.tar.gz [root@linux01 home]# find -type f ./jh/.bash_profile ./jh/log.txt ./jh/.bash_logout语法:grep 【选项】 【匹配模式】 【源文件】
选项:
-n 显示匹配行及行号。-i 忽略大小写的不同-v 搜索不含指定字符串的行实操:过滤fxy,查找其他
[root@linux01 ~]# ll /home 总用量 20 -rw-r--r--. 1 root root 175 10月 20 21:01 alldata.tar.gz drwx------. 24 fxy fxy 4096 10月 16 20:23 fxy drwx------. 5 root root 4096 10月 21 17:01 jh drwx------. 4 lili english 4096 10月 20 17:30 lili drwx------. 5 list list 4096 10月 20 21:01 lisi [root@linux01 ~]# ll /home | grep -vn fxy 1:总用量 20 2:-rw-r--r--. 1 root root 175 10月 20 21:01 alldata.tar.gz 4:drwx------. 5 root root 4096 10月 21 17:01 jh 5:drwx------. 4 lili english 4096 10月 20 17:30 lili 6:drwx------. 5 list list 4096 10月 20 21:01 lisi语法:whereis 【选项】【参数】
选项:
-b 仅查找二进制程序或命令实操:显示rm指令的程序路径
[root@linux01 ~]# whereis -b rm语法: useradd 【选项】【用户名】
权限要求:root
选项功能-g指定用户的主要组,默认 组名=用户名-d指定用户的宿主目录,默认 /home/与用户名同名的目录-u指定用户的UID-c设置用户注释注册用户:[root@linux01 ~]# useradd -d /home/lisi123 -c “大数据开发组员工” lisi
用户名:密码:用户id:组id:注释:宿主目录:
语法:passwd 【用户名】
语法:
whoami :显示自身用户名称
who am i :显示登陆用户名称
语法:userdel 【选项名】【用户名】
选项功能-r删除用户的同时删除用户相关文件-f强制删除用户,即使用户正在登陆语法:usermod 【选项】 【用户名】
选项功能-g修改用户的初始登录组,给定的组必须存在-c修改用户的注释信息-d修改用户的宿主目录修改前:
jh:x:502:505:xiaobai:/home/jh:/bin/bash修改并查看
[root@linux01 ~]# usermod -c "注释" jh [root@linux01 ~]# cat /etc/passwd jh:x:502:505:注释:/home/jh:/bin/bash语法:sudo 【指令】
1.添加jinghang用户,并对其设置密码。
[root@hadoop101 ~]#useradd jinghang
[root@hadoop101 ~]#passwd jinghang
2.修改配置文件
[root@hadoop101 ~]#vi /etc/sudoers
修改 /etc/sudoers 文件,找到下面一行(91行),在root下面添加一行,如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
jinghang ALL=(ALL) ALL
或者配置成采用sudo命令时,不需要输入密码
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
jinghang ALL=(ALL) NOPASSWD:ALL
3 . 修改完毕,可以用jinghang帐号登录,然后用 命令 sudo ,即可获得root权限进行操作。
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。
查看创建的组:cat /etc/group
命令语法功能选项groupaddgroupadd 【组名】创建新工作组groupadd -g 【组id】【组名】groupdelgroupdel 【组名】删除工作组groupmodgroupmod 【选项】【组名】修改工作组信息-n<新组名>-g <新组ID>语法:
groupadd 【组名】
groupadd -g 【组id】【组名】
实操:添加一个组,并设置组id
[root@linux01 ~]# groupadd -g 400 class26语法:groupdel 【组名】
PS: groupdel 指令无法删除用户的主要组(Primary Group),即创建用户时自动为用户所创建的组(如果此用户还存在)。
语法:groupmod 【选项】【组名】
选项:
-n<新组名> 指定工作组的新组名-g <新组ID> 指定 工作组的新组ID实操:修改jh1组id为450
[root@linux01 ~]# groupmod -g 450 jh1 Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属的用户和组。
例如:-rw-r–r--. 1 root root 46832 10月 16 20:15 install.log
从左到右:
文件类型与权限(-rw-r–r--):0-9共10个字符 0代表类型,-文件、d目录、l链接文档,本例为文件。1-3代表属主(即文件所有者)权限,4-6代表属组权限, 7-9代表其他用户权限有三种权限r可读、w可写、x可执行w 代表可写: 可以修改,但不可以删除文件,可写是删除该文件的前提。可写+可执行=可删除本例中,属主权限rw-,可读可写;属组权限r–,可读;其他用户权限r–,可读。 链接数:1文件属主:root文件属组:root文件大小:46832建立/最近修改的时间:10月 16 20:15文件名字:install.log 命令语法功能选项chmodchmod [{ugoa}{±=}{rwx}] 文件或目录改权限chmod [mode=421 ] [文件或目录]chownchown [选项] [最终用户] [文件或目录]改v所有者-R -vchgrpchgrp [最终用户组] [文件或目录]改所属组语法:
chmod [{ugoa}{±=}{rwx}] 文件或目录
chmod [mode=421 ] [文件或目录]
实操:
语法:chown [选项] [最终用户] [文件或目录]
实操:
语法:chgrp [最终用户组] [文件或目录]
语法:cal [选项]
[选项]:年份。
加:具体某一年,显示这一年的日历
不加:当前月
实操:
1、压缩
[root@linux01 ~]# zip aa.zip jh1.txt jh2.txt adding: jh1.txt (stored 0%) adding: jh2.txt (stored 0%) [root@linux01 ~]# ls jh1.txt jh2.txt aa.zip2、解压
[root@linux01 ~]# unzip aa.zip Archive: aa.zip extracting: jh1.txt extracting: jh2.txt [root@linux01 ~]# ls jh1.txt jh2.txt aa.zip3、解压到指定目录
[root@linux01 ~]# unzip aa.zip -d /opt选项:
-z 打包同时压缩-c 产生.tar打包文件-v 显示详细信息-f 指定压缩后的文件名-x 解包.tar文件实操:
1、压缩
[root@linux01 ~]# tar -zcvf /home/alldata.tar.gz /home/lisi/log.txt /home/lisi/mail.txt /home/lisi/test2、解压
[root@linux01 ~]# tar -zxvf /home/jinghang/test1.tar.gz -C /home/test语法:
ps -aux | grep xxx --查看进程的CPU占用率和内存占用率
ps -ef | grep xxx – 查看进程的父进程ID
显示信息:
UID:用户ID
PID:进程ID
PPID:父进程ID
C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
STIME:进程启动的时间
TTY:完整的终端名称
TIME:CPU时间
CMD:启动进程所用的命令和参数
实操:
[root@linux01 ~]# ps -aux |grep "^root"实操:
[root@linux01 ~]# kill -9 2987 [root@linux01 ~]# killall firefox语法:top【选项】
选项:
-d 秒数 指定top命令每隔几秒更新。默认是3秒-i 使top不显示任何闲置或者僵死进程。-p 通过指定监控进程ID来仅仅监控某个进程的状态。执行上述命令后,可以按P、M、N对查询出的进程结果进行排序。
P 以CPU使用率排序,默认就是此项
M 以内存的使用率排序
N 以PID排序
q 退出top
k 根据进程得id,杀死进程
语法:free 【选项】
选项功能-b以字节为单位显示内存使用情况-k以千字节为单位显示内存使用情况-m以兆字节为单位显示内存使用情况-h以合适的字节显示内存使用情况-t显示汇总结果-s 间隔秒数以指定间隔的秒数,显示内存使用情况-b:
-k:
-m:
-h:
-t:
语法:
netstat -anp | grep 进程号 查看该进程网络信息
netstat -nlp | grep 端口号 查看网络端口号占用情况
选项:
-n 使用数字形式的IP、端口、用户ID、协议、用户等名称信息-l 仅列出有在listen(监听)的服务状态-p 表示显示哪个进程在调用-a 显示处于监听状态和处于非监听状态的socket信息-u 查看udp连接信息-t 查看tcp连接信息实操:
1、通过进程号查看该进程的网络信息
[root@linux01 ~]# netstat -anp | grep 火狐浏览器进程号2、查看某端口号是否被占用
[root@linux01 ~]# netstat -nlp | grep 端口号查看磁盘空间使用情况 ,检查文件系统的磁盘空间占用情况
语法:df 【选项】
选项:
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;语法:du 【选项】【目录】
选项:
-s 指定目录占用大小汇总-h 带计量单位-a 含文件–max-depth=1 子目录深度-c 列出明细的同时,增加汇总值实操:
[root@linux01 ~]# du -ach --max-depth=1 /opt 4.0K /opt/rh 4.0K /opt/software 12K /opt 12K 总用量(1)mbr分区
最多支持四个主分区系统只能安装再主分区扩展分区要占一个主分区MBR最大只支持2TB,但是拥有较好的兼容性(2)gpt 分区
支持无限多个主分区(但是系统可能限制,比如windowns下最多128个分区)最大支持18EB的大容量(EB=1024PB,PB=1024TB)Windowns7 64位以后才支持gpt分区 fdisk -l :查看磁盘分区详情
lsblk -l :查看磁盘分区详情
该命令必须在root用户下才能使用
(1)Linux分区
Device:分区序列
Boot:引导
Start:从X磁柱开始
End:到Y磁柱结束
Blocks:容量
Id:分区类型ID
System:分区类型
查看系统分区情况:
[root@linux01 ~]# fdisk -l Disk /dev/sda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0005a2af Device Boot Start End Blocks Id System /dev/sda1 * 1 39 307200 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 39 2358 18631680 83 Linux /dev/sda3 2358 2611 2031616 82 Linux swap / Solaris对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根目录、一个独立且唯一的文件结构。
Linux中每个分区都是用来组成整个文件系统的一部分,Linux采用一种叫做“挂载”的处理方法,它整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来,要载入的那个分区将使它的存储空间在这个目录下获得。
mount [-t vfstype] [-o options] device dir :挂载设备
umount 设备文件名或挂载点 :卸载设备
(1)挂载光盘镜像文件
[root@linux01 ~]# mkdir /mnt/cdrom/ 建立挂载点 [root@Linux01 ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom/ 设备/dev/cdrom挂载到 挂载点 : /mnt/cdrom中 [root@Linux01 ~]# ll /mnt/cdrom/(2)卸载光盘镜像文件
[root@Linux01 ~]# umount /mnt/cdrom设置开机自动挂载
[root@Linux01 ~]# vi /etc/fstab添加红框中内容,保存退出。
RPM(RedHat Package Manager),RedHat软件包管理工具,类似windows里面的setup.exe
是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。
RPM包的名称格式
Apache-1.3.23-11.i386.rpm
- “apache” 软件名称
- “1.3.23-11”软件的版本号,主版本和此版本
- “i386”是软件所运行的硬件平台,Intel 32位微处理器的统称
- “rpm”文件扩展名,代表RPM包
rpm -qa :查询所安装的所有rpm软件包
rpm -qi :查询安装的软件包的详细信息
由于软件包比较多,一般都会采用grep 过滤。
rpm -qa | grep rpm 软件包
(1)查询firefox软件安装情况
[root@Linux02 Packages]# rpm -qa |grep firefox firefox-45.0.1-1.el6.centos.x86_64 [root@Linux02 Packages]# rpm -qi firefox-45.0.1-1.el6.centos.x86_64(1)rpm -e RPM软件包
(2)rpm -e --nodeps 软件包
(1)卸载firefox软件
[root@Linux02 Packages]# rpm -e firefoxrpm -ivh RPM 包全名
安装firefox 软件
[root@Linux02 Packages]# pwd /media/CentOS_6.8_Final/Packages [root@hadoop101 Packages]# rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm warning: firefox-45.0.1-1.el6.centos.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY Preparing... ########################################### [100%] 1:firefox ########################################### [100%]**YUM(全称为 Yellow dog Updater, Modified)**是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装
yum 选项 参数
(1)采用yum方式安装firefox
[root@Linux02 ~]#yum -y install firefox.x86_64默认的系统YUM源,需要连接国外apache网站,网速比较慢,可以修改关联的网络YUM源为国内镜像的网站,比如网易163。
1.前期文件准备
(1)前提条件linux系统必须可以联网
(2)在Linux环境中访问该网络地址:http://mirrors.163.com/.help/centos.html,在使用说明中点击CentOS6->再点击保存,如图1-164所示
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
(3)查看文件保存的位置
在打开的终端中输入如下命令,就可以找到文件的保存位置。
[root@Linux02 下载]$ pwd /home/jinghang/下载2.替换本地yum文件
(1)把下载的文件移动到/etc/yum.repos.d/目录
[root@Linux02 下载]# mv CentOS6-Base-163.repo /etc/yum.repos.d/ (2)进入到/etc/yum.repos.d/目录
[root@Linux02 yum.repos.d]# pwd /etc/yum.repos.d (3)用CentOS6-Base-163.repo替换CentOS-Base.repo
[root@Linux02 yum.repos.d]# mv CentOS6-Base-163.repo CentOS-Base.repo3.安装命令
(1)
[root@Linux02 yum.repos.d]#yum clean all(2)
[root@Linux02 yum.repos.d]#yum makecacheyum makecache就是把服务器的包信息下载到本地电脑缓存起来
4.测试
[root@Linux02 yum.repos.d]#yum list | grep firefox [root@Linux02 ~]#yum -y install firefox.x86_64service crond restart | start
crontab [选项]
(1)进入crontab编辑界面,会打开vim进行编辑。
* * * * * 执行的任务
项目含义范围第一个“*”一小时当中的第几分钟0-59第二个“*”一天当中的第几小时0-23第三个“*”一个月当中的第几天1-31第四个“*”一年当中的第几月1-12第五个“*”一周当中的星期几0-7(0和7都代表星期日)(2)特殊符号
特殊符号含义*代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。,代表不连续的时间。比如“0 8,12,16 * * * 命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令-代表连续的时间范围。比如“0 5 * * 1-6命令”,代表在周一到周六的凌晨5点0分执行命令*/n代表每隔多久执行一次。比如“*/10 * * * * 命令”,代表每隔10分钟就执行一遍命令(3)特定时间执行命令
时间含义45 22 * * * 命令在22点45分执行命令0 17 * * 1 命令每周1 的17点0分执行命令0 5 1,15 * * 命令每月1号和15号的凌晨5点0分执行命令40 4 * * 1-5 命令每周一到周五的凌晨4点40分执行命令*/10 4 * * * 命令每天的凌晨4点,每隔10分钟执行一次命令0 0 1,15 3 1 命令每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。每月的1号、15号、30号,上午6点30分执行命令将/opt/software中的文件拷贝到/opt/module中
1、进入编辑页面
2、编辑任务
30 6 1,15,30 * * cp -avr /opt/software/* /opt/module(2)特殊符号
特殊符号含义*代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。,代表不连续的时间。比如“0 8,12,16 * * * 命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令-代表连续的时间范围。比如“0 5 * * 1-6命令”,代表在周一到周六的凌晨5点0分执行命令*/n代表每隔多久执行一次。比如“*/10 * * * * 命令”,代表每隔10分钟就执行一遍命令(3)特定时间执行命令
时间含义45 22 * * * 命令在22点45分执行命令0 17 * * 1 命令每周1 的17点0分执行命令0 5 1,15 * * 命令每月1号和15号的凌晨5点0分执行命令40 4 * * 1-5 命令每周一到周五的凌晨4点40分执行命令*/10 4 * * * 命令每天的凌晨4点,每隔10分钟执行一次命令0 0 1,15 3 1 命令每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。每月的1号、15号、30号,上午6点30分执行命令将/opt/software中的文件拷贝到/opt/module中
1、进入编辑页面
2、编辑任务
30 6 1,15,30 * * cp -avr /opt/software/* /opt/module语法:wc [参数] 文件 选项/参数:
-c或–bytes或–chars 只显示Bytes数。-l或–lines 只显示行数。-w或–words 只显示字数。–help 在线帮助。–version 显示版本信息。未完待续……