Linux常用命令

Linux命令大全

$ docker run -it alpine
/ # ls  
bin    dev    etc    home   lib    media  mnt    opt    proc   root   run    sbin   srv    sys    tmp    usr    var
/ # cd ..
/ # pwd
/
/ # root
/bin/sh: root: not found
/ # cd ~  				# 切换文件夹
~ # pwd					# 查看当前所在文件夹
/root
~ # mkdir test			# 创建文件
~ # ls
test
~ # rm ./test/
rm: './test' is a directory
~ # rm -rf ./test/		# 删除文件  强制删除
~ # ls
~ # vi 123.txt			# 创键文件
~ # vi 456.txt
~ # ls					# 查看全部的文件
123.txt  456.txt
~ # find 123.txt        # 查找文件
123.txt
~ # find 1*				# 模糊查找
123.txt
~ # cat 123.txt				# 查看文件名123.txt 的内容
hello world
my name is hao
15090393189
~ # grep "hello" *			#  以文件内容进行查找
123.txt:hello world
~ # grep "1509" *
123.txt:15090393189
~ # grep "1" *
123.txt:15090393189
~ # diff  -w 123.txt 456.txt		# 比较文件的不同
--- 123.txt
+++ 456.txt
@@ -1,3 +1 @@
-hello world
-my name is hao
-15090393189
+
~ # cat 456.txt					# 查看文件名123.txt	

~ # tail 123.txt				# 从文件的尾部进行查看
hello world
my name is hao
15090393189
~ # head 123.txt				# # 从文件的头部进行查看
hello world
my name is hao
15090393189
~ # ps							# 查看进行的进程
PID   USER     TIME  COMMAND
    1 root      0:00 /bin/sh
   30 root      0:00 ps
~ # kill 30						# 杀死进程id为30的进程
sh: can't kill pid 30: No such process
~ # netstat						# 
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node Path
~ # free						# 查看资源的使用
              total        used        free      shared  buff/cache   available
Mem:        1013200       88140      466196      287988      458864      639568
Swap:       1190736           0     1190736
~ # free -m						# 查看资源 单位M
              total        used        free      shared  buff/cache   available
Mem:            989          86         455         281         448         625
Swap:          1163           0        1163
~ # df -h						# 查看硬盘的使用 第一行
Filesystem                Size      Used Available Use% Mounted on
overlay                  17.8G    171.5M     16.7G   1% /
tmpfs                    64.0M         0     64.0M   0% /dev
tmpfs                   494.7M         0    494.7M   0% /sys/fs/cgroup
shm                      64.0M         0     64.0M   0% /dev/shm
/dev/sda1                17.8G    171.5M     16.7G   1% /etc/resolv.conf
/dev/sda1                17.8G    171.5M     16.7G   1% /etc/hostname
/dev/sda1                17.8G    171.5M     16.7G   1% /etc/hosts
tmpfs                   494.7M         0    494.7M   0% /proc/asound
tmpfs                   494.7M         0    494.7M   0% /proc/acpi
tmpfs                    64.0M         0     64.0M   0% /proc/kcore
tmpfs                    64.0M         0     64.0M   0% /proc/keys
tmpfs                    64.0M         0     64.0M   0% /proc/timer_list
tmpfs                   494.7M         0    494.7M   0% /proc/scsi
tmpfs                   494.7M         0    494.7M   0% /sys/firmware
~ #
clear	清屏

1. vi: not found报错

(21条消息) Docker—(6)问题:bash: vi: command not found_IT云清-CSDN博客_found

apt-get install vim
# 若报: E: Unable to locate package vim
# 则
apt-get update
apt-get install vim

Linux指令

ls -a # 获取文件列表  
ls -al filename # 展示文件当前的权限 湖区filename下文件的权限列表 ,默认的时当前文件下的
chmod -R 777 filename  # 修改filename的权限 -R 表示递归的修改filename下的所有文件的权限

mkdir directory  # 创建文件夹
pwd 			 # 打印当前文件路径
cd directory	 # 进入文件

touch file		 # 创建一个文件,
cat file 		 # 从头开始查看文件
tac file 		 # 倒着查看文件

nl [-bnw] file   # 带行号的显示文件 -ba 空行显示行号, -bt不显示
				 # -n ln :行号在荧幕的最左方显示;
                 # -n rn :行号在自己栏位的最右方显示,且不加 0 ;
				 # -n rz :行号在自己栏位的最右方显示,且加 0 ;
				 # -w 行号栏位的占用的位数。
                     
head/tail -n 行数 filename      # 从头部或尾部查看文件  -n s
rmdir -p 		 # 递归删除文件
rm -rf 			 # -rf 递归强制删除
find / -name filename  # 在指定的 /  下面查找文件filsename

du -sh file     # 估算文件所使用的磁盘空间
du -sk * | sort -rn  # 以容量大小为依据一次显示文件和目录的大小

df -h dirname   # 查看磁盘的使用 第一行 ,diraname 文件名,默认全部
free 			# 查看资源的使用(Kb)  -m 以Mb为单位返回结果

45 个常用Linux 命令,让你轻松玩转Linux! - 掘金 (juejin.cn)

1. find

find path -option [ -print ] [ -exec -ok command ] {} \ ;
# path 无 使用当前的路径  
expression:
    -mount, -xdev 只检查和指定目录在同一个文件系统下的文件, 避免列出其他系统下的文件
    -amin n 在过去n分钟内__被读取过__的
	-anewer file 比文件file 更晚__被读取__过的文件 
	-atime n 在过去n天内被读取过的文件
    -cmin n 在过去n分钟内被修改过的文件
    -cnewer file 比文件file更晚__被修改过__的文件
    -ctime n 在过去n天被修改过的文件
    -empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
	-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
	-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
	-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示kilo bytes,w 是二个位元组。
	-type c : 文件类型是 c 的文件。
	d: 目录
	c: 字型装置文件
	b: 区块装置文件
	p: 具名贮列
	f: 一般文件
	l: 符号连结
	s: socket
	-pid n : process id 是 n 的文件
	你可以使用 ( ) 将运算式分隔,并使用下列运算。
	exp1 -and exp2
	! expr
	-not expr
	exp1 -or exp2
	exp1, exp2
# 实例:
    find . -name "*.c"  当前目录及其子目录下所有文件后缀为 .c 的文件列出来
    find . -type f      当前目录及其子目录中的所有文件列出
    find . -ctime  20   当前目录及其子目录下所有最近 20 天内更新过的文件列出:
    find /var/log -type f -mtime +7 -ok rm {} \;  /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:
    find . -type f -perm 644 -exec ls -l {} \; 当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:
    find / -type f -size 0 -exec ls -l {} \; 系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:

2. linux修改root账号密码

# 安装系统时,你的root用户是被隐藏的,并且此时的root用户密码是随机的,每一次开机都会有一个新的密码。所以我们如果想启用root用户,我们就必须去修改他的密码:
sudo passwd root

# 使用下面命令 移除密码再次锁定root用户
sudo passwd -dl root

# 启用root, 输入下面命令, 然后, 输入密码出来# 表示可以了, exit退出
sudo root

# 切换用户
sudo --username

3. linux常用操作命令

linux命令语法格式
  • 命令格式: 命令 [-选项] [参数]
  • 示例: ls -la /etc #显示根目录下etc文件下的所有文件, 包含隐藏文件
  • 说明:
    • 个别命令使用不遵循此格式, []符号标识非必要选项 #chmod u+x 1.txt
    • 当有多个选项时,可以写在一起
    • 简化选项(一个-)与完整选项(两个–), 比如 la -a 等于 ls --all

linux命令分类

分类命令
登录和电源管理login, shutdown, halt, reboot, install,exit, last,…
文件处理file, mkdir, grep, dd, find, mv, ls, diff, cat, ln,…
系统管理df, top, free, quota, ata, ip, kill, crontab, …
网络操作ifconfig, ip, ping, netstat, telnet, ftp, route rlogin, rcp, finger, mail, nsloopkup…
系统安全passwd, su, umask, chgrp, chmod, chown, chattr, sudo ps, who,…
其他tar, unzip, gunzip, unarj, mtools, man
用户管理
登录命令login
- login的作用是登录系统, 使用权限时所有用户
- 如果使用命令行模式登录Linux的话, 看到的第一个linux命令就是login
登录查看命令:last
# 查看最近登录的用户
last
# 最近3条用户的登录记录
last -n 3  或 last -3
# 最近某个用户的登录记录
last root
# 最近莫格控制台的登录记录
last tty1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qY7mRmJS-1662364108969)(./all_picture/linux_last.jpg)]

区分用户类别
  • 通过查看不同用户的UID来区分用户的 类别: 超级用户, 普通用户, 虚拟用户

  • 查看UID命令: id [option] [username]

  • 相关参数: -r和-n是配合-u和-g使用

    • -u -user只输出有效UID
    • -g 只输出gid
    • -n -name对于-ugG输出名字而不是数值
    • -r -real对于-ugG输出真实ID, 而不是有效ID
  • UID为0时, 标识的是超级用户(root), UID为1000-60000之间,标识的是普通用户, UID为1-999之间, 标识的 是虚拟用户(即系统用户)

创建用户: useradd
  • useradd命令用来创建用户账号,并保存在/etc/passwd文件中

  • 语法: useradd [options] username

    • -u 指定用户UID
    • -o 配合"-u"属性, 允许UID重复
    • -g 指明用户所属基本组,即可位用户组名, 也可为GID(该组必须已存在)
    • -d 指定用户的home目录, 并自动创建用户home目录
    • -s 指明用户的默认shell程序
    • -D 显示或更改默认配置
    # 查看passwd 文件下最后5行的数据
    tail -5 /etc/passwd
    
修改用户: usermod
  • usermod可用来修改用户账号的 各类信息
  • 语法: usermod [options] username
    • -u 修改用户UID 例: usermod -u 1004 zhy
    • -g 修改用户所属用户组
    • -l 修改用户账号名称 -L可以锁定指定用户, 使其无法登录
    • -d 修改用户的home目录, 例:usermod -d /home/zhy01 zhy
    • -s 修改用户默认shell程序
删除用户userdel
  • userdel用于删除指定的用户以及该用户的相关文件
  • 语法: userdel [options] username
    • -f 强制删除用户账号, 即便用户当前处于登录状态
    • -r 删除用户, 同时删除与用户相关的文件
    • -h 显示命令的相关信息
    • userdel命令用于删除指定的用户以及用户相关的文件, 实际上是对系统的用户账号文件进行了修改
修改用户密码 passwd
  • 语法: passwd [options] username

    • -n 设置修改密码最短天数

    • -x 设置修改密码最长天数

    • -w 设置用户在密码过期前多少天收到警告信息 -1 立即使用户的密码过期

    • -i 设置密码过期多少天后禁用账号 -l 立即锁定用户, -u立即解除用户的锁定

    • -d 删除用户密码, 如果 用户处于锁定状态, 会被解锁

    • -S 显示用户密码信息,(/etc/shawdow文件下,)

      root用户可以修改任何用户的密码, 普通用户只能修改自身的买买买

用户组的管理
  • 用户组: 具有相同特性用户的逻辑集合,通过组的形式使得具有相同特性得 多个用户能够拥有相同得权限,便于管理
  • 每一个用户都拥有自己的私有组
  • 同一组内的用户可以共享改组下的文件
  • 每一个用户组都会被分配一个特有的id号-gid
    • 用户组gid, 和用户UID类似, 作为唯一标识来表示系统的一个用户组
    • 在添加账号时, 默认情况会同时建立一个同名且UID和GID相同的组
    • GID和UID都会将0赋予给超级用户或者具有超级用户的 用户组(即root用户组)
    • 系统会预留一些较前的GID给虚拟用户(即系统用户)
    • 可以通过输入命令行id [options] [username], 查看用户组gid以及每个用户组下拥有的用户数量
  • 用户组的分类
    • 普通用户组: 可以加入多个用户
    • 系统组: 一般加入的用户为系统用户
    • 私有组: 也称为基本组, 在创建用户时, 如果没有为其指明所属用户组, 则会为该用户定义一个私有的 用户组, 且该用户组名称和用户名同名
创建用户组 groupadd
  • groupadd用来创建一个新的用户组, 并将新用户组信息添加到系统文件中
  • 语法: groupadd [options] groupname
    • -f 如果组已经存在, 则成功退出
    • -g 为新用户组所使用的GID
    • -h 显示此帮助信息并退出
    • -o 允许创建有重复GID的组
    • -p 为新用户组使用此加密过的密码
    • -r 创建一个系统账户
修改组
  • groupmod 可用来修改群组识别码或者名称
  • 语法: groupmod [options] groupname
    • -g 修改要使用的GID
    • -h 显示此帮助信息并退出
    • -n 修改为要使用的组名称
    • -o 允许使用重复的GID
    • -p 更改密码(加密过的)
删除组
  • groupdel 可用来删除用户组, 但若有用户组中包含一些用户, 需要先删除掉用户后再删除用户组

  • 语法: groupdel [options] groupname

    • -f 即便是用户的主组以继续删除

    • -h 显示此帮助信息并退出

      groupdel命令用于从系统中删除组,需要注意的是, 若是组中仍然包含某些用户, 此时需要先删除掉用户后再删除用户组

关联用户和组gpasswd
  • gpasswd可以用来添加或者 删除用户到组中

  • 语法: gpasswd [options] groupname

    • -a 向组group中添加用户user 例: gpasswd -a zhy admin

    • -d 从组group中删除用户

    • -M 设置组group的成员列表

    • -A 设置组group的管理员列表

    • -r 移除组group的 密码

    • -R 向其成员限制访问组group

    • -Q 要chroot进的目录

      groups username 用来查看用户所属的组

用户管理所关联的文件

  • /etc/passwd:用户账户信息文件

    • 该文件中, 保存着系统中所有用户的主要信息, 每一行代表一个记录

    • 每一行用户记录中定义了用户哥哥方面的相关属性

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O3l8M461-1662364108970)(./all_picture/etc_passwd20220723031751.png)]

  • /etc/shadow: 用户账户信息加密文件(又称: 影子文件)

    • 用于存储系统中用户的密码信息

    • 由于/etc/passwd文件允许所有用户读取, 容易导致密码泄露,因此将密码信息从这个文件中分离出来.单独放置在/etc/shadow文件中

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-waBAQuIG-1662364108970)(./all_picture/etc_shadow1658517610.jpg)]

用户组关联的文件
  • /etc/group 组信息文件

    • 该文件中, 保存着用户组的所有信息, 每一行代表一个用户组

    • 将用户分组时对用户进行管理及控制访问权限的一种手段, 每个用户都属于一个用户组, 一个组中可以有多个用户,一个用户也可以属于不同的组

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kic4zLOO-1662364108970)(./all_picture/etc_group20220723033134.png)]

  • /etc/gshadow 组信息加密文件

    • 该文件中,会保存用户组的加密信息, 比如说用户组的管理密码就保存在此(类似shadow文件)
    • 与/etc/group文件互补, 对于大型服务器来说, 拥有很对用户和组, 此时会针对这些用户和组来生成一些复杂的 权限模型, 此时设置并管理密码就显得尤为重要
文件权限
  • 权限示例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VTlUQ2Tn-1662364108971)(./all_picture/persion_20220723033514.png)]

  • 文件类型

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FqRo5lDJ-1662364108971)(./all_picture/file_types20220723033826.png)]

  • 文件权限

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RGw1wCAj-1662364108971)(./all_picture/file_persion20220723034135.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4TWP2dq2-1662364108971)(./all_picture/persion1658519400.jpg)]

修改文件权限

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-77gxIPZO-1662364108972)(./all_picture/chmod_20220723040828.png)]

chown

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SqtP0V9C-1662364108972)(./all_picture/chown_20220723041306.png)]

chgrp

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qkizEhUH-1662364108972)(./all_picture/chgrp_20220723041544.png)]

umask

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qHfNwsGA-1662364108972)(./all_picture/umask_20220723041757.png)]

sudo

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Grhj8OMc-1662364108973)(./all_picture/sudo_20220723041928.png)]

语法命令
电源命令: shutdown
  • shutdown 命令作用是关闭计算机, 使用权限是超级用户
  • 主要参数:
    • -h: 关机后关闭电源
    • -r: 关机后打开电源(相当于重启)
    • -t: 在改变到其他运行级别之前, 告诉init程序多久以后关机
    • -k: 并不真正关机, 只是送警告信号给每位登录者
    • -F: 在重启计算机时强迫fsck
    • -time: 设定关机前的时间, -c取消关机时间
电源命令: halt
  • halt命令的作用是关闭系统, 使用权限是超级用户
  • 主要参数:
    • -n 防止sync系统调用, 它用在用fsck修补根分区之后,以阻止内核用老版本的超级块覆盖修补过的超级块
    • -w: 并不是真正的重启或关机, 只是写wtmp(/var/log/wtmp)记录\
    • -f: 没有调用shutdown, 而强制关机或重启.
    • -i: 关机(或重启)前, 关掉所有的网络接口
    • -f: 强迫关机, 不呼叫shutdown这个指令
    • -d: 关闭系统, 但不留下记录
电源命令: reboot
  • reboot命令的作用是重新启动计算机, 使用权限是系统管理者

  • 主要参数:

    • -n: 保存数据后再重新启动系统
    • -w: 并不会真的开机, 只是把记录写到/var/log/wtmp文件里
    • -d: 不把记录写到/var/log/wtmp文件里(-n 这个参数包含了-d)
    • -i: 关闭网络设置之后再重新启动系统

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZPsVPjJX-1662364108973)(./all_picture/linux_file_construction.jpg)]

文件命令: pwd
  • pwd命令用于打印当前的工作目录
  • pwd有两个选项, -L和-P,其作用类似于长度命令的同名选项
  • -L目录连接链接时, 输出链接路径
  • -P输出物理路径
文件命令:cd
  • cd命令用于改变当前工作目录
  • 语法: cd [DIR]
    • cd /usr 进入目录/usr中
    • cd … 进入(退到)上一层目录, 两个点代表父目录
    • cd . 进入当前目录
    • cd 不带参数, 则默认回到家目录
    • cd - 进入到前一个目录, 适用于在两个目录之间快速切换
    • cd ~ 进入家目录
文件命令:ls
  • ls命令用于列出目录的内容, 或者文件的信息, 输出结果默认按照文件名排序, 如果不指定目标, 则列出当前目录的内容
  • 语法: ls [OPTION]… [FILE]…
    • -a 显示所有文件及目录, 包括隐藏的文件和目录
    • -l 除文件名以外, 亦将文件型态, 权限, 拥有者, 文件大小等资讯详细列出
    • -t 将文件依据建立的时间的先后次序列出
    • -R 若目录下有文件, 则以下的文件亦皆依序列出
文件命令: mkdir
  • mkdir命令用于创建目录(文件夹)
  • 语法: mkdir [OPTION]… DIRECTORY… # 可以一次创建多个目录7+
    • -p 创建目录时, 如果父目录不存在, 强制创建
文件命令: cp
  • cp命令用于复制文件或目录, 可以一次复制单个文件, 亦可一次复制多个文件(cp命令是高危命令, 使用不慎就会丢失数据)
  • 语法: cp [OPTION]… SOURCE… DIRECTORUY
    • -a 此选项通常在复制目录时使用, 它保留链接, 文件属性, 并复制目录下是所有内容
    • -p 除复制文件的内容外, 还把修改时间和访问权限也复制到新文件中
    • -r 若给出的源文件是一个目录文件, 此时将复制该目录下所有的子目录和文件
    • -l 不复制文件, 只是生成链接文件
文件命令: mv
  • mv命令移动文件或目录(高危命令, 使用不慎就会丢失数据)
  • 如果源文件和目标文件在同一个父目录里面, 则mv命令的 效果就相当于给文件改名
  • 语法: mv [选项] 源文件或目录 目标文件或目录
    • -b 若需要覆盖文件, 则覆盖前先行备份
    • -f force强制的意思, 如果目标文件已经存在, 不会询问而直接覆盖
    • -i 若目标文件已经存在时, 就会询问是否覆盖
    • -u 若目标文件已经存在, 且source比较新, 才会更新(update)
文件命令: scp
  • 语法: scp (选项) (参数)

  • 选项

    • -1:使用ssh协议版本1;

    • -2:使用ssh协议版本2;

    • -4:使用ipv4;

    • -6:使用ipv6;

    • -B:以批处理模式运行;

    • -C:使用压缩;

    • -F:指定ssh配置文件;

    • -l:指定宽带限制;

    • -o:指定使用的ssh选项;

    • -P:指定远程主机的端口号;

    • -p:保留文件的最后修改时间,最后访问时间和权限模式;

    • -q:不显示复制进度;

    • -r:以递归方式复制。

    参数:

    源文件:要复制的源文件。

    目标文件:目标文件,格式为user@host:filename (文件名为目标文件的名称)

    scp  root@10.10.12.74/data/xiaoxiong/test.txt  /data/testdata
    scp  -r root@10.10.12.74/data/xiaoxiong/test  /data/testdata
    scp  /data/testdata/test.txt   root@10.10.12.74/data/xiaoxiong
    scp  -r  root@10.10.12.74/data/xiaoxiong/test   /data/testdata
    
文件命令: rm
  • rm命令用于删除文件或者目录-

  • rm命令属于高危命令, 没有一个工具能够100%恢复rm命令删除的文件, rm命令删除文件时并不是把文件放到类似图形界面的"回收站"里, 所以没有"撤销删除"操作可用

  • 语法: rm [OPTION] file_or_dir

    • -f --force忽略不存在的文件, 从不给出提示

    • -i --interactive进行交互式删除

    • -r,-R,–recursive指示rm将参数中列出的全部目录和子目录均递归地删除

    • -v,–verbose 详细显示进行的步骤

文件命令: cat
  • cat命令用于读取文件的全部内容(一次性加载全部 ) , 或者将几个文件合并为一个文件
  • 语法: cat [OPTION] [FILE]
    • -A,–show-all 等价于-vET, 显示不可打印的字符
    • -b,–number-nonblank 对非空输出进行编号
    • -E,–show-ends 在每行结束处显示$
    • -n,–number 对输出的所有行进行编号,由1开始对所有输出的行数编号,
    • -b 对输出的非空行进行编号,由1开始对所有输出的行数编号,
    • -s 当有多个空行在一起时,只输出一个空行
    • cat > filename 编辑filename文件, 不过会覆盖原文件内容
    • cat >> filename 此时是使用追加的方式, 编辑filename文件,
    • cat file1 > file2 将文件file1 覆盖file2, 如果是">>" 表示将file1的内容追加到file2后面
文件命令: head
  • head用于显示文件的开头内容, 默认head命令打印其相应文件的开头10行
  • 语法:head [OPTION] [FILE]
    • -n 执行显示文件的指定几行
    • -q 隐藏文件名, 默认就会隐藏
    • -v 显示文件名
    • -c num 显示num字节数
    • -n num 显示前num行
文件命令: tail
  • tail命令用于读取文件的尾部
  • 语法: tail [OPTION]… [FILE]…
    • -f 循环读取
    • -q 不显示处理信息
    • -v 显示详细的处理详细
    • -c num 显示的字num字节
    • -n num 显示文件最后num行
    • -s 与-f结合使用, 表示每次反复的时间间隔休眠s秒
文件命令: more
  • more会以一页一页的显示方便使用者逐页阅读, 而最基本的指令按空格键(space)就往下一页显示, 按b键就会返回(back)一页显示, 而且哈有搜索字符的功能. more命令从前往后读取文件, 因此在启动时就加载整个文件
  • 语法: more [OPTION]… [FILE]…
    • +n 从第n行开始显示
    • -n 定义屏幕大小为n行
    • +/pattern 在文件显示前搜索该字符串(pattern), 然后从该字符串前两行之后开始显示
    • -c 从顶部开始清屏, 然后显示
    • -s 把多个空行显示为一行, 通cat中的-s
  • 使用more命令在读取文件信息时, 可以进行交互操作
    • Enter 向下n行, 需要定义. 默认1行
    • ctrl+F 向下滚动一屏(forwards)
    • 空格键 向下滚动一屏
    • ctrl+B 返回上一屏(backwards)
    • = 输出当前行的行号
    • V 调用vi编辑器
    • !命令 调用shell, 并执行命令
    • q 推出more
    • :f 使用more查看文件时, 可以输出文件名和当前行号
文件命令: less
  • less命令读取内容, 分屏显示, less与more类似, 但使用less可以随意的浏览文件, 而more仅能向前移动, 却不能向后移动, 而且less在查看之前不会加载整个文件, 支持vim的类似操作
  • 语法: less [OPTION]… [FILE]…
    • /字符串 向下搜索"字符串"的功能
    • ?字符串 向上搜索"字符串"的功能
    • Q 退出less命令
    • 空格键 滚动一页
    • 回车键 滚动一行
  • less常用的选项
    • -f 强制打开特殊文件, 例如外围设备代号,目录和二进制文件
    • -g 只标志最后搜索到的关键字
    • -i 忽略搜索时的大小写
    • -N 显示每行的行号
    • -s 当有多个空行在一起的 时候, 只输出一个空行, 通
    • -o <文件名> 将less输出的 内容保存到指定的文件, 例如: ll / | less -o /home/zhy/test/txt
    • b 向上翻一页
    • d 向下翻半页(downwards)
    • h 显示帮助页面
    • q 退出less
    • u 向上翻半页(upwards)
    • y 向上翻一行
    • 空格键 向下翻一页
    • Enter 向下翻一页
    • 上下键 向上/下翻一行
提取列或字段: cut
  • cut 用于显示文件或者标准输入的 特定列, 例如

    # 显示/etc/passwd文件以:间隔的第一列
    cut -d: -f1 /etc/passwd  
    
  • 命令格式: cut [option]… [文件]

  • cut常用的 选项有:

    • -b 仅显示行中指定直接范围的内容
    • -c [范围] 仅显示行中指定范围的 字符
    • -d 指定字段的 分隔符, 默认的字段分隔符"tab"
    • -f [范围] 显示指定第num个字段的内容, 可以用逗号隔开显示多个字段
文件命令:find
  • find命令用来在指定目录下查找文件
  • 可以指定一次匹配条件, 如按文件名, 文件类型,用户甚至是时间戳查找文件
  • 语法: find [PATH…] [EXPRESSION]
    • -name 按照文件名查找文件

    • 敌人dir -perm 按照文件权限来查找文件

    • -user 按照文件属主来查找文件

    • -type 按照文件类型来查找文件, D: 表是目录, F:表示一般文件, L:表示软链接

    • -mtime -n +n 按照文件的更改时间来查找文件

    • -empty 查找目录下的空文件, 后面再跟 -delete 表示将查到的空文件删除

      # *表示通配所有字符
      find ./zhy -name "*te*"
      
      # ?表示通配任意的单个字符
      find ./zhy -name "test?"
      
      # []表示通配[]内的任意一个字符
      find ./zhy -name "test[.]*"
      
文件命令: which
  • which命令在path所指定的目录中查找可执行文件
  • 使用which命令,就可以看到某个系统命令是否存在, 以及执行的到底是哪一个位置的命令
  • 语法: which [OPTION] programname 例如: which ls
文件命令: gzip
  • gzip是在linux中对一个文件进行压缩和解压缩的命令, 无法将多个文件打包到同一个文件中

  • gzip不仅可以用来压缩大的. 较少使用的文件以节省磁盘空间

  • 语法: gzip [参数] [文件名或目录名]

    • -d,–decompress,----uncompress 解开压缩文件
    • -f,–force 强行压缩文件, 不理会文件名是否存在以及该文件是否为符号连接
    • -l, --list 列出压缩文件的详细信息
    • -r,–recursive 递归处理, 将指定文件下的所有文件及子目录一并处理
    • -v,–versose 显示指令执行过程
文件命令:tar
  • tar命令可用于打包文件,包多个文件打到一个包中, 方便数据的移动, 一般跟上-f备份原文件
  • 语法: tar [OPTION…] [FILE]
    • -c 建立新的压缩文件
    • -x 从压缩的文件中提取文件
    • -t 显示压缩文件的内容
    • -z 支持gzip解压文件
    • -j 支持bzip2解压文件
    • -v 显示操作过程
    • -C 指定解压文件路径
文件命令: ln
  • ln命令用于创建链接文件

  • linux中有软链接和硬链接两种

    软连接(symbolic link)硬链接(hard link)
    以路径形式存在, 类似于windows的快捷方式以文件副本形式存在, 但不占用实际空间
    删除源文件后链接失效删除源文件后无影响
    可以对目录进行链接不可以对目录进行链接
    可以跨文件系统不可以跨文件系统
  • ln命令在不带参数的情况下, 默认创建的是硬链接

  • 语法: ln [-f | -n] [-s] SourceFile [TargetFile]

    • -b 删除, 覆盖以前建立的链接
    • -d 允许超级用户制作目录的硬链接
    • -f 强制执行
    • -i 交互模式, 文件存在则提示用户是否覆盖
    • -n 把符号链接视为一般目录, 可以使用cd进入这个链接中
    • -s 软链接(符号链接)
    • 软链接的目标路径必须是绝对路径, 否则可能会链接到其他的同名文件
vim基础操作
  • 快速移动光标

    • 上下左右键获取 h j k l(左下上右)移动光标
    • 0 键移动到行首
    • g0 移动到光标所在屏幕行行首
    • :n 移动到第n行 :set nu 显示行编号
    • gg: 到文件头部
    • G: 到文件尾部
  • 数据操作

    • yy or Y 复制整行文本 [n]yy 复制n行文本
    • y[n]w 复制一(n)个词
  • 粘贴

    • 面向行的数据
      • p 放置数据在当前行的下面p
      • P 放置数据在当前行的上面
    • 面向字符的数据
      • p 防止数据在光标的后面
      • P 放置数据在光标的前面
  • 删除

    • d[n]w 删除(剪切)一(n)个单词
    • [n]dd 删除(剪切)一(n) 行
  • 查找

    • :/word 在光标之后查找一个字符word, 按n向后继续搜索, shift+n向上搜索

    • :?word 在光标之前查找一个字符word, 按n向后继续搜索, shift+n向上搜索

    • :set hlsearch 查找结果高亮显示, 只能临时设置,

      若永久设置需要在/etc/vimrc中配置,增加一行set hlsearch, 然后更新变量(source /etc/vimrc)即可

  • 替换

    • :1,5s/word1/word2/g 将文档中1-5行的word1替换为word2, 不加g则只替换每行的第一个
    • %s/word1/word2/gi 将文档所有的 word1替换为word2, 不区分大小写
  • 撤销或重做

    • u 撤销最近的改变
    • U 撤销当前自从光标定位在上面开始的所有改变
    • ctrl+r 重做最后一次"撤销"改变
  • 保存文件并退出

    • Esc 在插入模式下按Esc键,退出插入模式
    • :w 保存
    • :q 退出
    • :wq 保存并退出
    • :q! 强制退出
    • :wq! 强制保存并退出
RPM软件包管理(red-hat-package-manager)
  • rpm是一种互联网下载包的打包和自动安装工具, 会生成具有.RPM扩展名的文件,可以用来管理应用程序的安装,卸载和维护

  • RPM软件包的命名格式

    • name-version-release.arch.rpm

      名称-版本-发行版号-处理器架构

RPM命令常用参数
  • RPM常用于安装,删除, 升级,刷新和查询的场景

  • 语法: rpm [options…]

    • -i 指定安装的 软件包

    • -h 使用"#(hash)"符显示rpm星系的安装过程及进度

    • -v 显示安装的详细过程

    • -U 升级指定的软件包

    • -e 删除指定的软件包

    • -q 查询系统是否已安装指定的软件包或查询指定rpm包内容信息

    • -a 查看系统已安装的软件包的版本信息

    • -c 显示所有配置文件

    • -p 查询/校验一个软件包的文件

      # 安装
      rpm -i example.rpm
      rpm -iv example.rpm
      rpm -ivh example.rpm
      
      # 卸载, 需要考虑宝与包之间的依赖性
      rpm -e example.rpm
      rpm -e -nodeps example.rpm # 不考虑依赖性, 强制卸载
      rpm -e -alimatches example.rpm  # 软件包存在多个版本, 进行批量卸载
      
      # 升级
      rpm -U example.rpm
      rpm -Uvh example.rpm	# 存在旧包时,删除旧包, 安装新包
      rpm -f example.rpm
      rpm -fvh example.rpm	# 存在旧包时, 在旧包的基础上进行升级
      
      # 查询
      rpm -q example.rpm
      rpm -qa
      -q   # 查询软件是否安装
      -qa  # 查询所有的软件包
      -qf  # 查询所有已安装过的软件包
      -qp  # 查询未安装过的软件包
      -ql  # 查询已安装过的软件包中的文件列表和完整目录
      -qi  # 查询软件包的详细详细
      -qc  # 查询已安装的软件包的配置文件
      -qd  # 查询已安装的软件包中的帮助文档
      
DNF管理工具

DNF管理软件包三步骤:

  1. 配置DNF, 修改DNF配置参数,创建本地软件源仓库,添加,启用,禁用软件源头
  2. 管理软件包(组),搜索软件包,列出软件包(组)清单, 显示rpm包信息,显示软件包信息. 安装rpm包并下载软件包(组), 删除软件包(组)
  3. 更新, 检查更新, 升级,更新所有包及其依赖
DNF配置文件 /etc/dnf/dnf.conf
  • DNF的主要配置文件 /etc/dnf/dnf.conf, 该文件中的"main"部分保存着DNF的 全局配置
  • 通过cat命令, 可以查看"main"的具体参数 cat /etc/dnf/dnf.conf
    • cachedir 缓存目录, 该目录用于存储RPM包和数据库文件
    • best 升级包时, 总是尝试安装其最高版本,如果最高版本无法安装,则提示无法安装的原因并停止安装.默认值True
    • installonly_limit 设置可以同时安装"installonlypkgs", 指令列出包的数量.默认值为3, 不建议降低此值
    • clean_requirements_on_remove 删除在dnf remove期间不在使用的的 依赖项,如果软件包时通过DNF安装的,而不是通过显示用户请求安装的,则只能通过clean_requirements_on_remove删除软件包, 即他是作为依赖项引入的, 默认值True
修改配置参数
  • repository允许用户定义定制化的软件源仓库,需要注意的时各个仓库的名称不能相同, 会引起冲突,用户可以通过一个或多个"repository"部分来修改需安装软件源位置
  • 通过vim命令,可以在文件中添加一个或多个"repository": vim /etc/dnf/dnf.conf
    • name=repository_name 软件仓库(repository)描述的字符串
    • baseurl=repository_url 软件仓库(repository)的地址, 使用http协议的网络位置, 例如: http://path/to/repo; 使用ftp协议的网络位置, 例如: ftp://path/to/repo;本地位置,例如: file: ///path/to/local/repo
创建本地软件源仓库
  • 创建软件源仓库具体步骤
    • 安装createrepo(root权限), dnf install createrepo
    • 将需要的软件包放置在目录下, 比如: /mnt/local_repo
    • 执行命令创建软件源, createrepo --database /mnt/local_repo
添加软件源
  • 用户定义定制化的软件源仓库,除了可以在/etc/dnf/dnf.conf文件中添加一个或多个"repository"外, 还可以选择在/etc/yum.repos.d/目录下添加".repo"文件
  • 添加".repo"文件的方式需要在root权限下进行\
    • 成功执行以下命令后会在/etc/yum.repos.d/目录下生成对应的 repo文件, dnf config-manager --add-repo repository_url
启用或禁用软件源
  • 添加好软件源之后, 需要在root权限下启动软件源,(其中的repository为新增.repo)文件的repo id), 启用命令如下
  • 若是软件源不在使用,可以通过命令行禁用该软件源,需要在root权限下禁用, 禁用命令如下
# 启用命令
dnf repolist #查看新增.repo文件的repo id 获取yum repolist
dnf config-manager --set-enable respository

# 禁用命令
dnf repolist #查看新增.repo文件的repo id
dnf config-manager --set-disable respository
#管理软件包安装, 查询,删除, 通过rpm包名称,缩写和描述来搜索所需软件包, 命令: 
dnf search term

# 列出软件包清单: 
dnf list all
dnf list glob_expression...  # 查看指定RPM包的信息

# 显示软件包信息: 
dnf info package_name

# 下载, 安装,删除RPM包
dnf download package_name
dnf install package_name
dnf remove package_name

# 管理软件包组
dnf groups summary
dnf group list # 列出所以已安装的软件包组

# 显示软件包组信息,必装软件包及可选包
dnf group info glob_expression...

# 安装,删除软件包组, 每个软件包组都有对应的名称和id,
dnf group install group_name/groupid
dnf group remove group_name/groupid

# 检查,更新
dnf check-update
dnf update package_name /dnf group update group_name


源代码软件安装

步骤:

  1. 下载源码包并解压(查看包的完整性)

    wget https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tgz

    tar -zxvf Python-3.7.7.tgz

  2. 查看README和INSTALL文件(记录了软件的安装方法及注意事项)

    cat Python3.7.7/README.rst

  3. 创建Makefile文件,通过执行./configure脚本命令生成

    ./configure --prefix=/usr/local/Python/

  4. 编译:通过make命令将源码自动编译成二进制文件,

    make/make clean

    make install

  5. 安装软件,通过make install安装命令将上步编译出来的二进制文件安装到对应的目录中, 默认的安装路径为/usr/local/,相应的配置文件位置为/usr/local/etc或/usr/local/***/etc

systemd

简介:

​ 1. systemd是与SysV和LSB初始化脚本兼容的系统和服务管理器,开启systemd服务可以提供基于守护进程的按需启动策略

2. systemd服务支持快照和系统状态恢复,维护挂载和自挂载点,使得个服务之间基于从属关系实现更为精细的逻辑控制,具有更高的并行性能

Systemd unit

systemd服务的开启和监督系统是基于unit的概念, unit由一个与配置文件对应的名称和类型组成,unit通常有以下几种类型

- Service unit: 系统服务
- Target unit: 一组systemd units
- Automount unit:文件系统挂载点
- Device unit: 内核识别的设备文件
- Mount unit: 文件系统挂载点
- Path unit: 在一个文件系统中的文件或目录
- Scope unit: 外部创建的进程
- Snapshot unit: systemd manager的保存状态

systemd管理服务

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LzlJPB6Z-1662364108973)(./all_picture/system__20220725224158.png)]

# 查看当前正在运行的服务, 
systectl list-units --type service	# 查看全部服务, 后面加--all

# systemctl显示服务状态
systemctl status name.service
1. loaded 说明服务是否被加载, 同时显示对的绝对路径是否启用
2. Active  说明服务是否正在运行, 并显示时间节点
3. Main PID 相应系统服务PID
4. CGroup  相关控制组的其他信息

# systemctl的相关操作
systemctl start name.service	# 运行服务
systemctl stop name.service     # 关闭服务
systemctl restart name.service	# 重启服务
systemctl enable name.service     # 启用服务, 表示允许这个服务运行
systemctl disable name.service	# 禁用服务

systemctl poweroff	# 关闭系统并下电
systemctl halt     # 关闭系统但不下电
systemctl reboot  # 重启系统
systemctl suspend # 系统待机
systemctl hibernate # 系统休眠
systemctl hybird-sleep # 使系统待机并处于休眠状态

linux中查看磁盘信息
# 查看系统所有磁盘的信息, 包括已挂载和未挂载磁盘
fdisk -l

# 查看系统挂载 磁盘空间大小和利用率
df -h
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值