Linux常用技巧分享

Linux/Unix下如何删除具有特殊字符的文件
假设Linux系统中有一个文件名叫“-ee”,如果我们想对它进行操作,例如要删除它
按照一般的删除方法在命令行中输入rm -ee命令,界面会提示我们是“无效选项”(invalid option)

原来由于文件名的第一个字符为“-”,Linux把文件名当作选项了
我们可以使用“–”符号来解决这个问题,输入“rm – -ee”命令便可顺利删除名为“-ee”的文件。

如果是其他特殊字符的话可以在特殊字符前加一个“”符号,或者用双引号把整个文件名括起来。

HEX、DEC、OCT 和 BIN含义如下:

HEX,英文全称 Hexadecimal,表示十六进制。

DEC,英文全称 Decimal,表示十进制。

OCT,英文全称 Octal,表示八进制。

BIN,英文全称 Binary,表示二进制。

netstat: 未找到命令

yum -y install net-tools
netstat -anp #查看linux网络状态

yum -y install gcc make zlib-devel gcc-c++ libtool openssl openssl-devel

netstat -nlpt|grep 80
lsof -i:80
ss -tunlp|grep 80
ps -ef|grep
ps -ef|grep 80
ps -aux |grep

[root@localhost yum.repos.d]# vi docker-ce.repo
[root@localhost yum.repos.d]# pwd
/etc/yum.repos.d

yum install lrzsz

查看linux的架构
arch

查看 Linux 发行版名称
cat /etc/centos-release

查看CPU
查看CPU个数*核心数
cat /proc/cpuinfo | grep “physical id” | uniq | wc -l
查看CPU核数单颗CPU的核心数
cat /proc/cpuinfo | grep “cpu cores” | uniq

cat /proc/cpuinfo # 查看CPU信息

fdisk -l # 查看所有分区

nohup java -jar xxx.jar &

nohup java -jar liwu.jar >./log.txt 2>&1 &

#修改gitlab.rb
vi /etc/gitlab/gitlab.rb

#加入如下
#gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
external_url ‘http://192.168.124.194’
#ssh主机ip
gitlab_rails[‘gitlab_ssh_host’] = ‘192.168.124.194’
#ssh连接端口
gitlab_rails[‘gitlab_shell_ssh_port’] = 9922

让配置生效

gitlab-ctl reconfigure

linux移动文件到另一个文件夹
1.
登录系统 打开linux系统,登录root用户。
2.
输入指令 在终端中输入mv -i指令。
3.
输入文件名 输入源文件名和目标文件名并发送即可。

poweroff (谨慎使用)关闭系统后自动切断系统电源

shutdown -h now,现在立即关机

预定时间关机,或预定时间段内(30分钟)关机,并向所有登录用户发出警告信息。
[root@centos6basicser ~]# shutdown -h 22:11 ‘The System will shutdown at 22:11 tonight, Please save your data as soon as possible.’

[root@centos6basicser ~]# shutdown -h +30 ‘The System will shutdown in 30 mins, Please save your data as soon as possible.’

poweroff (谨慎使用)关闭系统后自动切断系统电源

shutdown -h now,现在立即关机

预定时间重启,或预定时间段内(30分钟)重启,并向所有登录用户发出警告信息。

[root@centos6basicser ~]# shutdown -r 22:11 ‘The System will reboot at 22:11 tonight, Please save your data as soon as possible.’

[root@centos6basicser ~]# shutdown -r +30 ‘The System will reboot in 30 mins, Please save your data as soon as possible.’

shutdown -k,向所有登录用户发出警告信息(仅做提示信息),将在预定时间,或预定时间段内(30分钟)关机,但不会实际关机。

[root@centos6basicser ~]# shutdown -k 22:11 ‘The System will shutdown at 22:11 tonight, Please save your data as soon as possible.’

[root@centos6basicser ~]# shutdown -k +30 ‘The System will shutdown in 30 mins, Please save your data as soon as possible.’

具体命令:

该命令的一般格式: Shutdown [选项] [时间] [警告信息]

命令中各选项的含义为:

  • k 并不真正关机而只是发出警告信息给所有用户

  • r 关机后立即重新启动

  • h 关机后不重新启动

  • f 快速关机重启动时跳过fsck

  • n 快速关机不经过init 程序

  • c 取消一个已经运行的Shutdown

需要特别说明的是该命令只能由Linux超级用户使用。

具体例子:

1、shutdown -r now 关机后重启

2、shutdown -h now 关机后不重启

3、shutdown -r +20 20分钟后重启

4、shutdown -r 20:00 20点钟重启

5、shutdown -h +20 20分钟后关机

6、shutdown -h 20:00 20点钟关机

查看开机自启

systemctl list-unit-files

查处的内容过多,可通过grep 命令进行筛选

systemctl list-unit-files | grep firewalld

最终展现
systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

关闭 selinux:

[root@localhost html]# getenforce #查看selinux状态
Permissive
[root@localhost html]# setenforce 0 #临时关闭
[root@localhost html]# vim /etc/sysconfig/selinux #永久关闭

#SELINUX=enforcing
SELINUX=disabled

[root@localhost ~]# sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: disabled
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31

zip/unzip命令

将所有后缀为.java文件压缩为zip

zip test.zip *.java

将文件夹压缩为zip

zip -r tomcat.zip tomcat

将多个文件压缩为zip

zip -r all.zip tomcat test.txt

解压到当前目录

unzip all.zip

解压到指定目录

unzip all.zip -d /all

后台启动

nohup java -jar livetech.jar >./log.txt 2>&1 &

privileged被引入docker。
使用该参数,container内的root拥有真正的root权限。
否则,container内的root只是外部的一个普通用户权限。
privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。
甚至允许你在docker容器中启动docker容器。

–-network=host
与宿主机共享网络,也就是在网络这块不会与宿主机隔离,而是共享宿主机的网络配置,并且 容器不会分配自己的ip地址
由于不需要端口映射,host网络的性能较高

https://www.jianshu.com/p/93b3088bda83

docker默认每个容器的网络都是独立的,不互通的,和宿主机也是隔离的。
如何互通呢?容器之间可以通过–network 设置相同名称网络,来实现互通,如所有容器都run --network mynet123。
你服务器上安装了mysql,docker里有容器redis,容器nginx还有容器website,和宿主机的mysql怎么互通呢?
为了实现nginx能打开website,website能访问redis和mysql,我们只需要把所有容器的网络都设为和宿主机同处一个网络就行了

使用host
当 docker 容器使用 host 连接方式的时候,容器与宿主共用网络,这样就能从容器中访问宿主网络了
容器中的 localhost 就等于宿主的 localhost 了.
在 docker 命令中使用 --network host 来为容器配置host网络
1、docker run的时候加上–network host

docker run --name website --network=host
docker run --name nginx --network=host
docker run --name redis --network=host
2、docker-compose中使用
docker-compose.yaml文件:
加上network_mode: host

services:
website:
build: . # 指定 Dockerfile 所在路径
restart: always
network_mode: host
判断host模式是否生效
host.docker.internal指向主机ip,如果是127.0.0.1就对了

ping host.docker.internal
注意事项
需要注意的是,因为容器是与宿主机共享网络,并且容器不存在自己的ip, 端口映射不生效, -p,–publish,-P,和–publish-all都将被忽略,并产生一个警告
WARNING: Published ports are discarded when using host network mode
严重警告:host模式主机网络驱动程序仅适用于Linux主机,并且不支持Docker for Mac,Docker for Windows或Docker EE for Windows Server。

r:读取权限,数字代号为"4"。

w:写入权限,数字代号为"2"。

x:执行或切换权限,数字代号为"1"。

使用符号表示权限

u 代表拥有者(user)
g 代表拥有者所在的组群(group)
o 代表其他用户,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
+:为文件或目录增加权限
-:删除文件或目录的权限
=:设置指定的权限
示例:
chomd u+wx test 增加test目录中拥有者可写和可执行的权限
chomd g+wx test 增加test目录中拥有者所在的组群可写和可执行的权限

chmod 777 test 给test这个目录赋予所有人可读可写可执行权限,4+2+1=7。
-rw——- (600) 只有所有者才有读和写的权限
-rw-r–r– (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
-rwx—— (700) 只有所有者才有读,写,执行的权限
-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
-rwx–x–x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
-rw-rw-rw- (666) 每个人都有读写的权限

除了符号,也可以使用八进制数字来指定具体权限,如下表所示:
0:没有任何权限 :—

1:执行权限 :–x

2:写入权限 :-w-

3:执行权限和写入权限:1 (执行) + 2 (写入) = 3 :-wx

4:读取权限 :r–

5:读取和执行权限:4 (读取) + 1 (执行) = 5 :r-x

6:读取和写入权限:4 (读取) + 2 (写入) = 6 :rw-

7:所有权限: 4 (读取) + 2 (写入) + 1 (执行) = 7 :rwx

chmod是 Linux 中权限管理命令change the permissions mode of a file的缩写。

一、为所有 .sh 脚本添加执行权限
chmod u+x *.sh,表示对当前目录下的file.sh文件的所有者增加可执行权限。

u 代表所有者;
x 代表执行权限;

  • 表示增加权限;
    *.sh 表示当前目录下所有 .sh 文件。
    二、为指定 .sh 脚本添加执行权限
    chmod u+x file1.sh,表示对当前目录下的 file1.sh 文件的所有者增加可执行权限。

u 代表所有者;
x 代表执行权限;

  • 表示增加权限;
    file1 表示指定的脚本文件。

解决Kali LinuxVI编辑器无法复制问题

VI是Linux中最常见的文本编辑器。当用户编辑文件时,为了快速输入,
可能会直接复制粘贴内容。但是在Kali Linux中,用户无法直接复制。
进行复制时,将显示“可视”提示。
此时,用户在命令行模式输入:set mouse=v,即可直接复制粘贴内容。

文件复制
参考:http://t.zoukankan.com/Rightsec-p-10413108.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RDZ-hyd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值