Linux基本命令

Linux基本命令

linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器内存磁盘驱动器键盘鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。

操作系统

主要作用是管理好硬件设备,并为用户和应用程序提供一个简单的接口,便于使用,作为中间人,连接软件和硬件

Linux文件和目录

linux目录

  • /bin[重点] (/usr/bin、/usr/local/bin)

    是Binarv的缩写,这个目录存放着最经常使用的命令。
    
  • /sbin (/usr/sbin、/usr/local/sbin)

    s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
    
  • /home[重点]

    存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
    
  • /root[重点]

    该目录为系统管理员,也称作超级权限者的用户主目录。
    
  • /boot[重点]

    存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
    
  • /proc

    这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息。
    
  • /srv

    service缩写,该目录存放一些服务启动之后需要提取的数据。
    
  • /sys

    这是linux2.6内核的一个很大的变化。该目录下安装了26内核中新出现的一个文件系线。
    
  • /tmp

    这个目录是用来存放一些临时文件的。
    
  • /dev

    类似于windows的设备管理器,把所有的硬件用文件的形式存储。
    
  • /media[重点]

    linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
    
  • /mnt[重点]

    系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂
    

    载在/mnt/上,然后进入该目录就可以查看里的内容了。d:/myshare

  • /opt

    这是给主机额外安装软件所摆放的目录。如安装ORACLE数据库就可放到该目录下。
    

    默认为空。

  • /usr/local[重点]

    这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序。
    
  • /var[重点]

    这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。
    

    包括各种日志文件。

  • /selinux[security-enhanced linux]360

    SELinux是一种安全子系统,它能控制程序只能访问特定文件。
    

文件和文件夹操作

1
2
#终端命令格式
command [-options] [parameter]

cd

(change diectory) 切换到文件夹

1
2
3
4
5
- cd /home 绝对路径,以根目录开头
- cd admin 相对路径,不以根目录开头,以文件名开头
- cd .. 返回上一级目录
- cd ~ 回到自己家的的目录,/home/damiin
- cd - 返回上一步进入的文件夹

pwd(print work diectory) 查看当前所在文件夹

ls

(list) 查看目录内容

1
2
3
4
5
6
7
- ls  -l 显示详细列表
- ls -lh把文件大小以人性化的方式显示(如比特转换为kb)
- ls -a 显示所有的文件,包含隐藏文件,隐藏文件是以“.”开头的文件
touch .123.txt 创建隐藏文件

- ls -lah
- ls /home la 查看home中隐藏的文件列表

文件权限

1
2
3
drwxrwxr-x  d代表文件夹   -代表文件

rwx(文件拥有者的权限) rwx(文件拥有的组的权限 ) r-x(其他用户的权限)

通配符

通配符 解释
* 代表人任意个字符
代表任意一个字符,至少是一个
[] 掉膘可以匹配字符组中的任意一个
[abc] 匹配abc中的任意一个
[a-f] 匹配a到f范围内的任意一个字符

配合通配符使用

1
2
- ls *txt 查看当前文件夹下以txt结尾的所有文件
- ls 1* 查看以1开头的文件

mkdir

如果有要创建的文件夹重名,不要内需创建

(make diectory) 创建文件夹(相对路径,当前目录下创建文件夹)

1
2
3
4
5
6
7
8
9
10
11
- mkdir /home/admin/(绝对路径)

- mkdir /home/admin 如果上级目录不存在,加上-p自动创建父目录、

- mkdir a b 在当前目录创建多个文件夹

- mkdir a/{c,d}在指定目录下创建多个文件夹

- mkdir .abc 以.开头 创建隐藏目录

- mkdir -p a1/b1/c1/d1 递归创建多个目录

touch

如果文件不存在,创建空文件。如果文件存在,修改文件的末次修改日期

1
2
3
4
5
- touch  abc.txt  在当前目录下创建  如果指定了目录,必须保证上级目录存在

- touch .abc 创建隐藏文件

- gedit abc.txt使用记事本打开文本

rm

删除文件

1
2
3
4
5
6
7
- rm a.txt 删除文件

- rm -r abv 删除目录

- rm -f 强制删除,忽略不存在的文件,没有提示

- rm * 删除当前目录下的所有内容 ,不能删除隐藏文件 . 和 .. 删除不掉

cp

复制

1
2
cp a.txt b.txt
cp ~/Document/readme.txt . #将家目录下的readme文件复制到当前目录中
mer 描述
-a 该选项通常在复制目录时候使用,它保留链接,文件属性,并递归分复制目录,总之保留文件原有的属性
-f 覆盖已经存在的目标文件而且不提示
-i 交互式复制,在覆盖目标文件之前将给出提示要求用户确认
-r 若给出的源文件是目录文件,则cp将递归复制该目录下的所有目录和文件,目标文件必须为一个目录名
-v 显示拷贝进度

mv

移动

1
2
3
- mv 1.txt 2.txt  重命名

- mv 1.txt 目录/2.txt

查阅命令帮助信息

1
2
3
4
5
6
command --help
#例如
rm --help

#或者使用man
man rm

使用man时候操作键

操作建 解释
空格 显示手册下一页
Enter 一次滚动手册的一页
b 回滚一页
r 前滚一页
q 退出
/word 搜索word字符串

其它命令行

重定向

echo

1
echo hello linux #输出命令hello linux

重定向 >>>

1
2
3
4
5
命令/文件 将命令返回的数据写入文件中,若命令没有返回则文件为空
echo hello linux > 1.txt #将hello linux写入文件
ls -lh > 1.txt #将ls查看内容输出到文件中
把命令返回的结果输出到文件中,会覆盖之前的数据,默认情况命令返回的结果是显示在屏幕中
ls >> 1.txt 把命令返回的结果输出到文件中,追加的方式

管道

linux允许一个命令的输出通过管道作为另外一个命令的输入

1
2
3
ls -al/ 显示根目录下的文件
ls -al/ | more 使用more命令分屏显示前面命令返回的结果
ls -al/ | grep D 搜寻根目录文件中含有D的文件

find查找文件

1
2
find /home -name 1.txt 在/home 目录中查找文件名为1.txt的文件
find /home -name '*txt' 在/home 目录中查找以txt结尾的文件

ln 链接


软链接

序号 命令 解释
1 ln -s 被链接的源文件 软链接名 软链接只记住文件名,指向文件名的文件,不会管文件内容,类似快捷方式
1
2
使用软连接时候要使用绝对路径,方便移动文件后链接能够正常使用
sudo ln -s /home/mk310/softlink.txt /home/softlink2

硬链接

和软连接相比少了个 -s选项

1
2
3
4
5
硬链接本身占空间,相当于把源文件复制一份,与源文件同步变化,不能给目录创建硬链接

使用ll查看时,有一个数字在,代表有几个文件能同步发生变化

ln 1.txt 1.hard_link

软连接和硬链接原理


Ubuntu的软件安装apt

  • apt是Advanced Packing Tool,是Linux下的安装包管理工具
  • 可以在终端中安装卸载更新
1
2
3
4
5
6
#安装软件
sudo apt install software
#卸载软件
sudo apt remove software
#更新已经安装的包
sudo apt upgrade

文件内容命令


cat

concatenate(连接合并)查看文件内容

1
2
3
4
5
6
7
8
#显示全部内容
cat 1.txt把文件的内容全部显示到屏幕中
cat 1.txt 2. txt
cat 1.txt 2.txt > 3.txt把多个文件的内容合并到新的文件中
cat -b 1.txt #显示文件内容的行数


more 1.txt #可以分屏显示 适合内容多的 查看操作和man相同

grep文本搜索

LInux系统中grep命令是一个强大的文本搜索工具,grep允许对文本文件进行模式查找,如果找到匹配模式,grep打印包含模式的所有行

1
grep [-选项] '搜索内容串' 文件名 

在grep命令中输入字符串参数时候,最好引号扩起来

1
grep 'a' 1.txt
选项 描述
-v 显示不包含匹配文本的所有行(相当于求反)
-n 显示匹配行及行号
-i 忽略大小写

grep搜索内容串可以是正则表达式

参数 描述
^a 行首,搜寻以a开头的行:grep -n '^a' 1.txt
end$ 行尾,搜寻以end结束的行:grep -n 'end$' 1.txt
[Ss]igna[Ll] 行首行尾忽略大小写
. (点)匹配一个非换行符的字符; 匹配e和e之间有任意一个字符,可以匹配 eee,eae.eve,但是不匹配 ee,eaae; grep -n e.e’ 1.txt

远程管理命令

关机重启

命令 描述
reboot 重新启动操作系统(不需要权限)
shutdown -r now 重新启动操作系统,shutdown会给别的用户提示
shutdown -h now 立刻关机,其中now相当于时间为0的状态
shutdown -h 20:25 系统在今天的20:25关机
shutdown -h +10 系统在输入命令后十分钟自动关机
shutdown -c 取消关机

网卡信息命令

命令 释义 作用
ifconfig configure a network interface 查看和配置网卡配置信息
ping ip ping 检测到目标ip地址的连接是否正常

查看网卡对应的ip地址

ifconfig | grep inet

检测本地网卡是否正常

ping 127.0.0.1

SSh(secure shell)

常见服务端口号列表:

服务 端口号
SSH服务器 22
web服务器 80
HTTPS 443
FTP 21

SSH简单使用

1
ssh [-p port] user@remote
  • uer是在远程服务器上的用户名 ,不指定默认就是当前用户
  • remote是远程机器的地址,可以是ip/域名,或者是别名
  • port是SSH Server监听的端口,如果不指定,默认22
  • 使用exit退出当前用户的登录

ssh免密码登录

1
2
3
4
5
ssh-keygen #在.ssh文件夹下生成id_rsa 和 id_rsa.pub 文件

ssh-copy-id mk310@172.168.0.109 #将授权文件送到远程服务器

#之后不用输入密码就可以登录

配置别名

.ssh/config中追加一下内容:

1
2
3
4
Host nickname
HostName 192.168.0.101
User mk310
port 22

之后可以使用ssh nickname可以直接登录远程服务器

scp

secure copy 远程拷贝命令

1
2
3
4
5
6
7
8
9
10
11
12
#将远程加目录下Desktop/1.py复制到本地目录下
scp -P port user@remote:Desktop/1.py 1.py

#把本地当前目录下的1.py文件复制到远程家目录下的Desktop/1.py
scp -P port 1.py user@remote:Desktop/1.py

#加上-r可以传送文件夹
#把当前目录下的demo文件夹复制到远程家目录下的Desktop
scp -r demo user@remote:Desktop

#把远程家目录下的Desktop 复制到当前目录下的demo文件夹中
scp -r user@remote:Desktop demo

用户权限命令

文件权限

who查看登陆用户信息

用户登录信息

选项 描述
-q –count 只显示用户的登录账号和登录用户的数量
-u –heading 只列标题

chown

修改文件/文件夹所有者

1
sudo chown zhangsan python/ #将python文件所有者换为张三

chgrp

修改文件/文件夹所在组

1
sudo chgrp -R zhangsan python/ #将python文件所在组换为张三,-R对文件夹递归操作

chmod修改文件权限


chmod修改文件权限有两种格式:字母法和数字法

1
字母法:chmod u/g/o/a +/-/= rwx 文件
参数 描述
u user表示该文件的所有者
g group表示与该文件所有者一组的,即用户组
o other表示其他意外的人
a all表示这三者皆是
参数 描述
+ 增加权限
- 减少权限
= 设定权限
参数 描述
r read 表示可以读取,没有r权限非可读
w write可写入权限
x excute可执行权限

数字法

参数 描述
r 代号4
w 代号2
x 代号1
- 代号0,不具备任何权限
1
执行 chmod u = rwx,g = rx,o-f filename 相当于 chmod u = 7,g = 5,o = 4 filename

用户管理命令

创建/设置密码/删除用户

序号 命令 作用 说明
01 useradd -m -g 组新建用户名 添加新用户 -m 自动建立用户家目录 -g指定用户所在的组,否则会建立一个和用户名同名的组
02 passwd 用户名 设置用户密码 普通用户可以直接用passwd修改
03 userdel -r 用户名 删除用户 -r 选项会自动删除家目录
04 cat /etc/passwd |grep 用户名 确认用户信息 新建用户信息保存在passwd文件

查看用户信息

序号 命令 解释
1 id username 查看用户UID和GID信息
2 who 查看当前所有登录的用户列表
3 whoami 查看当前登录用户的账户名

/etc/passwd存放的是用户信息:

  1. 用户名
  2. 密码(x表示加密)
  3. UID
  4. GID(组标识)
  5. 用户全名和本地账号
  6. 家目录
  7. 用户登录使用的Shell

image-20230608223626292

which

查询命令在系统中的保存位置

查找passed命令位置

/etc/passwd是用于保存用户信息的文件

/usr/bin/passwd是用于修改用户密码的程序

binsbin

  • 在linux中大多数可执行文件保存在/bin /sbin /usr/bin /usr/sbin
  • /bin(binary)是二进制执行文件目录,用于具体应用
  • /sbin(system binary)是系统管理员专用的二进制代码存放目录,主要用于系统管理
  • /usr/bin (user commands for applications)后期安装的一些软件
  • /usr/sbin(super user commands for applications)超级用户的一些管理程序

su切换用户

序号 命令 作用 解释
1 su -username 切换用户,并且切换目录 - 可以切换到用户家目录,否则保持位置不变
2 exit 退出当前登录账户

系统信息命令

时间date和cal

序号 命令 解释
1 date 查看系统当前时间
2 cal calendar 查看日历,-y选项可以查看一年的日历

磁盘信息

序号 命令 解释
1 df -h disk free 显示磁盘剩余空间
2 du -h 【目录名】 disk usage显示目录下的文件大小

进程信息

序号 命令 解释
1 ps aux process status 查看进程详细状况
2 top 动态显示运行中的进程并且进行排序
3 kill [-9] 进程代号 种植指定代号的进程 -9表示强行终止

ps默认只会显示当前用户通过终端启动的应用程序

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

压缩命令


tar打包命令(没有压缩)

1
2
3
4
5
6
7
8
打包
tar cvf a.txt *.txt

解包
tar xvf a.tar -C atar

列出出档案内的名称
tar tf tarName.tar

tar很特殊,其参数前面可以使用-也可以不使用

参数 描述
-c 生成档案文档,创建打包文件
-v 列出归档解档的详细过程,显示进度
-f 指定档案文件名称
-t 列出档案中包含的文件
-x 解开档案文件

gzip文件压缩

1
2
3
4
5
压缩打包后的文件
gzip -r tarName.tar

解压缩
gzip -d tarName.tar.gz

tar命令和gzip命令结合

1
2
3
4
一步打包压缩
tar czf name.tar.gz *txt
一步解压缩到指定文件夹
tar xzf name name.tar.gz -C dciName

bzip2文件压缩

1
2
3
4
一步打包压缩
tar cjf name.tar.gz *txt
一步解压缩
tar xjf name name.tar.gz -C dciName

zip unzip 文件压缩

1
2
3
4
压缩文件
zip -r zname *txt
将zname压缩到zz文件夹中
unzip -d zz zname.zip

压缩率:zip<gzip<bzip2,zip最通用


其他命令编辑器Vim