1.cd命令
cd ..是返回上一层目录,
cd -是返回到上一次的工作目录,例:开始在~目录下,进入/usr/local,cd -则到~下,再按cd -则到/usr/local中
2.ls [参数] [路径]
ls -lt按时间倒序排
ls-ltr按时间顺序排
ls -a 显示隐藏文件
ls -lrt /home/ 按时间顺序显示/home目录下所有文件
3.cat命令
查看小文件内容
cat -n xx.txt 加上-n参数会在前面显示行号,进行排序
4.more命令
more xxx.txt 查看大文件内容,按空格键翻页,回车键查看下一行
5.head命令
head -n xx 查看文件前多少行
6.tail命令
tail -n xx 查看文件后多少行
tail -f xx动态查看后多少行,用来查看日志
7.touch命令
touch xxx 创建一个空文件
8.mkdir命令
mkdir xxx 创建目录
mkdir -p /usr/xd/xd 递归创建目录
9.rmdir命令
rmdir xxx 删除目录
10.cp命令
cp xxx.txt /usr/local/ 拷贝文件到目录下
cp 123.txt /usr/local/456.txt 复制文件到local下并改名
cp -a 123.txt /usr/local 权限一并复制
11.mv命令
移动或更名现有的文件或目录。
mv 123.txt 345.txt 改名
mv 123.txt /usr/local 移动剪切
mv 123.txt /usr/local/456.txt 移动并改名
12.rm命令
rm 987.php 删除文件(有提示)
rm -rf 456.txt 强制删除,递归删除
13.diff命令
diff 123.txt 456.txt 对比文件差异
14.ssh命令
ssh 192.168.1.11切换到另外一台服务器用于局域网测试环境机器切换
exit:退出,切回原先的机器
15.id命令
id查看当前用户信息
16.uname命令
查看系统信息
uname -a 查看详细的系统信息,内核,系统等等
17.man命令
查看帮助文档,比较重要的一个命令,忘了某些命令的用法直接用这个就可以查看了
man ls 查看ls命令的用法以及哪些可用参数等等
18.clear命令
清屏 相当于ctrl+l
19.who命令
查看当前登录用户的信息,包括当前用户,当前机器有哪几个在登录着,以及登录者的ip
20.uptime命令
查看登录信息
09:15:41 up 16:54, 3 users, load average: 0.00, 0.01, 0.05
09:15:41 表示当前时间
up 16:54 表示当前机器连续运转了16小时54分时间
3 users 表示当前有3个用户登录这台机器
load average: 0.00, 0.01, 0.05 1分钟的负载,5分钟的负载,15分钟的负载
21.free命令
查看内存使用情况
free -m 以M显示
free -g 以G显示(不准确)
free -h 比较人性化的显示大小,加上M或者G单位
Mem:实实在在的内存
Swap:交换空间,简单来说就是当实际内存不够的时候,系统会向硬盘借用空间充当内存
22.grep命令
查找文件里符合条件的字符串
grep '119.4.253.206' 123.txt 查找123.txt文件中所有119.4.253.206
grep -n '119.4.253.206' 123.txt -n:输出行数 输出123.txt文件中119.4.253.206行数
grep -w '113.66.107.198' 123.txt -w:精确匹配
grep -v '113.66.107.198' 123.txt -v:取反
grep -i '113.66.107.198' 123.txt -i:忽略大小写
这些参数是可以组合使用
23.find命令
基本用法:find 路径 选项
在实际生产中最好不要从/开始查询,因为比较耗费性能,最好目录写具体一点
-type --->根据文件类型
f表示的文件,d表示的是目录
例:
find /var/log -type f -name "*.log";----->找出/var/log目录下文件名字以.log结尾的文件
find /var/log -type d ------->找出/var/log目录下所有的目录
-name --->根据文件名
find /var/log -type f -name "*.log"
-perm --->根据文件权限
find /var/log -perm 600 -type f -name "*.log"--------->找出/var/log目录下权限为600以log结尾的所有文件
-user --->根据文件所属主
find /var/log -user XD
高级用法:exec
find /var/log -type f -name "*.log" -exec wc -l {} \; ----->把find命令每一次的结果传递到{}中然后执行wc -l命令统计出每个文件有多少行
; --->可以执行多条命令
\ --->转义符,\;就表示转义这个;使得这条命令结束
{} -->把find命令匹配到的每一次结果传递给{}
-exec --->执行
例:
find /var/log -type f -name "*.log" -exec cp -a {} /home/test \; ------>将find命令查找出的内容包括权限拷贝到/home/test目录下
-mtime --->根据文件的变更时间来查找;-n表示更改时间距离现在n天以内;+n表示更改时间距离现在n天以前
例:
find /var/log -mtime -2 -name "*.log" -exec ls -lrt {} \; ---->查找/var/log 目录下两天内被修改过的.log文件并按时间正序展示
find /var/log -mtime +2 -name "*.log" -exec ls -lrt {} \;
24.uniq命令
统计命令
uniq -c 123.txt 对123.txt中内容进行统计
uniq -c 123.txt | sort -n 对排序好的内容进行统计
25.df命令
df -h 文件系统的磁盘使用情况统计。
tmpfs是不存在于实体硬盘上的,是存在内存中的,当服务器断电或者重启的时候,tmpfs的内容都会消失
26.netstat
查看网络端口的使用情况
举 例:
netstat -tunlp | grep nginx 查看nginx是否开启以及占用端口还有进程Id
-t :显示tcp端口
-u :显示UDP端口
-n :指明拒绝显示别名 不加就会显示别名,不会显示实际端口
-l :指明listen的
-p :指明显示建立相关连接的程序名
安装netstat命令:yum -y install net-tools
27.hostname命令
查看主机名
28.linux进程管理命令之ps -ef与ps aux详解
ps -ef | more
UID PID PPID C STIME TTY TIME CMD
root 2 0 0 Jul30 ? 00:00:00 [kthreadd]
root 3 2 0 Jul30 ? 00:00:06 [ksoftirqd/0]
root 5 2 0 Jul30 ? 00:00:00 [kworker/0:0H]
root 7 2 0 Jul30 ? 00:00:04 [migration/0]
root 8 2 0 Jul30 ? 00:00:00 [rcu_bh]
root 9 2 0 Jul30 ? 00:00:00 [rcuob/0] root 10 2 0 Jul30 ? 00:00:00 [rcuob/1]
UID:用户ID
PID:进程ID
PPID:父进程号(也就是该进程的主进程的进程号)
C:CPU的占用率
STIME:进程的启动时间
TTY:TTY终端
TIME:进程执行起到现在总的CPU占用时间
CMD:启动这个进程的命令
ps aux | more
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2 0.0 0.0 0 0 ? S Jul30 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Jul30 0:06 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< Jul30 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S Jul30 0:04 [migration/0]
root 8 0.0 0.0 0 0 ? S Jul30 0:00 [rcu_bh]
USER:哪个用户启动了这个命令
PID:进程的ID
%CPU:CPU的占用率
%MEM:内存的使用率
VSZ:如果一个程序完全驻留在内存中一共需要使用多少内存空间
RSS:进程当前占用了多少内存
TTY:tty终端
STAT:表示当前进程的状态(S#处于休眠的状态;D#不可中断的状态 ;Z#僵尸进程 ;X#死掉的进程)
START:启动这个命令的时间点
TIME:进程执行起到现在总的CPU占用时间
COMMAND:启动这个进程的命令
ps 与grep 常用组合用法,查找特定进程
举 例:
ps -ef | grep nginx
ps -aux | grep nginx
29.top命令
功能说明:监控Linux系统状况,比如cpu、内存的使用
top -p Pid 查看具体进程的内存使用情况,具体参数的使用可以使用man命令查看
30.du命令
统计大小
du -sh 统计当前目录下所有文件大小的和,加了*则是各个文件的大
du -sm * 统计当前目录下各个文件的大小,m参数是以兆为单位,不足1m以1m算
31.centos7防火墙
防火墙:主要用户信息安全防护,主要有软件防火墙和硬件防火墙。firewalld防火墙是软件防火墙
在centos7 之前默认采用的防火墙是iptables,而在centos 7则是采用firewall,firewalld是一个服务,firewall理解为服务的一个功能
查看firewalld服务状态
systemctl status firewalld
开启、重启、关闭firewalld服务
开启:systemctl start firewalld.service
关闭:systemctl stop firewalld.service
重启:systemctl restart firewalld.service
禁止firewall开机启动:systemctl disable firewalld.service
防火墙随系统开启启动:systemctl enable firewalld.service
查看firewall防火墙的状态
firewall-cmd --state
查看防火墙开放端口规则
firewall-cmd --list-port
开放80端口
firewall-cmd --permanent --add-port=80/tcp (--permanent永久生效,没有此参数重启后就失效)
加载生效开放的端口
firewall-cmd --reload
查询指定端口80是否开放
firewall-cmd --query-port=80/tcp
验证80端口是否开放:
netstat -tunlp |grep 80查看端口是否在监听着
然后开另外一台机器,使用telnet 192.168.1.35 80命令测试端口的防火墙是否开放
必须要保证测试端口处于LISTEN状态,不然也是telnet不通的
安装telnet命令:yum -y install xinetd telnet telnet-server (确认联网状态)
安装netstat与ifconfig命令:yum -y install net-tools(确认联网状态)
关闭80端口
firewall-cmd --remove-port=80/tcp
32.cal命令
cal 2010 查看2010年的日历
33.|
管道符:将前面的输出结果输出传输给后面
比如 cat /123.txt |grep root ,就是先查看123.txt文件的内容,将结果传递给grep命令,通过grep命令查看有没有包含root的
;
代表的是可以执行多条命令 cat /etc/passwd | grep root ; ls -lrt
&&
前面的命令执行成功的话,后面的才可以执行成功;前面的命令执行失败的话,后面的不可以执行
||
前面的命令执行成功的话,后面的不可以执行;前面的命令执行失败的话,后面的可以执行
34.date命令
date "+%Y-%m-%d %H:%M:%S" 格式化显示日期
date -s "2020-10-1 22:00:00" -s参数:修改时间
date -d yesterday "+%Y-%m-%d %H:%M:%S" -d参数:显示指定日期的前一天
date "+%w" 查看星期几
date命令可以用在shell脚本中,命名日期日志等等
35.xshell按del删除键出现^H删除不掉,按ctrl+backspace就可以删掉了
36.vim编辑器:
按esc键进入命令行模式,操作快捷键如下:
$(shift+4) :移动到这一行的行尾
gg:移动到文档第一行行首
G(shift+g):移动到文档最后一行行首
x:删除内容,删除一个字符
dd:删除游标所在的那一整行
u:还原上一步的操作
v:按住v移动上下左右箭头选中范围,按y即复制
p:将复制的内容粘贴
在命令行模式下输入:则进入底行模式,常用操作如下:
n:n为数字。光标移动到第n 行
/:寻找内容(比较重要,特别常用)
%s/word1/word2/g:从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2
n1,n2s/word1/word2/g : n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代 为 word2
set nu:显示行号
set nonu:取消行号
q!:强制离开不保存
wq:离开并保存
wq!:强制离开并保存
!:暂时离开。也就是:!可以输入命令,等于在外层就行操作,可以继续回到vim命令下,例如:!ls /usr/local/zookeeper
37.linux的用户管理与组管理
关于用户的相关配置文件:
账号信息:/etc/passwd
密码信息:/etc/shadow
passwd文件相关解释如下:
test :x :1000 :1000 : :/home/test :/bin/bash
用户 密码占位符 UID GID 用户描述 用户家目录 登录后使用的shell解释
/sbin/nologin :是不可登录的
/bin/bash :可以登录
添加用户命令:useradd
-u --->指定用户UID
-d --->指定用户主目录
-g --->指定用户所属组
-r --->指定用户是系统用户
-s --->用户登录shell解释器
-M --->不创建家目录
eg:创建一个用户XD,指定UID为1010,指定家目录为/home/XD ,指定所属组为root组,指定登录shell
为/bin/bash
useradd -u 1010 -d /home/XD -g root -s /bin/bash XD
useradd不指定参数则uid和gid都是上一个用户+1,不加-M则默认家目录就是在/home/下面加上用户名
su XD:切换到XD用户
root用户后面跟的是#,普通用户跟的是$
exit:退出当前用户
删除用户命令:userdel
-r:连同家目录一块删除
添加用户组命令:groupadd
删除用户组命令:groupdel
修改用户的信息命令:usermod
-u #指定用户UID
-d #指定用户主目录
-g #指定用户所属组
设置用户密码命令passwd
1.passwd XD
2.echo "123456" | passwd --stdin XD
38.文件属性以及权限操作
文件的属性:ls -lrti
1 2 3 4 5 6 7 8
135088935 -rw-------. 1 root root 1778 Oct 1 2020 yum.log
第1列:i节点;i节点可以理解文件id,一个i节点号可以对应多个文件,一个文件只能对应一个i节点号
第2列:-rw------- 文件的类型与权限
第一个 -
-:代表的是文件;d#代表是目录; l #软链接文件 ;b #代表块设备;c #代表的是硬件设备(键盘)
除了第一个-后面的 rw------- 分为三列 rw- --- ---,第一列为所属者的权限,第二列为所属组的权限,第三列为其它的权限
r:表示读权限 ;w:表示写权限;x:表示执行权限
另外一种方式:
4:表示读权限 ;2:表示写权限;1:表示执行权限
第3列:有多少文件名链接到这个节点
第4列:文件的所有者
第5列:文件的所有组
第6列:容量大小,单位默认为B
第7列:创建或最近修改的时间
第8列:文件名
修改文件的权限命令chmod:
例:
chmod u+x,g+w,o+w boot.log
chmod u-x,g-w,o-w boot.log
chmod 777 boot.log
u表示所属者,u+x表示给这个文件的所属者可执行的权限
g表示所属组,g+w表示给这个文件的所属组可写的权限
o表示其他的权限,o+x表示给这个文件的其他写的权限
u-x表示删除所属者的可执行权限
g-w表示删除所属组的写权限
777表示的是rwxrwxrwx,因为4表示的r,2表示的是w,1表示的x,加起来正好是7
746表示的是rwxr--rw-权限。。。依次类推
-R --->递归的意思
chmod -R 777 /home/XD/*
修改文件的所有者跟所属组命令chown:
-R --->递归的意思
eg:更改文件目录XD 的所属者为root用户 跟 所属组为XD组,以:分割 chown -R root:XD XD
39.telnet命令
telnet命令:主要用于测试到某台机器的某个端口是否畅通
telnet这个命令是依赖于 xinetd服务于telnet-server服务
telnet命令的安装:yum -y install xinetd telnet telnet-server (确认联网状态)
telnet命令用法:
telnet IP地址 端口
应用场景:测试某个端口是否畅通
40.scp命令的用法
用于服务器之间的文件或者文件目录拷贝
用法1:从本机拷贝文件到别的机器 scp 本机文件的存放路径 root@服务器IP:服务器目标路径
eg:从192.168.72.128这台机器的/root/VMwareTools-10.2.0-7259539.tar.gz文件拷贝到 192.168.72.129的/root/下
scp /root/VMwareTools-10.2.0-7259539.tar.gz root@192.168.72.129:/root/ ----->root@表示到129机器的root用户
用法2:从别的机器拷贝文件到本地目录 scp root@服务器IP:服务器目标路径 本机文件的存放路径
eg:从192.168.72.129这台机器的/root/VMwareTools-10.2.0-7259539.tar.gz文件拷贝到 192.168.72.128的/root/下
scp root@192.168.72.129:/root/VMwareTools-10.2.0-7259539.tar.gz /root/
- r参数:递归的作用(可以拷贝目录)
eg: scp -r vmware-tools-distrib root@192.168.72.129:/root/
41.给命令设置别名
临时设置别名: alias vinet='vi /etc/sysconfig/network-scripts/ifcfg-ens33'
查看别名: alias
取消临时别名: unalias vinet
永久设置别名:
vi /root/.bashrc alias
vinet='vi /etc/sysconfig/network-scripts/ifcfg-ens33'
加载使立即生效: source /root/.bashrc
42.处理海量数据之sed命令
sed的应用场景:主要对数据进行处理(选取,新增,替换,删除,搜索)
sed语法:sed [选项][动作] 文件名
常见的选项与参数:
-n #把匹配到的行输出打印到屏幕
p #以行为单位进行查询,通常与-n一起使用
eg:df -h | sed -n '2p'
d #删除 eg: sed '2d' df.txt
a #在行的下面插入新的内容 eg: sed '2a 1234567890' df.txt
i #在行的上面插入新的内容 eg: sed '2i 1234567890' df.txt
c #替换 eg: sed '2c 1234567890' df.txt
s/#要被取代的内容
/#新的字符串
/g #指定内容进行替换
eg: sed 's/0%/100%/g' df.txt
-i #对源文件进行修改(高危操作,慎用,用之前需要备份源文件)
eg: sed -i 's/0%/100%/g' df.txt---->将df.txt文件的0%修改为100%
搜索:在文件中搜索内容
eg:cat -n df.txt | sed -n '/100%/p'---->以行号显示df.txt文件内容传给sed命令,以行的形式搜索出100%的内容打印在屏幕上
-e #表示可以执行多条动作
eg:cat -n df.txt | sed -n -e 's/100%/100%-----100%/g' -e '/100%-----100%/p'
43.常见的符号:
> #会覆盖原有的内容
>> #不会覆盖原有的内容
; #执行多条命令
| #管道符
&& #前面的命令执行成功,后面的才可以执行
|| #前面的命令执行失败,后面的才可以执行
"" #会输出变量值
'' #输出本身
`` #输出命令结果 eg:a=`date`;echo $a
2>/dev/null #错误输出到无底洞
1>/dev/null #正确输出到无底洞
eg:cat >123.txt,将将要输入的内容覆盖到123.txt
eg:ls -rt |grep test1.sh > 345.txt 将ls的内容传给grep命令匹配出shell.sh覆盖到345.txt
eg:cat shell.sh>123.txt ,将shell.sh的内容覆盖到123.txt
""可以输出变量值,''里面写的是什么就是什么。``里面可以添加命令执行
44.处理海量数据之cut命令
cut应用场景:通常对数据进行列的提取
语法:cut [选项]...[file]
-d #指定分割符
-f #指定截取区域
-c #以字符为单位进行分割 注意:不加-d选项,默认为制表符,不是空格
/bin/bash #代表可以登录的用户
/sbin/nologin #代表不可以登录的用户
-d与-f
eg: 以':'为分隔符,截取出/etc/passwd的第一列跟第三列 cut -d ':' -f 1,3 /etc/passwd
eg: 以':'为分隔符,截取出/etc/passwd的第一列到第三列 cut -d ':' -f 1-3 /etc/passwd
eg: 以':'为分隔符,截取出/etc/passwd的第二列到最后一列 cut -d ':' -f 2- /etc/passwd
-c
eg: 截取/etc/passwd文件从第二个字符到第九个字符 cut -c 2-9 /etc/passwd
eg:比如领导想叫你截取linux上面所有可登陆普通用户 grep '/bin/bash' /etc/passwd | cut -d ':' -f 1 | grep -v root
cut命令不加-d参数截取就是按照制表符进行截取,制表符就是tab这个键