Linux学习积累
- 1. Permission denied
- 2. 创建新用户
- 3. 修改用户密码
- 4. 切换用户
- 5. 修改默认root用户的密码
- 6. 为特定用户添加sudo命令权限
- 7. 挂载远程文件系统(mount remote filesystem NFS)
- 8. 一些基本的命令提示‘command not found’
- 9. error while loading shared libraries
- 10. Linux开启ssh服务
- 11. 修改ssh的最大连接并发数
- 12. Linux 解压
- 13. Linux中的复制命令
- 14. 查看Linux内核版本的命令
- 15. 拦截TCP数据包
- 16. 查看内存数据
- 17. 限制进程(process)能够打开的最大文件数
- 18. root Login
- 19. 根据进程名字杀进程
- 20. 修改yum的仓库
- 21. yum被其他进程占用
- 22. 安装deb文件
- 23. 安装RPM文件
- 24. 将deb文件装换成rpm
- 25. 删除非空文件夹
自己用到过和遇见过得命令和异常陈列,基本是Ubuntu之类的界面和操作系统。
Permission denied
sudo chmod -R 777 dell
此命令设置所有用户都有权限访问这个文件夹,其中777=111111111
。
##如何安装bin文件
sudo chmod u+x name.bin
这个命令给予这个bin文件读写的权限
sudo name.bin
这个命令执行安装
创建新用户
sudo adduser <username>
修改用户密码
sudo password <username>
或者sudo passwd <username>
切换用户
su <username>
输入密码后就切换到对应的user了
su - <username>
这个命令会把当前设置的环境变量也带过去
修改默认root用户的密码
如果安装时候直接设置了自己的用户名,那么root用户的密码就会是随机的(Ubuntu默认不开放root用户)。
sudo passwd
之后按照提示输入密码就可以修改root用户的密码了
为特定用户添加sudo命令权限
有些用户没有运行sudo的权限,执行sudo的话会提示username is not in the sudoers file
修改sudoers文件可以解决这个问题
1 | $ su -root ## 切换root用户` |
挂载远程文件系统(mount remote filesystem NFS)
- 实现本机的文件系统可以被别的机器挂载
1.1. 安装nfs服务器
sudo apt-get install nfs-kernel-server
1.2. 修改权限配置文件
vi /etc/exports
根据其中的范例添加你想要共享出去的文件目录(mount point)
1.3. 重启服务使得配置生效
1 | $sudo /etc/init.d/portmap restart |
1.4. 你可以使用 showmount -e
命令查看共享成功的文件系统
- 挂载命令
sudo mount -t nfs localhost:/home /mnt
其中-t nfs 可以省略,会使用默认支持的nfs文件类型挂载。
一些基本的命令提示‘command not found’
(这个问题一般会出现在redhat 红帽系统中)
例如输入命令:ifconfig
显示bash: ifconfig: command not found
可能是路径问题,如果然后输入/sbin/ifconfig
就会显示IP地址等信息。
那么解决办法是
执行cat ~/.bash_profile
看自己的PATH,然后再执行:gedit /etc/profile
在最后一行后面添加:
PATH=$PATH:sbin
export PATH=$PATH:/sbin
保存退出。
然后在初始化一下:source /etc/profile
你再直接输入:ifconfig
就会直接显示IP等信息了
error while loading shared libraries
error while loading shared libraries:****** :cannot restore segment prot after reloc: Permission denied。
网上查了一下,原因是selinux的问题,selinux的设置太过严格导致的。解决的办法是在root用户下,修改/etc/selinux/config 文件
把SELINUX=enforcing 改成 SELINUX=disabled。
然后,保存关闭,重启机器就可以了。
Linux开启ssh服务
- 开启服务执行 /etc/init.d/sshd start
- 如果还是不能连接,尝试关闭防火墙
- 输入 setup
- 在弹出界面选择firewall
- 选择 no firewall。
修改ssh的最大连接并发数
- 打开文件进行编辑 : vi /etc.ssh/sshd_config
- 找到 MazStartups 去掉注释,并且修改大最小和最大的数值。
- 重启ssh服务,可以尝试以下命令(不同内核)
- sudo systemctl restart sshd
- /etc/rc.d/init.d/sshd restart
- service sshd restart
Linux 解压
- tar
- 解压: tar xvf fileName.tar
- 打包: tar cvf vffileNametar dirName
- .gz
- 解压: gunzip FileName.gz
- 解压: gzip -d FileName.gz
- 打包: gzip FileName dirName
- .tar.gz 和 .tgz
- 解压: tar zxvf FileName.tar.gz
- 打包: tar zcvf FileName.tar.gz DirName
- .xz
- 解压
xz -d
- 解压
tar -xvJf
- 打包
xz -z
- 解压
- .war
- 解压
unzip file.war
- 解压
jar -xvf file.war
- 打包
zip
- 打包
1
2
3
4
5
6
7
8
9
10
11jar -cvfM0 game.war ./
-c 创建war包
-v 显示过程信息
-f
-M
-0 这个是阿拉伯数字,只打包不压缩的意思
- 解压
Linux中的复制命令
cp -rf source_dir target_dir
查看Linux内核版本的命令
- 命令: uname -a, 查看系统内核版本号及系统名称
- 命令: cat /proc/version, 查看目录”/proc”下version的信息,也可以得到当前系统的内核版本号及系统名称
拦截TCP数据包
tcpdump -i <interface> host <monitoredhost> -c 300 -w tcpdump.log
拦截指定interface和host的通讯,300个数据包后停止,并且会把拦截到的数据包存储到tcpdump.log里面。使用wireshark可以打开输出的文本进行分析。
查看内存数据
$ cat /proc/meminfo
限制进程(process)能够打开的最大文件数
ulimit -n 1024
Linux 系统默认是1024,这个数值并不是一个对系统性能影响很大的数值。所以你大可以放心的去调节这个参数,而无需考虑太多的性能问题。之所以存在,是为了提供一个方法限制一个程序打开文件的数量,可能更多的考虑是在于安全性和限制权限。当你的程序遇到这个上限的时候,可以使用ulimit -n
命令去提高上限。提高多少,你只需要根据你的程序需求去判断。如果不是内存很紧张的系统,你可以尽量的提高这个上限值。
当然额外的还需要注意这个上限不是无限的,你可能还会受系统内核的限制。
root Login
由于安全原因,部分系统禁止root用户直接使用ssh远程登陆。可以先用非root的帐户,登陆到ssh后,su成为root。如果想直接用root登陆,则修改如下配置文件vi /etc/ssh/sshd_config
找到其中的如下一行,将前边的#符号去掉,并修改no为yes#PermitRootLogin no
根据进程名字杀进程
kill -9 $(pidof 进程名关键字)
修改yum的仓库
在/etc/yum.repos.d/
目录下增加一个name.repo
文件:
1 | [centos] |
之后运行
yum repolist
yum被其他进程占用
安装deb文件
1 | dpkg -i name.deb |
安装RPM文件
1 | yum -ivh name.rpm |
将deb文件装换成rpm
1 | yum install alien |
删除非空文件夹
rm -r folder