> 文档中心 > Linux的一些知识

Linux的一些知识


Linux的一些知识

1. linux RWX 权限的解读

Linux 的权限不是很细致,只有RWX三种。

r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有 浏览目录的权限。

w(Write,写入):对文件而言,具有新增,修改,删除文件内容的权限;对目录来说,具有新建,删除,修改,移动目录内文件的权限。

x(eXecute,执行):对文件而言。具有执行文件的权限;对目录来说该用户具有进入目录的权限。

  1. 目录的只读访问不允许使用cd进入目录,必须要有执行的权限才能进入。
  2. 只有执行权限只能进入目录,不能看到目录下的内容,要想看到目录下的文件名和目录名,需要可读权限。
  3. 一个文件能不能被删除,主要看该文件所在的目录对用户是否具有写权限,如果目录对用户没有写权限,则该目录下的所有文件都不能被删除,文件所有者除外。
  4. 目录的w位不设置,即使你拥有目录中某文件的w权限也不能写该文件。

举个例子,当我们使用 ll 命令时,会把文件的一些权限、最后修改日期、名称等别的信息展示出来,如:

-rwxr-xr-x 1 root root 4096 12月 30 14:58 tmp

Linux 权限模型通过允许给每个文件系统对象设置三种独立的权限级别来工作——它们为文件的所有者、文件的组、以及所有其他用户。

在上述例子中,第一个字段 -rwxr-xr-x 包含该特殊文件的权限的符号表示。该字段中的首字符(-)指定该文件的类型,本例中它是一个常规文件。其他可能的首字符还有:

”d" 目录

“l" 符号链接

”c" 字符专门设备文件

“b" 块专门设备文件

”p" 先进先出

”s" 套接字

该字段的其余部分由三个三元组字符组成。第一个三元字符组代表文件所有者的权限,第二个代表文件的组的权限,第三个代表所有其他用户的权限:

“rwx"

“r-x”

“r-x”

上面,r表示允许读(查看文件中的数据),w 表示允许写(修改文件以及删除),x表示允许”执行“(运行程序)。将所有这些信息放在一起,我们可以发现每个人都能够读该文件的内容和执行该文件,但是只允许文件所有者(root用户)可以以任何方式修改该文件。因此,虽然一般用户可以复制该文件,但是只允许root用户更新或删除它

要查看用户标识,输入 whoami

要查看当前用户属于那一组 输入groups

2. 目录操作

pwd查看当前所在路径clear清除屏幕 快捷键为 ctrl+lcd ~进入当前用户目录cd /进入根目录cd -进入上一次访问的目录cd ..回退到上一级目录
查看目录信息
ls列出当前目录下所有的文件名ll 列出当前目录下所有的文件信息,包含:权限,用户身份,所属于的组,最后修改日期等ls -lrt     表示按修改时间倒序出当前工作目录下的文件。ll -lrt     同 ls -lrtls -l表示按名称顺序正序列出当前工作目录下的文件。ll- l同 ls -l

ls 表示列出当前目录下的文件。后面的 -lrt 是这个命令的一些选项补充, -lrt 实际上是代表了” -l -r -t "这三个选项集合。

  1. -l 表示开启长列表输出,打开了就会输出文件权限、引用及技术、所有者、所属组、文件大小、修改日期和文件名称这些详细的信息。
  2. -t 以时间排序,最新的文件会排在上面。
  3. -r 表示反向排序、倒序输出。
  4. -x 按列输出,横向排序。
  5. -u 按照文件上次被访问的时间排序。

补充:

实际上,ll 是 ls -l 的别名。在Linux发行版中往往可以用alias定义别名。由于 ls-l 命令的别名 ll 使用频繁,所以很多系统默认定义了 ll 这个别名。

在 linux 系统中可 通过 man ls 命令查看ls 命令的用户文档,里面有对ls命令的详细解释。

创建目录
mkdir aaa在当前目录下创建aaa目录,相对路径;mkdir ./bbb在当前目录下创建bbb目录,相对路径;mkdir /ccc在根目录下创建ccc目录,绝对路径;
递归创建目录(会创建里面没有的目录文件夹)
mkdir -p temp/nginx
搜索命令
find / -name 'b'查询根目录下(包括子目录),名以b的目录和文件;find / -name 'b*'查询根目录下(包括子目录),名以b开头的目录和文件;
重命名
mv 原先目录 文件的名称mv tomcat001 tomcat
剪切命令(有目录剪切到指定目录下,没有的话剪切为指定目录)
mv /aaa /bbb将根目录下的aaa目录,移动到bbb目录下。在bbb里,移过来的文件也叫aaa目录;mv bbbb usr/bbb将当前目录下的bbbb目录,移动到usr目录下,并且修改名称为bbb;mv bbb usr/aaa 将当前目录下的bbb目录,移动到usr目录下,并且修改名称为aaa;
复制目录
cp -r /aaa /bbb将/目录下的aaa目录复制到/bbb目录下,在/bbb目录下的名称为aaacp -r /aa /bbb/aaa将/目录下的aa目录复制到/bbb目录下,且修改名为aaa;
强制式删除指定目录
rm -rf /bbb强制删除/目录下的bbb目录。如果bbb目录中还有子目录,也会被强制删除,不会提示;
删除目录
rm -r /bbb普通删除。会询问你是否删除每一个文件

3.文件操作

删除
rm -r a.java删除当前目录下的a.java文件(每次会询问是否删除y:同意)
强制删除
rm -rf a.java 强制删除当前目录下的a.java文件rm -rf ./a*强制删除当前目录下以a开头的所有文件;rm -rf ./*强制删除当前目录下所有文件(慎用);
创建文件
touch testFile
递归删除.pyc格式的文件
find . -name '*.pyc' -exec rm -rf {} \;
打印当前文件夹下指定大小的文件
find . -name "*" -size 145800c -print
递归删除指定大小的文件(145800)
find . -name "*" -size 145800c -exec rm -rf {} \;

递归删除指定大小的文件,并打印出来

find . -name "*" -size 145800c -print -exec rm -rf {} \;
  • "."表示从当前目录开始递归查找
  • " -name '*.exe' "根据名称来查找,要查找所有以.exe结尾的文件夹或者文件
  • " -type f "查找的类型为文件
  • "-print"输出查找的文件目录名
  • -size 145800c 指定文件的大小
  • -exec rm -rf {} \; 递归删除(前面查询出来的结果)
split 拆分文件

split命令:可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等。

b:值为每一输出档案的大小,单位为byte.

-C:每一输出档中,单行的最大byte数。

-d:使用数字作为后缀。

-l:值为每一输出档的行数大小。

-a:指定后缀长度(默认为2)。

4. 文件内容操作(查看日志,更改配置文件)

修改文件内容
vim a.java进入一般模式i(按键)   进入插入模式(编辑模式)ESC(按键)   退出:wq保存退出(shift+: 调起输入框):q!不保存退出(shift+: 调起输入框)(内容更改):q不保存退出(shift+: 调起输入框)(没有内容更改)
文件内容的查看
cat a.java查看a.java文件的最后一页内容;more a.java     从第一页开始查看a.java文件内容,按回车键一行一行进行查看,按空格键一页一页进行查看,q退出;less a.java从第一页开始查看a.java文件内容,按回车键一行一行的看,按空格键一页一页的看,支持使用PageDown和PageUp翻页,q退出;

more和less的区别:

  1. less可以按键盘上下方向键显示上下内容,more不能通过上下方向键控制显示
  2. less 不必读整个文件,加载速度会比more 更快
  3. less 退出后shell 不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容
  4. more不能后退(回退)
实时查看文件后几行(实时查看日志)
tail -f a.java查看a.java文件的后10行内容;
前后几行查看
head a.java查看a.java文件的前10行内容;tail -f a.java 查看a.java文件的后10行内容;head -n 7 a.java查看a.java文件的前7行内容;tail -n 7 a.java查看a.java文件的后7行内容;
文件内部搜索指定的内容
grep under 123.txt 在123.txt文件中搜索under字符串,大小写敏感,显示行;grep -n under 123.txt  在123.txt文件中搜索under字符串,大小写敏感,显示行及行号;grep -v under 123.txt 在123.txt文件中搜索under字符串,大小写敏感,显示没搜索到的行;grep -i under 123.txt 在123.txt文件中搜索under字符串,大小写敏感,显示行;grep -ni under 123.txt 在123.txt文件中搜索under字符串,大小写敏感,显示行及行号;
终止当前操作

Ctrl + cCtrl + z都是中断命令,但是作用却不一样。

ctrl+zctrl+C

Ctrl+Z 就扮演了类似的角色,将任务中断,但是任务并没有结束,在进程中只是维持挂起的状态,用户可以使用fg/bg 操作前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行。

Ctrl+C 也扮演类似的角色,强制中断程序的执行。

重定向功能

可以使用 > 或 < 将命令的输出重定向到test.txt文件中(没有则创建一个)

echo 'hello world' > /root/test.txt

5. 系统日志位置

cat /etc/redhat-release查看操作系统版本/var/log/message系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一/var/log/secure与安全相关的日志信息/var/log/maillog与邮件相关的日志信息/var/log/cron与定时任务相关的日志信息/var/log/spooler与UUCP和news设备相关的日志信息/var/log/boot.log守护进程启动和停止相关的日志消息
查看某文件下的用户操作日志

到达操作的目录下,执行下面的程序:

cat .bash_history

6. 创建与删除软连接

创建软连接
ln -s /usr/local/app /data

注意:创建软连接时,data目录后不加/ (加上后是查找其下一级目录);

删除软连接
rm -rf /data

注意:取消软连接最后没有/ ,rm -rf 软连接。加上/ 是删除文件夹;

7. 压缩和解压缩

tar

在这里插入图片描述

压缩(-c)
tar -cvf start.tar a.java b.java  将当前目录下a.java、b.java打包tar -cvf start.tar ./*  将当前目录下的所有文件打包压缩成start.tar文件tar -zcvf start.tar.gz a.java b.java   将当前目录下a.java、b.java打包tar -zcvf start.tar.gz ./*   将当前目录下的所有文件打包压缩成start.tar.gz文件
解压缩(-x)
tar -xvf start.tar解压start.tar压缩包,到当前文件夹下;tar -xvf start.tar -C usr/local    (C为大写,中间无空格)解压start.tar压缩包,到/usr/local目录下;tar -zxvf start.tar.gz   解压start.tar.gz压缩包,到当前文件夹下 ;tar -zxvf start.tar.gz -C usr/local   (C为大写,中间无空格)    解压start.tar.gz压缩包,到/usr/local目录下;
解压缩tar.xz 文件
tar xf node-v12.18.1-linux-x64.tar.xz
unzip/zip
压缩(zip)
zip lib.zip tomcat.jar将单个文件压缩(lib.zip)zip -r lib.zip lib/将目录进行压缩(lib.zip)zip -r lib.zip tomcat-embed.jar xml-aps.jar    将多个文件压缩为zip文件(lib.zip)
解压缩(unzip)
unzip file.zip解压一个zip格式压缩包unzip -d /usr/app/com.file.zip将'file.zip'包,解压到指定目录下'/usr/app/'

8. Liunx 下文件的详细信息

R:Readw:writex:execute执行-rw-r--r-- 1 root root 34942 Jan 19 2018 bootstrap.jar前三位代表当前用户对文件权限:可以读/可以写/不能执行中间三位代表当前组的其他用户对当前文件的操作权限:可以读/不能写/不能执行后三位其他用户对当前文件权限:可以读/不能写/不能执行
更改文件的权限
chmod u+x web.xml (---x------)为文件拥有着(user)添加执行权限;chmod g+x web.xml (------x---)为文件拥有着所在组(group)添加执行权限;chmod 111 web.xml (---x--x--x)为所有用户分类,添加可执行权限;chmod 222 web.xml (--w--w--w-)为所有用户分类,添加可写入权限;chmod 444 web.xml (-r--r--r--)为所有用户分类,添加可读取权限;

9. 运维常用命令

查看服务器是否可用
ping 192.168.31.100
shutdown(关闭计算机)

shutdown是最常用也是最安全的关机和重启命令,它会在关机之前调用fsck检查磁盘,其中-h和-r是最常用的参数:

-h:停止系统服务并关机-r:停止系统服务后重启

案例

shutdown -h now 立即关机shutdown -h 10:24 到10:24关机,如果改时间小于当前时间,则到隔天shutdown -h+1010分钟后自动关机poweroff立即关机shutdown -r now立即重启shutdown -r +30 'the system will reboot in 30 mins'30分钟后重启并发送通知给其他在线用户reboot立即重启
ping 命令

对 www.baidu.com 发送4个ping 包,检查与其是否联通

ping -c  4 www.baidu.com
netstat命令

netstat命令用于显示各种网络相关信息,如网络连接,路由表,接口状态等等;

列出所有处于监听状态的tcp端口:

netstat -lt

查看所有的端口信息,包括PID 和进程名称

netstat -tulpn
查看当前端口号占用情况
  1. 用于查看某一端口的占用情况
lsof -i:8080
  1. 显示tcp,udp的端口和进程等相关情况
netstat -tunlp
  1. 指定端口号的进程情况
netstat -tunlp|grep 8080
  1. 查看PID进程信息
ps -aux |grep 28990

根据PID,查看JVM中各线程信息('0x9eb’为nid值)

jstack 2246|grep '0x9eb' -A 50
ps 命令

过滤得到当前系统中的ssh 进程信息

ps aux | grep 'ssh'
管道命令

简单来说,Linux 中管道的作用是将上一个命令的输出作为下一个命令的 输入,像 pipe 一样将各个命令串联起来执行, 管道的操作符是 |

管道命令查看当前运行的程序中,名称为java的程序

ps -ef|grep java

查看/etc/passwd文件中的root内容

cat /etc/passwd | grep 'root'

查看当前系统的ip连接(windows和Linux通用)

netstat -an
nohup 让程序在后台运行

将 sh test.sh 任务放到后台,并将打印的日志输出到nohup.out文件中,终端不再能够接收任何输入(标准输入)

nohup sh test.sh &

将sh test.sh 任务放到后台,并将打印的日志输出到test.out 文件中,终端不再能够接收任何输入(标准输入)

nohup sh test.sh >> test.out &

10. yum 常用命令

yum install iptables-services 下载并安装iptables(Linux平台下的防火墙组成部分)yum list列出当前系统中安装的所有包yum search pachage_name 在rpm仓库中搜寻软件包yum update package_name.rpm更新当前系统中所有安装的rpm包yum updata package_name 更新一个rpm包yum remove package-name删除一个rpm包yum clean all删除所有缓存的包和头文件

11. 其他命令

查看历史使用命令
history

过滤与 es 相关命令

history | grep es
查看占用资源
ps -au占用的资源是从进程启动开始,计算的平均占用资源,比如cpu等top实时占用的资源;
查看当前目录所占存储
du -lh查看当前文件下各文件夹占用存储空间du -sh 查看当前文件夹所占存储空间du --max-depth=<目录层数>超过指定层数的目录后,予以忽略。du --max-depth=1  只查看当前目录下文件占用的存储空间
管道命令

根据项目查看进程

ps -ef查看所有的进程ps -ef | grep mysql查看mysql相关的进程

通过进程PID查看所占用的端口号

netstat -nap |grep 进程ID(PID)
查看Linux下系统存储使用率
df -h查看系统硬盘使用情况
杀死进程(根据PID)
kill -9 2630 进程pid

关闭防火墙

service iptables stop临时关闭防火墙chkconfig iptables off 防火墙开机不启动service iptables status 查看防火墙状态

开机启动选项

msconfig查看开机启动选项chkconfig查看开机启动服务列表

查看MySQL服务的程序的状态

service mysql start开启mysqlservicemysql status查看mysql的状态service mysql stop 关闭mysql

松山湖人才网