Linux基础命令

文件目录类命令

1)pwd命令:用于显示用户当前所处的目录。

[root@RHEL7-1 etc]# pwd
/etc

2)cd命令:用来在不同的目录中进行切换。后面跟想要切换的目录名即可。

[root@RHEL7-1 etc]# cd                   //改变目录位置至用户登录时的工作目录
[root@RHEL7-1 dir1]# cd ~                 //改变目录位置至用户登录时的工作目录(用户的家目录)
[root@RHEL7-1 ~]# cd dir1               //改变目录位置至当前目录下的dir1子目录下
[root@RHEL7-1 etc]# cd /dir1/subdir1    //利用绝对路径表示改变目录到 /dir1/ subdir1目录下
[root@RHEL7-1 ~]# cd ..                 //改变目录位置至当前目录的父目录
[root@RHEL7-1 ~]# cd ../etc             //改变目录位置至当前目录的父目录下的etc 子目录下

3)ls命令:用来列出文件或目录信息。

语法:ls  [参数]  [目录或文件]
常用参数选项如下:
-a:显示所有文件,包括以“.”开头的隐藏文件。
-l:以长格形式显示文件的详细信息。
-R: 递归显示目录

4)cat命令:用于滚屏显示文件内容或是将多个文件合并成一个文件。

语法:cat  [参数]   文件名
常用参数选项如下:
-b:对输出内容中的非空行标注行号。
-n:对输出内容中的所有行标注行号。

5)more命令:通常用于分屏显示文件内容。按 Enter 键可以向下移动一行,按 Space 键可以向下移动一页;按 Q 键可以退出more命令。

语法:more  [参数]  文件名
常用参数选项如下:
-num:这里的num是一个数字,用来指定分页显示时每页的行数。
+num:指定从文件的第num行开始显示。

6)head命令用于显示文件的开头部分,默认情况下只显示文件的前10行内容。

语法:head  [参数]  文件名
常用参数选项如下:
-n num:显示指定文件的前num行。
-c num:显示指定文件的前num个字符。

7)tail命令用于显示文件的末尾部分,默认情况下,只显示文件的末尾10行内容。

语法:tail  [参数]  文件名
常用参数选项如下:
-n num:显示指定文件的末尾num行。。
+num:从第num行开始显示指定文件的内容。
-f:持续刷新一个文件的内容

8)mkdir命令用于创建一个目录。

语法:mkdir  [-p]  目录名

9)rmdir命令:用于删除空目录。目录名可以为相对路径,也可以为绝对路径。但所删除的目录必须为空目录。

语法:rmdir  [-p]  目录名

10)touch命令用于建立文件或更新文件的修改日期。

语法:touch  文件名或目录名  

11)cp命令用于文件或目录的复制。

语法:cp  [参数]  源文件   目标文件
常用参数选项如下:
-f:如果目标文件或目录存在,先删除它们再进行复制(即覆盖),并且不提示用户。
-i:如果目标文件或目录存在,提示是否覆盖已有的文件。
-r:递归复制目录,即包含目录下的各级子目录。

12)mv命令用于文件或目录的移动或改名。

语法:mv  [参数]  源文件或目录   目标文件或目录
常用参数选项如下:
-i:如果目标文件或目录存在,则提示是否覆盖目标文件或目录。
-f:无论目标文件或目录是否存在,直接覆盖目标文件或目录,不提示。

13)rm命名用于文件或目录的删除。

语法:rm  [参数]  文件名或目录名
常用参数选项如下:
-i:删除文件或目录时提示用户。
-f:删除文件或目录时不提示用户。
-r:递归删除目录,即包含目录下的文件和各级子目录。

 

14)grep命令用于查找文件中包含有指定字符串的行。

[root@centos ~]# grep 'Use' anaconda-ks.cfg 
# Use graphical install
# Use CDROM installation media
[root@centos ~]# cat anaconda-ks.cfg | grep 'Use'
[root@centos ~]# ll /etc | grep 'mnt'

进程管理类命令

1)ps命令主要用于查看系统的进程。

语法:ps  [参数]
常用参数选项如下:
-a:显示当前控制终端的进程(包含其他用户的)。
-u:显示进程的用户名和启动时间等信息。
-l:按长格形式显示输出。

2)pidof命令用于查询某个指定服务进程的PID值,每个进程的进程号码值(PID)是唯一的,因此可以通过PID来区分不同的进程。

语法:pidof [参数] [服务名称]

3)kill命令:前台进程在运行时,可以用 Ctrl+C 组合键来终止它,但后台进程无法使用这种方法终止,此时可以使用kill命令向进程发送强制终止信号,以达到目的。

语法:kill  [-9]   进程1  进程2 

其他常用命令

1)clear命令用于清除字符终端屏幕内容。

[root@RHEL7-1 ~]# clear

2)man命令:用于列出命令的帮助手册。

[root@RHEL7-1 ~]# man ls

3)shutdown命令用于在指定时间关闭系统。

语法:shutdown  [参数]  时间  [警告信息]

常用的参数选项如下:
-r:系统关闭后重新启动。
-h:关闭系统。
时间可以是以下几种形式。
now:表示立即。
hh:mm:指定绝对时间,hh表示小时,mm表示分钟。
+m:表示m分钟以后。

4)reboot命令:用于重新启动系统,相当于 shutdown  -r  now。

5)poweroff命令:用于立即停止系统,并关闭电源,相当于 shutdown -h now 。

6)alias命令用于创建命令的别名。

语法:alias  命令别名 = "命令行"

7)unalias命令用于取消别名的定义。

[root@RHEL7-1 ~]# unalias httpd

8)wget命令用于在终端中下载网络文件。

语法:wget [参数] 下载地址

9)who命令用于查看当前登入主机的用户终端信息。

语法:who [参数]

10)echo命令用于在终端输出字符串或变量提取后的值。

语法:echo [字符串 | $变量]
 

用户及用户组的创建与管理

新建用户

useradd  [选项]  <username>

[root@server1  ~]# groupadd dev
[root@server1  ~]# useradd tom

选   项

说    明

-d home_dir

指定用户的主目录

-e expire_date

禁用账号的日期,格式为YYYY-MM-DD

-f inactive_days

设置账户过期多少天后用户账户被禁用。如果为0,账户过期后将立即被禁用;如果为-1,账户过期后,将不被禁用

-g initial_group

用户所属主组群的组群名称或者GID

-G group-list

用户所属的附属组群列表,多个组群之间用逗号分隔

-M

不要创建用户主目录

-n

不要为用户创建用户私人组群

-p passwd

加密的口令,无法直接登录

-s shell

指定用户的登录shell,默认为/bin/bash

-u UID

指定用户的UID,它必须是唯一的,且大于499

设置口令

指定和修改用户账户口令的命令是passwd。超级用户可以为自己和其他用户设置口令,而普通用户只能为自己设置口令。

passwd  [选项]  [username]

选    项

说    明

-l

锁定(停用)用户账户

-u

口令解锁

-d

将用户口令设置为空,这与未设置口令的账户不同。未设置口令的账户无法登录系统,而口令为空的账户可以

//root用户修改自己的口令,直接用passwd命令回车即可
[root@RHEL7-1 ~]# passwd
 
//root用户修改user1用户的口令
[root@RHEL7-1 ~]# passwd user1

注意:需要注意的是,普通用户修改口令时,passwd命令会首先询问原来的口令,只有验证通过才可以修改。而root用户为用户指定口令时,不需要知道原来的口令。

删除用户账户

userdel  [-r]  用户名

注意:如果加-r选项,则在删除用户账户的同时,还将用户主目录以及其下的所有文件和目录全部删除掉。

创建用户组

[root@RHEL7-1 ~]# groupadd  testgroup

删除用户组

[root@RHEL7-1 ~]# groupdel testgroup

为组群添加用户

gpasswd [选项] [用户] [组]   # 只有root用户和组管理员才能够使用这个命令

# 把user1用户加入testgroup组,并指派user1为管理员
[root@RHEL7-1 ~]# groupadd  testgroup 
[root@RHEL7-1 ~]# gpasswd -a user1 testgroup
[root@RHEL7-1 ~]# gpasswd -A user1 testgroup

选    项

说    明

-a

把用户加入组

-d

把用户从组中删除

-r

取消组的密码

-A

给组指派管理员

su命令

su命令可以解决切换用户身份的需求,使得当前用户在不退出登录的情况下,顺畅地切换到其他用户,比如从root管理员切换至普通用户:

[root@RHEL7-1 ~]# useradd -G dev  test
[root@RHEL7-1 ~]# su – test
[test@RHEL7-1 ~]$ id 

当从root管理员切换到普通用户时是不需要密码验证的,而从普通用户切换成root管理员就需要进行密码验证。

[test@RHEL7-1 ~]$ su root
Password:
[root@RHEL7-1 ~]# su – test
上一次登录:日 5月  6 05:22:57 CST 2018pts/0 上
[test@RHEL7-1 ~]$ exit
logout
[root@RHEL7-1 ~]#

sudo 命令

尽管像上面这样使用su命令后,普通用户可以完全切换到root管理员身份来完成相应工作,但这会暴露root管理员的密码,从而增大了系统密码被黑客获取的概率,因此上述操作并不是最安全的方案。

sudo命名用于给普通用户提供额外的权限来完成原本root管理员才能完成的任务,这样既可保证普通用户能够完成特定的工作,也可以避免泄露root管理员密码。我们要做的就是合理配置sudo服务,以便兼顾系统的安全性和用户的便捷性。

sudo [参数] 命令名称  

参数

作用

-l

列出当前用户可执行的命令

-u 用户名或UID值

指定用户身份执行命令

-k

清空密码的有效时间,下次执行sudo时需要再次进行密码验证

-b

在后台执行指定的命令

-p

更改询问密码的提示框

关于文件权限的命令

每一行代码的第一个字符一般用来区分文件的类型

字符具体含义
d

表示是一个目录,在ext文件系统中目录也是一种特殊的文件。

-

表示该文件是一个普通的文件。

l

表示该文件是一个符号链接文件,实际上它指向另一个文件。

b、c

分别表示该文件为区块设备或其他的外围设备,是特殊类型的文件。

s、p

这些文件关系到系统的数据结构和管道,通常很少见到。

每一行的第2~10个字符表示文件的访问权限。这九个字符每3个一组,左边的3个字符表示所有者权限,中间3个字符表示与所有者同一组的用户权限,右边3个字符是其他用户权限。

这9个字符根据权限种类的不同分为3种类型。

权限类型           

权限内容

r(Read,读取)

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

w(Write,写入)

对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。

x(execute,执行)对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
-表示不具有该项权限

修改权限

数字表示法

原文链接:https://www.yuque.com/cdhong/2022/qswqy8

通常在权限修改时可以用两种方式来表示权限类型:数字表示法文字表示法

chmod命令的格式是chmod 选项 文件

所谓数字表示法是指将读取(r)、写入(w)和执行(x)分别以数字4、2、1来表示,没有授予的部分就表示为0,然后再把所授予的权限相加而成。

原始权限转换为数字数字表示法
rwxrwxr-x(421) (421) (401)775
rwxr-xr-x(421) (401) (401)755
rw-rw-r--(420) (420) (400)664
rw-r--r--(420) (400) (400)644

文字表示法

使用权限的文字表示法时,系统用4种字母来表示不同的用户。

  • uuser,表示所有者。
  • ggroup,表示属组。
  • oothers,表示其他用户。
  • aall,表示以上3种用户。

使用下面3种字符的组合表示法设置操作权限。

  • rread,可读。
  • wwrite,写入。
  • xexecute,执行。

操作符号包括以下几种。

  • :添加某种权限。
  • - :减去某种权限。
  • :赋予给定权限并取消原来的权限。
[root@RHEL7-1 ~]# chmod u=rw,g=rw,o=r /etc/file
[root@RHEL7-1 ~]# chmod u+s /etc/file
[root@RHEL7-1 ~]# chmod a-x .bashrc

设置文件预设权限

umask命令指定用户在建立文件或目录时的默认权限值。那么如何得知或设定umask呢?

[root@RHEL7-1 ~]# umask    # 查阅默认权限,以数字形态展示
0022    # 第1组数字是特殊权限用的,后面3组与之前一样
[root@RHEL7-1 ~]# umask -S # 以符号类型的方式显示权限
u=rwx,g=rx,o=rx

umask的分值指的是该默认值需要减掉的权限(r、w、x分别对应的是4、2、1),具体如下。

  • 去掉写入的权限时,umask的分值输入2。
  • 去掉读取的权限时,umask的分值输入4。
  • 去掉读取和写入的权限时,umask的分值输入6。
  • 去掉执行和写入的权限时,umask的分值输入3。

以上面的例子,因为umask为022,所以user并没有被去掉任何权限,不过group与others的权限被去掉了2(也就是w这个权限),那么使用者的权限如下。

  • 建立文件时:(-rw-rw-rw-) =-rw-r--r--
  • 建立目录时:(drwxrwxrwx) =drwxr-xr-x

目录与文件的默认权限是不一样的。x权限对于目录是非常重要的。但是一般文件的建立是不应该有执行的权限。因为一般文件通常是用于数据的记录。

[root@RHEL7-1 ~]# touch file1
[root@RHEL7-1 ~]# mkdir file2
-rw-r--r--. 1 root root    0 2月  17 14:40 file1
drwxr-xr-x. 2 root root 4096 2月  17 14:40 file2

利用 umask 可以修改默认预定权限,只需要在 umask 后面跟上数字即可。

设置文件隐藏属性

chattr命令,改变文件属性。语法:chattr [-RV][-v<版本编号>][+/-/=<属性>][文件或目录...]

这项指令可改变存放在ext4文件系统上的文件或目录属性,这些属性共有以下8种模式。

  • a:系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。
  • b:不更新文件或目录的最后存取时间。  
  • c:将文件或目录压缩后存放。  
  • d:将文件或目录排除在倾倒操作之外。  
  • i:不得任意改动文件或目录。  
  • s:保密性删除文件或目录。  
  • S:即时更新文件或目录。  
  • u:预防意外删除。 

操作符号包括以下几种。

  • -R:递归处理,将指定目录下的所有文件及子目录一并处理。  
  • -v<版本编号>:设置文件或目录版本。  
  • -V:显示指令执行过程。  
  • +<属性>:开启文件或目录的该项属性。  
  • -<属性>:关闭文件或目录的该项属性。  
  • =<属性>:指定文件或目录的该项属性。
[root@RHEL7-1 ~]# vim testfile 
[root@RHEL7-1 ~]# chattr +i testfile 
[root@RHEL7-1 ~]# rm testfile 
rm:是否删除普通文件 "testfile"?y
rm: 无法删除"testfile": 不允许的操作

lsattr命令,用于显示文件隐藏属性。语法:lsattr [-adR] 文件或目录

  • -a:将隐藏文件的属性也显示出来。
  • -d:如果是目录,仅列出目录本身的属性而非目录内的文件名。
  • -R:连同子目录的数据也一并列出来。
[root@RHEL7-1 ~]# lsattr testfile 
----i--------e-- testfile

配置与磁盘管理

查看虚拟机设置磁盘情况

 fdisk -l 

找到刚才新增的磁盘目录:

  fdisk /dev/sdb

fdisk命令选项

命令功能命令功能
a调整硬盘启动分区q不保存更改,退出fdisk命令
d删除硬盘分区t更改分区类型
l列出所有支持的分区类型u切换所显示的分区大小的单位
m列出所有命令w把修改写入硬盘分区表,然后退出
n创建新分区x列出高级选项
p列出硬盘分区表

mkfs命令

-t: 指令要创建的文件系统类型

-c: 建立文件系统前首先检查坏块

-l file:从file文件中读磁盘坏块列表,file文件一般是由磁盘坏块检查程序产生的

-V:输出建立文件系统详细信息

把 /dev/sdb1 分区格式化文件系统为ext4:mkfs -t ext4 /dev/sdb1
 

挂载到一个指定的目录,系统默认提供了一个挂载目录 /mnt
通过命令挂载:mount 分区 挂载目录  mount /dev/sdb1 /mnt/sdb1

[root@RHEL7-1 ~]# mkdir /newFs   # 创建挂载点
[root@RHEL7-1 ~]# mount /dev/sdb1 /newFs/   # 挂载硬盘
[root@RHEL7-1 ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda2       9.8G   93M  9.2G    1% /
devtmpfs        898M     0  898M    0% /dev
tmpfs           912M     0  912M    0% /dev/shm
tmpfs           912M  9.0M  903M    1% /run
tmpfs           912M     0  912M    0% /sys/fs/cgroup
/dev/sda5       7.8G  3.0G  4.4G   41% /usr
/dev/sda3       7.8G   44M  7.3G    1% /home
/dev/sda6       7.8G  293M  7.1G    4% /var
/dev/sda8       976M  2.8M  906M    1% /tmp
/dev/sda1       283M  143M  122M   54% /boot
tmpfs           183M   28K  183M    1% /run/user/0
/dev/sdb1       4.8G   20M  4.6G    1% /newFs

df命令

df命令用来查看文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,以及目前还有多少空间等信息,还可以利用该命令获得文件系统的挂载位置。df命令的语法如下:df [参数选项]

常见参数选项如下:

  • -a:显示所有文件系统磁盘使用情况,包括0块的文件系统,如/proc文件系统。
  • -k:以k字节为单位显示。
  • -i:显示i节点信息。
  • -t:显示各指定类型的文件系统的磁盘空间使用情况。
  • -h:以人们易读的GB、MB、KB等格式显示。
  • -H:与-h参数一样,但是不是以1024,而是1000,即1k=1000,而不是1k=1024。
  • -x:列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。
  • -T:显示文件系统类型。
# 列出各文件系统的占用情况及文件类型:
[root@RHEL7-1 ~]# df -T
文件系统       类型        1K-块    已用    可用 已用% 挂载点
/dev/sda2      ext4     10190100   94868 9554560    1% /
devtmpfs       devtmpfs   919016       0  919016    0% /dev
tmpfs          tmpfs      933524       0  933524    0% /dev/shm
tmpfs          tmpfs      933524    9140  924384    1% /run
tmpfs          tmpfs      933524       0  933524    0% /sys/fs/cgroup
/dev/sda5      ext4      8125880 3091996 4598072   41% /usr
/dev/sda3      ext4      8125880   44848 7645220    1% /home
/dev/sda6      ext4      8125880  299352 7390716    4% /var
/dev/sda8      ext4       999320    2788  927720    1% /tmp
/dev/sda1      ext4       289285  145483  124346   54% /boot
tmpfs          tmpfs      186708      28  186680    1% /run/user/0

mount与umount命令

​​​​​​

在磁盘上建立好文件系统之后,还需要把新建立的文件系统挂载到系统上才能使用。这个过程称为挂载。文件系统所挂载到的目录被称为挂载点(mount point)。Linux系统中提供了/mnt和/media两个专门的挂载点。一般而言,挂载点应该是一个空目录,否则目录中原来的文件将被系统隐藏

文件系统可以在系统引导过程中自动挂载,也可以手动挂载,手动挂载文件系统的挂载命令是mount。该命令的语法格式如下:mount 选项 设备 挂载点

主要选项如下:

  • -t:指定要挂载的文件系统的类型。
  • -r:如果不想修改要挂载的文件系统,可以使用该选项以只读方式挂载。
  • -w:以可写的方式挂载文件系统。
  • -a:挂载/etc/fstab文件中记录的设备。
# 把文件系统类型为ext4的磁盘分区/dev/sdb1挂载到/newFS目录下
[root@RHEL7-1 ~]# mount -t ext4 /dev/sdb1 /newFs

挂载U盘

1. 新增USB硬件设备
2. 插入U盘,选择在虚拟机上加载
3. 通过fdisk -l 查看是否存在该设备
4. 挂载U盘

挂载光盘

1. 到虚拟机的设置中,指定CD目录
2. 在/dev/ 目录下就会出现 cdrom 这个目录
3. 只读挂载: mount -t auto /dev/cdrom /mnt/cd 

 

卸载 

umount 设备挂载地址
umount /mnt/cd

​​​​​​​自动挂载

 vim /etc/fstab
设备地址      挂载地址    文件格式   挂载方式     是否备份  是否检查
/dev/sdb3    /media/sdb3    ext4      defaults        0       0

 

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值