首页 > 系统相关 >Linux命令总结

Linux命令总结

时间:2023-01-27 16:57:32浏览次数:50  
标签:总结 文件 tar py 用户 命令 Linux 权限 目录

学习Linux终端命令的原因

  • Linux面世时没有图形界面,磁盘操作、文件存取、目录操作、进程管理、文件权限等全部靠命令完成。
  • 大量服务器维护都是在远程通过SSH客户端完成,它没有图形界面,必须通过终端命令完成。
  • Linux发行版本有二百多个命令,但常用的只有十多个。

终端命令格式

command [-options] [parameter]

command:命令名,响应功能英文单词或单词缩写;[-options]:选项,可用来对命令进行控制,也可以省略,[parameter]:传给命令的参数,可以是一个、零个、多个

[]代表可选

查询终端命令

command --help

man command

image
man是manual的缩写,操作键包括:

空格——显示下一屏;Enter——一次滚动手册页的一行;b(back)——回滚一屏;f(forward)——前滚一屏;q(quit)——退出;/word——搜索word字符串。

常用Linux命令的使用

序号 命令 详情 作用
1 ls list 查看当前文件夹下内容
2 pwd print work directory 查看当前所在文件夹
3 cd [目录名] change directory 切换文件夹
4 touch [文件名] touch 如果文件不存在,新建文件
5 mkdir [目录名] make directory 创建目录
6 rm[文件名] remove 删除指定文件名
7 clear clear 清屏

rm只能删除文件,rm -r+[目录名]删除目录

Linux区分大小写,文件目录切换等操作务必写对

文件和目录常用命令

ls cd touch rm mkdir cp mv cat more grep echo > >> |

ls

-a

list,以.开头的文件为隐藏文件,ls -a查看包含的所有文件(包括隐藏文件)

.代表当前目录,..代表上级目录

image

-l(以列表形式显示文件的详细信息)、-h(配合-l以人性化的方式显示文件大小)

文件夹:蓝色;文件:白色,显示创建时间、日期、占用资源大小,纵向显示,文件夹第一列是d,文件是-

image
image
ls -l -h==ls -lh(终端命令的选项可以分开、组合,顺序随意)

ls -lha(列表显示包括隐藏文件在内的文件)

注:隐藏文件是保存安装软件隐藏内容的。

ls通配符

目录中文件很多,精确的定位到某个文件

一些特殊的符号,可以代表其它的字符

*——代表任意多个字符;?——代表任意一个字符;[]——匹配字符组
image

cd

change directory

返回用户家目录:cd和cd ~ cd . cd .. cd -(在最近两次目录之间来回切换)

image
image

相对路径和绝对路径

绝对路径最前面是/或者~,表示从根目录/家目录开始的具体目录位置

相对路径表示相对当前目录所在的目录位置

image

touch

如果文件不存在,创建空白文件;如果文件已经存在,修改文件末次修改日期。

image

mkdir

-p:连续创建工作目录

另,Linux中,文件名、目录名均不能重复

image

rm

rm直接将文件从磁盘删除,不能恢复

-r:递归删除目录下的内容

-f:强制删除,不会有任何提示,即使没有这个文件也不会提示

以通配符删除也可以rm -r *1.txt/rm -r *

拷贝和移动命令

tree

以树状图列出目录结构
image

tree [目录名]

tree -d只显示目录,不显示文件
image

cp

cp 源文件 目标文件

如果文件名不需要发生改变,只需要指定目标路径就可以

文件内容查看命令

cat

cat 文件名

concatenate(连接合并) 查看文件内容、创建文件、文件合并、追加文件内容

一次性显示文件中的所有内容,适合查看内容少的文本文件

-b 对于非空输出行,前面都有一个行编号

-n 对输出的所有行,前面都有一个行编号

more

more 文件名

more分屏显示文件内容,适合查看内容较多的文本文件

与man命令很像,空格——显示下一屏;Enter——一次滚动手册页的一行;b(back)——回滚一屏;f(forward)——前滚一屏;q(quit)——退出;

grep

grep 搜索文本 文件名

grep 搜索文本文件内容,显示包含文本的行内容,-n,显示行及行号,-v显示不包含匹配文本的所有行(取反),-i(忽略大小写)

允许对文本文件进行模式查找,^a(行首),k$(行尾),搜索以a开始的行,搜索以k结束的行

其他命令

echo与重定向

在终端显示参数指定的文字,一般与重定向联合使用

重定向>(输出) >>(追加)

将本应显示到终端上的内容输出/追加到指定文件

echo heool python > a:路径下出现文本文件a,其中的内容是heool python

ls -lh > a :将命令执行的结果直接写入文本文件a,>会把文件原有的内容完全覆盖掉

echo heool python >> a:追加到文件末尾

ls >> a :将命令执行的结果直接追加到文本文件a

可以使用echo在创建文件的同时指定文件内容,或者将太长的执行结果放入文本文件中

touch只能创建,不能写入

管道命令|

一个命令的输出可以通过管道作为另一个命令的输入,左端写,右端读

执行并输出结果、接收输出结果

more(分屏显示)和grep(查询文本)

例如,分屏显示查询的结果:
image
image

远程管理命令

关机/重启

shutdown 选项(默认关机,-r重新启动) 时间(不指定时间,一分钟之后关闭,mow表示现在),取消关机计划 -c,在今天某个时间关机 shutdown 22:30 ,再过十分钟关机shutdown +10

注意:在日常远程维护服务器时,最好不要关闭系统,而应该重新启动系统

查看或配置网卡信息

网卡是专门负责网络通讯的硬件设备(连接网线的硬件设备,有线网卡/无线网卡(WIFI))

IP地址是设置在网卡上的地址信息,通过地址信息可以唯一标识一个网卡,电脑之间就可以正常通讯。

把电脑比作电话,网卡相当于SIM卡,IP地址相当于电话号码。

IP地址是唯一的,不能冲突

ipconfig (configure a network interface) 查看/配置计算机当前的网卡配置信息
image
image
127.0.0.1一般用来测试本机网卡是否正常

用管道快速过滤

ping ip地址 (ping) 检测到目标ip地址的连接是否正常

检测本地 ping 本地环回地址

也可以接收域名作参数
image
ping一般用于检测当前计算机到目标计算机之间的网络是否通畅,数值越大,速度越慢

原理:网络上的及其都有唯一确定的ip地址,我们给目标ip地址发送一个数据包,对方就要返回一个数据包,根据返回的数据包以及时间,我们可以确定目标主机的存在。

远程登录和复制文件

首先在服务器安装ssh服务器软件,在自己的电脑安装ssh客户端软件,就可以通过网络远程登录到服务器对服务器进行管理维护。(只有Windows不会默认安装)

windows安装putty或者xshell

ssh客户端是一种使用Secure Shell(SSH)协议连接到远程计算机的软件程序。

优点:数据是加密的,防止信息泄露;数据传输是压缩的,可以提高传输速度。

(1)域名和端口号

域名:用点分隔的名字 www.baidu.com 就是ip地址的别名,方便用户记忆,可以通过ip地址找到计算机,也可以通过域名找到计算机。

例如,ping www.baidu.com 可以看到的ip地址是110.242.68.3,就是百度的ip地址

端口号:通过ip地址找到计算机,通过端口号找到计算机上运行的应用程序,然后才可以看到访问结果,如果没有指定端口,就用默认端口。

ssh服务器默认端口:22

web服务器:80

HTTPS:443

FTP服务器:21

(2)ssh客户端的简单使用

ssh [-p port]user@remote

user:远程机器上的用户名,默认当前用户

remote:远程机器地址,ip/域名/别名

port:ssh server监听的端口,默认22

ssh chang@192.168.247.128

sudo shutdown -r now(不加sudo提示没有权限,加了意思是超级用户操作)

断开连接exit

(3)scp

secure copy,远程拷贝文件命令

scp -P port 01.py user@remote:Desktop/01.py

把本地01.py复制到远程机器

scp -P port user@remote:Desktop/01.py 01.py

把远程机器文件复制到本地

-r选项可以传送文件夹

scp -r demo user@remote:Desktop

scp -P user@remote:Desktop demo

windows下,xftp进行文件交换,也可以是filezilla,可以直接拖拽

ssh高级

关于ssh的所有信息都在家目录下的.ssh目录下

第一次连接陌生主机,授权之后,连接信息保存到ssh目录下的一个konw_host文件,下一次连接不会再提示授权。

免密码登录:在ubuntu执行两个命令

1、ssh-keygen,生成ssh钥匙,生成加密使用的文件id_rsa、id_rsa.pub保存到.ssh目录下 2、ssh-copy-id -p port user@remote,上传公钥到服务器,可以让远程服务器记住这个公钥

非对称加密算法

id_rsa是私钥、id_rsa.pub是公钥

使用公钥加密的数据,需要使用私钥解密;

使用私钥加密的数据,需要使用公钥解密。

ssh-copy-id是把公钥文件复制到服务器,公钥在服务器,私钥在本地,进行数据传输时,从客户端发送数据到服务器,在客户端使用私钥进行加密,把加密之后的数据通过网络传送给服务器,服务器端通过公钥解密。服务器使用公钥加密,客户端使用私钥解密。

配置远程计算机的别名:windows直接xftp

用户权限相关命令

基本概念

用户和权限

  • Linux系统必须有一个账号,对不同的系统资源有不同的使用权限。

  • 可以指定每一个用户针对不同文件或目录的不同权限

  • 权限包括:

    1. 读,r,4
    2. 写,w
    3. 执行,x

:预先针对组设置权限,将不同的用户添加到对应的组中,组中的每一个用户都具有相同的权限。

ls -l中,-表示文件,d表示目录,后面跟了三组权限,第一组表示文件/目录的拥有者,就是第三列,第二组表示用户对应的组的权限,就是第四列,最后一组表示其他用户的权限。第二列表示硬链接数,就是可以访问到当前目录/文件的方式。
image
文件访问:绝对路径,硬链接数通常为1
image
目录访问:绝对路径/当前路径中cd ./从子目录cd..访问,子目录越多,硬链接数目越多。目录的硬链接数取决于它有多少的子目录。
image
image
image

权限修改chmod

chomd +/-(增加/减少权限)rwx(可以任意组合) 文件名/目录名

会看ls -l前面的标记
image
image
执行权限:
image
目录权限修改:

目录如果没有可执行权限,就不能执行终端命令。

如果没有可读权限,就不能查看目录下面的文件内容。

如果没有可写权限,就不能修改目录中的内容
image
image

超级用户

  • Linux中,root通常用于系统的维护和管理,对操作系统的所有资源具有访问权限.但是出于误删等的考虑,大多数不推荐直接使用root账号登录系统

  • 在Linux安装过程中,系统会自动创建一个用户账号,这个默认用户就称为“标准用户”(只能在自己家目录下操作,不能修改与系统设置相关的文件)。

sudo

  • 标准用户想要执行系统维护和管理命令时,在命令前添加

  • su→substitute user,表示使用另一个用户的身份,预设身份为root,

  • 用户使用sudo,先输入密码,之后有五分钟有效期限,超过期限必须重新输入密码

组管理

创建/删除组的终端命令都要通过sudo执行。

groupadd/groupdel 组名(增加/删除组)

cat /etc/group (确认组信息)

chgrp -R 文件/目录名(递归修改文件/目录的所属组)
image
image
sudo groupdel sev

查看文件,末尾没有了,删除成功
image

用户管理

添加新用户

1、添加新用户

useradd -m -g 组名 新建用户名

-m自动建立用户家目录并设置对应的权限;-g指定用户所在的组,如果不指定,会建立和用户同名的组

2、设置用户密码

passwd 用户名

注:所有用户家目录都保存在home文件夹下,用户信息保存在\etc\passwd中。
image
image
如果不指定密码,就无法进行远程登录
image
如果不指定-m,系统不会建立相应用户名的家目录,如果忘记添加,最好的办法就是删除用户重新创建,否则赋予权限等会非常麻烦。

sudo useradd -g dev lisi
image
3、删除用户

userdel -r 用户名 -r会自动删除用户家目录

image

记得加上suodo,否则文件中lisi的信息不会删除

但是cat查看会去掉了lisi一行

4、查看用户信息

id [用户名]

查看用户代号(/etc/passwd)和组代号(/etc/group)信息
image
image
不指定用户名的情况:
image
image

who 查看当前所有登录的用户列表

时间表示上一次开机的时间

whoami 我是谁,显示当前登录用户的账户名
image
4、用户主组与附加组设置

usermod -g 组 用户名 #修改主组

usermod -G 组 用户名 #修改附加组

usermod -s /bin/bash #修改用户登录Shell

主组:在新建用户时指定,在passwd的第四列gid对应的组

附加组:通常指定用户的附加权限
image
image
修改用户附加组:sudo usermod -G sudo zhangsan,group文件中sudo一行:

21 sudo:x :27:chang,zhangsan

需要重新退出zhangsan用户再登录才能生效

$ sudo useradd -m -g dev wangwu
$ cat -n /etc/passwd 
结果:52	wangwu:x:1003:1001::/home/wangwu:/bin/sh

登录使用的shell,即为登陆之后使用的终端命令,ubuntu默认是dash(一个软件),在xshell使用不方便,还有一种是bash

 zhangsan@chang-virtual-machine:~$ 
 $

image

5、which查看命令所在位置

/etc/passwd只是用户保存用户信息,不可执行;/usr/bin/passwd用于修改用户密码程序
image

bin和sbin的区别

 /bin:二进制执行文件目录,binary,用于具体应用
 /sbin:系统管理员专用二进制代码存放目录,用于系统管理,system binary
 /usr/bin:后期安装的一些软件,user commands for applications
 /usr/sbin:超级用户的一些管理程序,super user commands for applications

6、su切换用户

当前用户可能不能满足权限要求,使用exit返回之前的用户(上一级)

su - 用户名(-可以切换目录)(不加用户名切换到root,但是因为root权限很多,这样使用不安全)

image
7、文件权限修改

chown:修改拥有者;chgrp:修改组;chmod:修改权限。
chown 用户名 文件名|目录名
chgrp -R 组名 文件名|目录名    -R递归修改
chmod -R 755 文件名|目录名
#三个连续数字分别表示文件/目录的拥有者、组用户、其他用户的权限
chomd +/-(增加/减少权限)rwx(可以任意组合) 文件名/目录名

image

sudo chown zhangsan python学习/

image

用户的可读可写可执行权限分别是r w x ,代表的数字分别是4 2 1 
chmod 754 01.py
chmod 640 01.py
chmod -R 775 test

系统信息

方便远程维护使用的

  • 时间和日期

date:查看系统时间

cal:calendar查看日历,-y可以查看一年的日历

2023年 01月 26日 星期四 19:51:18 CST
image

  • 磁盘信息

df -h :disk free显示磁盘剩余空间

du -h[目录名]:disk usage显示目录下的文件大小,-h可以人性化的显示文件大小
image
image

  • 进程(当前正在执行的一个程序)信息

ps aux process status查看进程的详细状况

默认只显示当前用户通过终端启动的应用程序,不需要使用-带选项,

a 显示所有进程,包括其他用户的进程
u 进程的详细状态
x 没有控制终端的进程

image

top 动态显示运行中的进程并排序

q退出top
image

kill [-9] 进程代号

终止指定代号的进程,-9表示强行终止,注意不能随意使用,系统很多启动时默认开启的进程,否则可能导致系统崩溃。

其他命令

  • 查找文件find

    find[路径] -name "*.py"

    路径默认当前路径

    find Desktop/ -name "*.txt"

    find -name '*.py'

  • 软链接(快捷方式)

    ln -s 被链接的文件 链接文件

    • 没有-s建立的是硬链接

      链接的源文件删除不会影响链接的文件。

      在Linux中,文件名和文件数据分开存储,软链接文件中保存的是链接到源文件的完整路径,通过这个路径可以查找到文件数据。硬链接就是文件的另外一个文件名。

      在使用中,几乎不会使用到硬链接。

      ln /home/chang/Desktop/aa/b/c/01.py 01_hard
      
      

image
源文件必须使用绝对路径,方便移动链接文件后,仍然能够正常使用
image
image

  • 打包和压缩
Windows----rar
Mac--------zip
Linux------tar.gz
#打包与解包
#注意:tar只负责打包,不负责压缩
打包:tar -cvf 打包文件.tar 被打包的文件
解包:tar -xvf 打包文件.tar
tar -cvf py.tar 01.py 02.py 03.py(多个文件可用空格)
#压缩与解压缩
#gzip
gzip压缩tar打包后的文件,得到文件的扩展名是.tar.gz
tar中加-z可以调用gzip
tar -zcvf py.tar.gz 0*.py
tar -zxvf py.tar.gz
#bzip2
bzip2压缩tar打包后的文件,得到文件的扩展名是.tar.bz2
tar中-j可以调用bzip2
tar -jcvf py.tar.bz2
tar -jxvf py.tar.bz2 -C bz2/
#-C
解压缩到指定目录,但是目标目录必须是存在的,否则会报错
chang@chang-virtual-machine:~/Desktop$ tar -jxvf py.tar.bz2 -C bz2/
tar: bz2:无法 open: 没有那个文件或目录
tar: Error is not recoverable: exiting now

image

  • 软件安装
#使用apt(Advanced Packaging Tool)安装或卸载软件,它是Linux下的一款安装包管理工具,可以在终端方便的安装、卸载和更新
$ sudo apt install 软件包
$ sudo apt remove 软件名
$ sudo spt upgrade
#更新已经安装的包
---------------------------
sudo apt install sl
sudo apt install htop
#使用的软件没有安装时,一般系统会给出提示
---------------------------
#设置软件源
#软件源
ubuntu提供有主服务器,保存有所有可以通过apt安装程序的软件安装包,apt安装时,首先在主服务器查找是否有此软件的安装包,下载到本地后执行安装,这个主服务器也叫软件源,提供所有软件安装的源头。
#镜像源
让用户从服务器上能够更加快速地下载软件,所有服务器的内容是相同的,只是所在位置不同。

image

其他

快捷键使用:

Ubuntu终端字体:ctrl+shift+=(放大字体)

ctrl+-(缩小字体)

Linux区分大小写

自动补全:Tab键
image
上下光标在曾经使用过的命令切换

退出选择ctrl+C

复制粘贴分别为ctrl shift +C/V

总结

跟着bilibili学习了Linux命令,安装的ubuntu(以前不懂虚拟机的时候接触过,稀里糊涂安装在了本机,然后非常费劲的卸载了,当时很讨厌来着,但是因为一些原因现在又要去学),以前用centos有老师教过,但是很多都忘了,而且很多命令没有解释,详细地学了一遍,花的时间有点长(太懒了),幸好以前安装的xftp和xshell没有卸载可以直接使用(当时用不知道啥意思,现在要去系统地学一下了,内心OS:欠的债迟早是要还的),学的都是一些基础的命令,对于一些选项有了基础的了解,受益匪浅,继续努力。

标签:总结,文件,tar,py,用户,命令,Linux,权限,目录
From: https://www.cnblogs.com/chang-xiaotong/p/17069019.html

相关文章

  • linux文件权限命令学习
    ls命令可以查看Linux系统上的文件、目录和设备的权限。上述ls-l命令中显示的第一列就是文件权限信息,共11位字符,分5部分。第1位表示存档类型,d表示目录,-表示一般文件。......
  • QQZone4 -总结
    Servlet+thymeleaf的java开发“套路”:拷贝myssm包新建配置文件applicationContext.xml或者可以不叫这个名字,在web.xml中指定文件名在web.xml文件中配置:配......
  • 使用 Winget 命令在 Windows 上安装焰火十二卷(Rickrack)
    Winget是微软推出的一款安装包管理工具,使用户能够在命令行下寻找、安装、升级、删除和配置应用程序。这里以安装焰火十二卷(Rickrack)为例,演示了Winget的使用流程。寻找......
  • SQL Server 统计信息理解(总结)
    前言Sqlserver查询是基于开销查询的,在首次生成执行计划时,是基于多阶段的分析优化才确定出较好的执行计划。而这些开销的基数估计,是根据统计信息来确定的。统计信息其实就是......
  • Python_argparse_读取命令行参数
    argparse模块是Python内置的用于命令项选项与参数解析的模块,可以方便地读取命令行参数。参考代码如下#1.导入模块importargparsedefformat_parser():#......
  • linux基础2
    目录linux基础2昨日问题说明今日内容概要今日内容详细前期必备知识系统运行命令快捷命令方式目录结构相关命令文件与文件夹相关命令文件编辑命令编辑相关快捷方式vim简介异......
  • leveldb在Windows和Linux上编译
    leveldb在Windows和Linux上编译 LevelDB是Google传奇工程师JeffDean和SanjayGhemawat开源的KV存储引擎(而非SQL),它是一种非关系型数据库。leveldb只有一层,即objects,也即key......
  • Linux PM QoS framework(2)_PM QoS class
    1.前言回顾上一篇文章(LinuxPMQoSframework(1)_概述和软件架构),PMQoSframework抽象出4个系统级别的QoSconstraint(统称为PMQoSclass),分别是cpu&dmalatency、network......
  • bash: redis-server: 未找到命令...
    2023-01-27今天使用xshell连接linux中的redis数据库时,出现的该问题“ bash:redis-server:未找到命令...”使用redis-server/root/myredis/redis.conf命令,连接数......
  • Linux PM QoS framework(3)_per-device PM QoS
    1.前言per-devicePMQoS是针对指定设备的QoSframework,背后的思考如下:1)resume_latency在RuntimePM的框架下,当device的引用计数减为0的时候,RPM会suspend该device。不......