首页 > 系统相关 >Linux常用命令

Linux常用命令

时间:2023-10-16 16:38:24浏览次数:37  
标签:文件 file1 grep zip web 常用命令 Linux 目录

一、入门步骤
1、下载安装虚拟机VMware
2、在虚拟机VMware上安装 系统 可以安装任何系统(Windows、Linux、mac 等)
Linux CentOS 做练习
3、[root@ryan ~]# 认识提示符

o	  [用户 @ 计算机名 当前目录] #
o	~ 表示在访问root目录 / 表示根目录
o	# 表示超级用户
o	$ 普通用户

二、常用命令

1、文件和目录

cd /home    进入 '/ home' 目录' 
cd ..       返回上一级目录 
cd ../..    返回上两级目录 
cd 空格      进入个人的主目录 
cd ~        进入个人的主目录 
cd -        返回上次所在的目录 
pwd         显示工作路径 
ls          查看目录中的文件 
ls -F       查看目录中的文件 
ls -l       显示文件和目录的详细资料 
ls -a       显示隐藏文件 
ls *[0-9]*  显示包含数字的文件名和目录名 
mkdir dir1        创建一个叫做 'dir1' 的目录' 
mkdir dir1 dir2   同时创建两个目录 
mkdir -p /tmp/dir1/dir2   创建一个目录树 
rm -f file1    删除一个叫做 'file1' 的文件' 
rmdir dir1     删除一个叫做 'dir1' 的空目录' 
rm -rf dir1    删除一个叫做 'dir1' 的目录并同时删除其内容 
rm -rf dir1 dir2     同时删除两个目录及它们的内容 
mv dir1 new_dir      重命名/移动 一个目录 
cp file1 file2       复制一个文件 
cp dir/* .           复制一个目录下的所有文件到当前工作目录 
cp -a /tmp/dir1 .    复制一个目录到当前工作目录 
cp -a dir1 dir2      复制一个目录 
history              历史命令
history > file.txt   把查看的历史命令写入到file.txt

2、文件的基本类型

image.png
在Linux中第一个字符代表这个文件是目录、文件或链接文档等
当为[ d ]则是目录;
当为[ - ]则是文件;
当为[ l ]则是链接文档(link file);
当为[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
当为[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

3、查看文件内容

cat file        从第一个字节开始正向查看文件的内容 
head -2 file    查看一个文件的前两行 
tail -2 file    查看一个文件的最后两行 
tail -f /var/log/messages    实时查看被添加到一个文件中的内容

more file   查看一个长文件的内容

more命令

more命令类似与cat命令,却比cat命令强大,它以全屏幕的方式按页显示文本文件的内容,
支持vi中的关键字定位操作(特点,一次性加载到内存)。
用法:more [选项] 文件..
   space,z        向下翻页
   b,ctrl+b       向上翻页
   Enter         向下滚动 1 行
   =            显示当前行号
   q,Q            退出more

less命令

less file1 类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作    
   用法:less [选项] 文件..
   -m           显示类似more命令的百分比 
   /搜索内容     n显示下一个匹配的内容位置  N显示上一个匹配的内容位置
   空格键       滚动一页
   z向后一页,b向前一页
   回车键         滚动一行
   [pagedown]    向下翻动一行 
   [pageup]      向上翻动一行
   q             退出

4、文本处理

grep命令

grep命令的常用格式为:grep [选项] "搜索字符串" [文件]
	-E    开启扩展(Extend)的正则表达式
	-i    忽略大小写(ignore case)
	-v    反过来(invert),只打印没有匹配的,而匹配的反而不打印
	-n    显示行号(number)
	-w    (word)被匹配的文本只能是单词,而不能是单词中的某一部分,比如文本中有liker和like,而我搜索的只是like,就可以使用-w选项来避免匹配liker
	-c    (count)显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。
	-o    只显示被模式匹配到的字符串
	--color    将匹配到的内容以颜色高亮显示
	-A n       (after)显示匹配到的字符串所在的行及其后n行
	-B n       (before)显示匹配到的字符串所在行及其前n行
	-C n       显示匹配到的字符串所在行及其前后各n行

1、基本查找命令

grep "ryan" /etc/passwd

image-1660029125797.png

2、反向查找命令

grep -v "ryan" /etc/passwd

image-1660029150837.png

3、展示行号和统计行数(number)

grep -n "ryan" /etc/passwd

image-1660029184318.png

4、搜索到了多少行

grep -c "ryan" /etc/passwd

image-1660029206126.png

5、能环顾四周(before after)

grep -A 10 "ryan" /etc/passwd 
grep -B 10 "ryan" /etc/passwd
grep -C 10 "ryan" /etc/passwd

image-1660029242763.png
image-1660029261523.png
6、正则查找

grep '^ryan' /etc/passwd    搜索/etc/passwd中开头是ryan的行
grep 'bash$' /etc/passwd    搜索/etc/passwd中结尾是bash的行
grep '\<bin\>' /etc/passwd --color    (匹配bin这个词,并高亮显示)
grep Aug /var/log/messages     在文件 '/var/log/messages'中查找关键词"Aug" 
grep ^Aug /var/log/messages    在文件 '/var/log/messages'中查找以"Aug"开始的词汇 
grep [0-9] /var/log/messages   选择 '/var/log/messages' 文件中所有包含数字的行 
grep Aug -R /var/log/*         在目录 '/var/log' 及随后的目录中搜索字符串"Aug" 
cat -n file1     标示文件的行数

5、vi vim编辑器的使用

vim三种模式:命令模式、插入模式、编辑模式。
使用ESC或 i:来切换模式。

:q 退出
:q! 强制退出
:wq 保存并退出
find 搜索文件或目录  find / -name httpd.conf
/ 查看模式下,当前文档里面查找词  /demo
:set nu 查看模式下,显示行号
[Ctrl] + f 屏幕向下移动一页
[Ctrl] + b 屏幕向上移动一页
[0] 或 [Home] 光标移动到当前行的最前面
[$] 或 [End] 光标移动到当前行的末尾
[G] 光标移动到文件的最后一行(第一个字符处)
[nG] n为数字(下同),移动到当前文件的第n行
[gg] 移动到文件的第一行,相当于[1G]
[n[Enter]] 光标向下移动n行
[/word] 在文件中查找内容为word的字符串(向下查找)
[dd] 删除光标所在的一整行

6、文件搜索

find / -name file1    从 '/' 开始进入根文件系统搜索文件和目录 
find / -user user1    搜索属于用户 'user1' 的文件和目录 
find /home/user1 -name \*.bin    在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件 

Locate  命令用来查找文件或目录。 locate命令要比find -name快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/mlocate/mlocate.db ;
新建立的文件,locate是搜索不到的,需要更新数据库(updatedb)

7、用户和群组

image-1660029387275.png

useradd --help       帮助文档
useradd -m user1     创建一个新用户 
Kali创建用户一定要加-m
userdel -r user1     删除一个用户 ( '-r' 排除主目录)  
passwd    修改口令 
passwd user1     修改一个用户的口令 (只允许root执行) 
Whoami      作用:‘我是谁’显示当前登录的用户名,一般用于shell脚本

chsh -s /bin/bash username     将之前创建的用户的默认外壳改成bash

注意关于用户的这三个文件

/etc/passwd 存储用户的关键信息
/etc/group 存储用户组的关键信息
/etc/shadow 存储用户的密码信息

/etc/passwd 记录了所有用户信息(以 :  分隔7个字段),文件内容非常规律,每行记录对应一个用户
image-1660029927511.png

8、Linux中更改文件属性

1、chgrp:更改文件属组(change group)

语法: chgrp [-R] 属组名 文件名 (-R递归更改文件属组)

2、chown:更改文件属主,也可以同时更改文件属组(change own)

语法:
chown [-R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

image-1660029980600.png

文件的权限——使用"+"设置权限,使用"-"取消权限
以三个为一组,且均为【rwx】的三个参数的组合
[r]代表可读(read)
[w]代表可写(write)
[x]代表可执行(execute)

image-1660030016085.png

1、第0位确定文件类型
2、第1-3位确定属主(该文件的所有者)拥有改文件的权限
3、第4-6位确定属组(所有者的同组用户)拥有该文件的权限
4、第7-9位确定其它用户拥有该文件的权限
chmod ugo+rwx directory1   设置目录
        所有者(u)、群组(g)以及其他人(o)
        读(r )、写(w)和执行(x)的权限 
chmod go-rwx directory1     删除群组(g)与其他人(o)对目录的读写执行权限 
chown user1 file1           改变一个文件的所有人属性(拥有者) 
chown -R user1 directory1   改变一个目录的所有人属性并同时改变改目录下所有文件的属性 
chgrp group1 file1          改变文件的群组 (所在组)

三种基本权限
image-1660030299233.png

image-1660030386594.png

Chmod 777 file    用数字的形式改变权限 

赋予文件权限 chmod 
chmod 777 hello.php
chmod 777 demo       单层目录修改权限
chmod -R 777 demo    递归多层目录修改权限
chmod -R 777 demo/*  递归当前目录下多层修改权限

9、打包和压缩文件

打包压缩相关命令
    *** zip 压缩 *** 
    语法: zip 压缩文件名 要压缩的文件 
压缩单个文件
    zip web.zip a.html
    zip web.zip ./a.html
压缩多个文件
    zip web.zip a.html b.html
    zip web.zip ./a.html ./b.html
压缩目录
    -r 是启动递归,将目录下的所有文件全部压缩到web.zip里面
    zip -r web.zip dota
    zip -r web.zip ./dota
从压缩文件里面删除文件
    zip -d web.zip a.html
移动文件到压缩文件里面。注意:会删除源文件的
    zip -m web.zip c.html 
    
    
*** unzip 解压缩 *** 
	语法: unzip 解压缩文件名 
显示压缩文件内所包含的文件
    unzip -l web.zip
    unzip -l ./web.zip
不必先询问用户,unzip执行后覆盖原有文件
    unzip -o web.zip
    unzip -o ./web.zip
指定文件解压缩后所要存储的目录
    unzip -d web web.zip
    unzip -d ./web ./web.zip

压缩文件问题: 为什么有些文件压缩后反而变大了?

首先要明白压缩文件的原理,文件的源代码中有大量重复的数据,如ABABABABABCD如果我们把AB替换成X那么原文可以这样写XXXXXCD然后再后面补充上AB=X这样会间接很多。
但是如果就是ABCD我们按照上面的写法就是XCD AB=X反而比原文长了。
这个AB=X我们叫做词典,一旦一个文件有大量重复的内容:如编程用的EXE文件、文本文档、WORD等等会有很多相同代码,文件的压缩率(缩小后的体积除以原体积)会很小。但是视频、照片则很少有相同的重复代码,所以压缩率很大或者超过100%就是比源文件大的情况
因为有些文件已经压缩过的,经过某些算法几乎无法压缩,同时还要生成压缩文件头,字典等等东西因此会变大。

打包压缩

*** tar: 打包压缩 ***
-c 归档文件
-x 解压缩文件
-z gzip压缩文件
-j bzip2压缩文件
-v 显示压缩或解压缩过程 v(view)
-f 使用档名

语法举例:
tar -cvf abc.tar abc 只打包,不压缩
tar -zcvf abc.tar.gz abc 打包,并用gzip压缩
tar -jcvf abc.tar.bz2 abc 打包,并用bzip2压缩
当然,如果想解压缩,就直接替换上面的命令 tar -cvf / tar -zcvf / tar -jcvf 中的“c” 换成“x” 就可以了

bunzip2 file1.bz2   解压一个叫做 'file1.bz2'的文件 
bzip2 file1         压缩一个叫做 'file1' 的文件 
gunzip file1.gz     解压一个叫做 'file1.gz'的文件 
gzip file1          压缩一个叫做 'file1'的文件 
gzip -9 file1       最大程度压缩

标签:文件,file1,grep,zip,web,常用命令,Linux,目录
From: https://www.cnblogs.com/mr-ryan/p/17767637.html

相关文章

  • Linux部署MySQL过程记录
    一.Linux版本cat/proc/versioncat/etc/redhat-release 二.MySQL安装2.1检查是否已安装MySQLrpm-qa|grep-imysql 2.2解压安装文件到指定文件夹tar-xvf对应mysql的安装包名字.tar-c解压到指定目录下tar-xvfmysql-5.7.43-1.el7.x86_64.rpm-bundle.tar-C......
  • Linux之线程池
    前备知识:互斥锁、条件变量。前面博客有相关知识测试代码。基本思想就是新建若干个线程,统一管理。当需要插入一个任务时,则在线程池里面找一个空闲线程来执行任务。若线程池的所有线程都有任务时,则让任务等待,等有新的线程空闲下来再执行。示例是线程池开辟10个线程,每个线程处理一......
  • linux 安装Apache HTTP Server 2.4.48版本详细教程
    编译前准备首先下载:httpd-2.4,apr-1.4以上,apr-util-1.4以上httpd-2.4.48.tar.gz下载地址:https://downloads.apache.org/httpd/httpd-2.4.48.tar.gzapr-1.7.0.tar.gz下载地址:https://downloads.apache.org/apr/apr-1.7.0.tar.gzapr-util-1.6.1.tar.gz下载地址:https://downlo......
  • Linux中bash、sh、./命令的区别
    之前在centos7上面执行用pyinstaller打包的程序时发现用【bashxxx】无法运行。改用【./xxx】就可以运行。遂百度一波发现了自己之前理解的一个误区,特记录如下。Linux存在多种解释器,以下是常用的几种(下方为原文):bash:这是Bashshell的解释器。当你使用bashscript.sh运行......
  • Build ASP.NET Core applications deployed as Linux containers into an AKS/Kuberne
    原文:https://learn.microsoft.com/en-us/dotnet/architecture/containerized-lifecycle/design-develop-containerized-apps/build-aspnet-core-applications-linux-containers-aks-kubernetesAzureKubernetesServices(AKS)isAzure'smanagedKubernetesorchestrat......
  • yarn的常用命令
    yarn的常用命令:yarn-v//查看yarn版本yarnconfiglist//查看yarn配置yarnconfiggetregistry//查看当前yarn源//修改yarn源(此处为淘宝的源)yarnconfigsetregistryhttps://registry.npm.taobao.org//yarn安装依赖yarnadd包名//局部安......
  • linux中防止误删文件的方法
    目录安装trash-cliautotrash安装trash-cli#更换国内源rambo@debian:~$cat/etc/apt/sources.listdebhttps://mirrors.aliyun.com/debian/bookwormmainnon-freenon-free-firmwarecontribdeb-srchttps://mirrors.aliyun.com/debian/bookwormmainnon-freenon-free-......
  • Linux 建立免密登录关系
    若已有密钥,直接开始第三步!!!在本地机器上生成新的SSH密钥对。打开终端,输入以下命令:ssh-keygen-trsa在生成密钥对的过程中,系统会提示您选择保存密钥的文件路径和设置密码短语(可选择跳过)。按照提示完成操作。在远程服务器上创建.ssh目录(如果不存在)。在终端中输入以下命令:s......
  • 如何使用Linux进行进程调度优化
    如何使用Linux进行进程调度优化WBOY发布:2023-08-0216:13:21原创315人浏览过 如何使用Linux进行进程调度优化随着计算机技术的发展和互联网的普及,对计算机系统的性能要求越来越高。进程调度作为操作系统的重要功能之一,在提高系统性能方面起着重要作用。Lin......
  • Linux内核进程管理与调度:策略优化与实践分析
    Linux内核进程管理与调度:策略优化与实践分析原创 李斌 嵌入式悦翔园 2023-05-0611:40 发表于上海关注★星标公众号,第一时间获取信息嵌入式悦翔园本公众号专注于嵌入式技术,包括但不限于STM32、Arduino、51单片机、物联网、Linux等编程学习笔记,同时,公众号内包含大量......