列出全部文件详细信息(包含隐藏文件)
ls -al
每一级目录下有什么全部显示出来
ls -R
ls * 所有文件
ls a??? 以a开头后面还有三个字符的东东
[abc]* 文件名以abc开头的文件
查看安装包
uname -r
系统磁盘分区情况
df -h
创建空文件
touch xx.txt
创建文件夹
mkdir
空目录删除
rmdir
多级目录创建
mkdir -p ad/ss/ss
一层一层的删除,并且不需要问我是否删除
rm -rf 11
返回家目录
cd
返回上一次目录
cd -
查看文本文件内容
一次查询所有内容
cat 11.txt
less 分页输出
less 11.txt
k-向上一行
j-向下一行
看文件前10行 -5 指定5行
head 11.txt
从文件尾部查看文件 -f 实时读log的情况,动态刷新,监控文件
tail -f
cp拷贝
cp
拷贝目录
cp -r
拷贝(用于备份)时间内容完全一致
cp -p 11.txt 22.txtr
mv 移动文件,改名(同级目录下)
mv 11.txt tools/
mv 11.txt 22.txt
which命令是查找某个命令的完整路径,也就是说他是用来查找可执行文件的,which命令的原理是在当前登陆用户的path环境变量记录的路径中查找。
which ps
whereis 命令是用来快速查找程序的二进制文件、源代码文件和man手册文件的路径。
whereis ps
find命令在指定目录及其子目录下查找符合条件的特定文件。当我们忘了文件位置,可以使用该命令
find 目录名 条件 如不写路径默认为当前目录下查找
目录名起始点
条件用双引号印起来,变量取值的时候用双引号,单引号就是原样输出,特殊字符转译不过来
--name 后面接要查的关键字
--type x 以文件类型作为查询条件。文件类型x如下:
d --- 目录(directory),f---文件(file)
sudo find / -name "passwd"
sudo find /etc -name "passwd"
find -name seq.log
find /etc -name 'pass*'
find /etc -name 'pass*' -type f
grep命令一种强大的文本搜索工具,并把匹配的行打印出来
什么时候用?
查看日志
查看命令输出
在 /var/log/messages文件内查找root,把包含root的所有行都显示出来
大小写敏感 grep支持正则表达式
-i 不区分大小写
grep "root" /var/log/messages
grep -i "root" /var/log/messages
多个install文件中查找
grep 'test' install*
罗列多个文件
grep 'test' aa bb cc
目录中递归搜索
grep 'root' -r /var/log
grep '^test' /car/log/scp.log
grep 'test$' /car/log/scp.log
反选
grep -v 'a$' -r /var/log/
取消正则匹配
grep -F 'a$' -r /var/log/
显示匹配行号
grep -n 'a' /var/log/*.log
find目录下找文件,grep文件里面找内容
vim
查找version
n 向下查找
N向上查找
esc /version
另存为
esc :w filename
显示行号
set nu
set nonu
字符替换
s代表替换
string文件中已经存在的字符串
replace替换成的字符串
g表示每行全部替换
1,$s/string/replace/g
%s/string/replace/g
1,3/string/replace/g
重定向
>> 重定向追加
> 重定向覆盖
标准输出重定向到a.txt
find /etc -name 'password' 2> a.txt
标准错误重定向到a.txt
find /etc -name 'password' 2> a.txt
标准输出,标准错误都写到文件中
find /etc -name 'password' > a.txt 2>&1
监控tail.log 从定向到bug.log
tail -f tail.log >> bug.log
查看进程
ps -ef | grep 'p' > e.txt
-v反选将grep去掉
ps -ef | grep 'gapp' | grep -v 'grep'
配置文件
如何设置环境变量:命令方式、配置文件
(/etc/profile,etc/bashec,~/.bash_profile,~/.bashrc)
etc 下面的配置文件是全局,所有用户都生效
~ /.bash_profile,~/.bashrc 只针对当前家目录下的用户 sq用户修改了root不会受到,root用户修改了sq不受影响
查看环境变量
env
环境变量PATH,决定了shell搜索的路径
输出PATH变量值
echo $PATH
命令行添加path
$PATH相当于把原来命令行里面的值取出来
/home/wgz/hello 需要加入path的路径,加入后在任何位置可直接找到下面的文件
export PATH=$PATH:/home/wgz/hello
创建用户
添加
adduser hack
cat /etc/passwd
hack:x:1001:1001::/home/hack:/bin/sh
删除
userdel -r hack
修改
usermod -s /bin/bash ftpuser
查询当前在线的用户
who
用户身份查询
whoami
查询用户所属组
groups
显示当前用户信息
id
切换用户
将.bash-profile一并带过去
su - wgz
su wgz
文件权限
rwx
r读的权限
w写的权限
x执行的权限
d 文件的类型
第一组rwx 拥有者拥有的权限
第二组rwx 组中的用户没有写的权限
第三组rwx 其他所有用户没有写的权限
drwxr-xr-x 2 wgz wgz 4096 5月 7 13:36 hello
chmod 命令 创建者才有权修改
谁可以改变文件访问权限?Root和Ownner
chmod[who][op][permission] file...
例如:chmod u+x file
who项表示用户类型,他的内容为以下一项或多项
u 拥有者(user---owner)
g 与拥有者同一组的用户(group)
o 其他人(other)
a 所有人(all)
在原有属性上增加或者减少
chmod u-x,g-wx,o-rwx seq.log
chmod u+x,g+wx,o+rwx seq.log
覆盖式
chmod u=rwx,g=rwx,o=rwx seq.log
--- 0
--x 1
-w- 2
r-- 4
-wx 3
r-x 5
rw- 6
rwx 7
755 拥有者有读写执行权限,其余人可执行
644 拥有者有写的权限,其余只能读
777 所有人拥有读写执行权限
chmod 000 1.txt ---------
chmod 755 a.txt
chmod 777 a.txt
修改文件拥有者,所属组
chown jack info/
chown -R haha:haha a.txt
修改文件所属组
chgrp jack test.txt
ps 命令查看进程
不带任何参数,表示同一个用户同一个终端
-ef参数
e表示所有,f表示full-format,尤其是PPID和command内容 ,全格式内容
PPID 父进程
axu参数
ax 表示所有,u表示用户
经常和管道符合用 |
ps -ef | grep 'python'
前台进程一般适合运行比较短,与用户交互的进程
大文件需要长时间运行的,我们会选择后台进程,后台进程会把整个窗口释放出来。
查看后台进程
jobs
后台进程变为前台进程
jobs 查看序号
fg 加序号 转为前台进程
fg 1
ctrl + c结束前台任务
ctrl + z挂起前台任务
在后台进行挂起
fg 1 拉起在前台执行
bg 1 将后台挂起任务运行起来
终止进程
手动终止
kill pid 信号量是15 有的程序会屏蔽掉15的信号,无法杀死
kill -9 pid 信号量是9 程序无法屏蔽
ctrl + c 在终端直接发送信号量杀死
只能是owner和root才能杀死进程
定时任务
linux下面的定时任务
at和crontab
区别
at只能执行一次
crontab周期性的执行
at时间格式
04:00 2019-03-17 2019年3月17号的4点执行
now + 5minutes 5分钟后执行
5pm + 3days 三天后的下午5点执行
at 22:00 today
echo 'dfs' > 1.txt
ctrl+d 跳出任务 ,时间到了会执行任务
at原理:
生成对用的脚本放在目录/car/spool/at/下面
atd去检查执行
查看任务列表 : root用户可以查看所有任务,非root用户只能看自己
atq
删除定时任务
atq 查询编号
atrm 编号 删除定时任务
crontab定时任务
image.png
参数以空格分割,不能缺少参数,星期0-7 ,0和7分别代表星期日
时间间隔实例:
实例1:每一分钟执行一次command
命令:
* * * * *command
实例2:每小时的第3和第15分钟执行
命令:
3,15 * * * * command
实例3:在上午8点到11点的第三和第十五分钟执行
命令;
3,15 8-11 * * * command
实例4:每晚的21:30执行命令
命令:30 21 * * * command
tar 命令
tar -cvf files.tar 123.txt 456.txt 789.txt 打包-文件
tar -cvf file.tar dirl 打包-目录
tar -tvf files.tar 查看包内容
tar -xvf files.tar -C dir l 解开包
c create 创建一个打包文件
v verbose 显示命令执行的信息
f file 后面接文件 打包文件的文件名
t list 列出打包的内容
x extratt 解压
-C 解压到那个目录下去
f放在最后面
tar -xvf test.tar -C ./sss/ss/s/s/
gzip压缩
gzip a.txt c.txt
解压
gzip -d a.txt.gz
目录会进到目录中进行压缩,会把所有文件进行压缩,目录不会进行压缩
gzip -r sss
tar gzip 合用 在tar的基础上进行gzip打包,压缩为更小的文件
tar -zcvf testgz.tar.gz sss c.txt
解压
tar -zxvf testgz.tar.gz
tar -zcvf data.tar.gz file l dl 打包并压缩
tar -zcvf data.tar.gz *.doc 打包并压缩
tar -zxvf pics.tar.gz 解压缩
tar -ztvf data.tar.gz 查看压缩包内容
zip命令 可以和win上通用
压缩一个或多个文件
zip zipName.zip filel dirl
解压
unzip zipName.zip file1 dir1
unzip zipName.zip 解压
linux里安装源码包
以nginx 为例
sudo wget http://nginx.org/download/nginx-1.15.2.tar.gz
配置
./cofigure
编译 转换成二进制可执行文件
make
安装
make install
RPM包安装软件
安装rpm软件包
rpm -ivh rpm软件包名
rpm -ivh xxxx.rpm
i install 安装
v 详细信息
h 安装的进度
删除安装的软件
rpm -qa | grep unix2dos
rpm -e unix2dos
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/unix2dos-2.2-35.el6.x86_64.rpm
rpm -qa | grep unix2dos
rpm -e unix2dos-2.2-35.el6.i686
sentos
yum安装
基于RPM包管理
能够从指定的服务器自动下载RPM包并且安装
可以自动处理依赖性关系,并且一次安装所有的依赖软件包
安装
yum install mysql-server
卸载
yum remove mysql-server
列出已经安装的
yum list installed
ubuntu下apt-get安装
apt-get install xxx
linux 操作系统位数(32位/64位)
uname -r
x86_64 64位
i686 32位
查看网络接口信息
ifconfig
显示ipv4地址
ip -4 add
显示ipv6地址
ip -6 add
检测网络情况
ping -c 10 qq.com
ping qq.com
NETSTAT产看连接端口
netstat -a /显示所有连接中的socket
netstat -t /显示TCP的连接信息(尤其是状态信息)
netstat -I /显示处于listen状态下的socket
netstat -u /显示UDP的连接信息
netstat -n /显示端口数字而不是协议名
netstat -p /显示建立连接的进程信息
netstat -r /显示路由信息
显示本地以22端口连接,远端以ip和随机的端口进行连接
netstat -tan | grep 22
tcp连接的所有的端口,将pid也显示出来
netstat -tanp
显示网络数据包统计信息
ifconfig -s
显示每种网络协议的统计信息
netstat -s
配置ip地址 重启后失效
sudo ifconfig ens33 192.168.18.152 netmask 255.255.255.0
添加多个ip地址
sudo ifconfig ens33:1 192.168.18.153 netmask 255.255.255.0
sudo ifconfig ens33:2 192.168.18.154 netmask 255.255.255.0
修改文件永久生效,配置ip地址
image.png
系统启动的时候就是可用的
ONBOOT
是否生效,yes不用执行service network restart
NM_CONTROLLED=no
DNS也在这里配置,dns 不配置ping域名无法解析
DNS1= 8.8.8.8
重启
做之前先做备份
cp -p ifcfg-eth0 backup-ifcfg-eth0.backup
查看端口占用
lsof命令
查看打开指定文件的进程信息
lsof testopen
查看进程打开的文件
lsof -p 2915
确定端口号是否被占用
lsof -i :9999
ssh连接
ssh root@192.168.13.3
linux主机之间拷贝文件(有方向,从前往后拷贝)
单个文件到远端设备
scp this.txt wgz@192.168.13.1:/home/wgz
多个文件到远端设备
scp this1.txt this2.txt wgz@192.168.13.2:/home/wgz
拷贝目录到远端设备
-r 文件夹
scp -r dir l wgz@192.168.13.2:/home/wgz
从远端设备拷贝文件或目录到本地
将远端的/home/wgz/that.txt文件 拷贝到/home/wgz/adc 本地
scp wgz@192.168.13.2:/home/wgz/that.txt /home/wgz/adc
拷贝远端文件夹到当前目录
scp -r wgz@172.20.10.3:/tmp/logs .
拷贝时注意权限
sentor os
查看已经开放的端口
firewall-cmd --list-ports
开启端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
命令含义:
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
ubuntu
防火墙
清除防火墙规则
iptables -F
开启防火墙
sudo ufw enable
关闭防火墙
sudo ufw disable
添加22端口
sudo ufw allow 22
关闭端口
sudo ufw deny 22
查看端口状态
sudo ufw status
网友评论