美文网首页
linux基本操作

linux基本操作

作者: 清水秋香 | 来源:发表于2020-05-08 22:20 被阅读0次

列出全部文件详细信息(包含隐藏文件)

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

相关文章

网友评论

      本文标题:linux基本操作

      本文链接:https://www.haomeiwen.com/subject/alegghtx.html