[持续更新]学习并记忆 Linux 下的常用的命令
写在前面:
本文仅仅介绍一些常用指令的常用方法,如果想要了解指令的全部信息,推荐自己在终端中输入 man + 'command_name'或 'command_name' + --help 自行阅读。或者,你还可以直接去官网查看最详细的介绍
为了方便理解和记忆命令,本文写出了其英文缩写对应的英文意义.
* 文件、目录管理*
1. ls ( list directory contents,列出文件夹的内容信息)
格式:
ls [OPTION]... [FILE]...
常用参数搭配:
ls -a 列出目录所有文件,包含以.开始的隐藏文件 ls -A 列出除.及..的其它文件 ls -r 反序排列 ls -t 以文件修改时间排序 ls -S 以文件大小排序 ls -h 以易读大小显示 ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
2.cd命令(change directory,改变所处文件夹位置)
格式:
cd [OPTION]... [FILE]...
常用参数搭配:
cd / 打开根目录 cd ./ 打开当前目录 cd ../ 打开父目录 cd ~ 打开用户目录(也即 /home/usrname) cd !$ 将上个命令的参数作为cd参数使用
3.pwd命令 (print the name of current/working directory,显示当前文件夹的绝对路径)
格式:
pwd [OPTION]...
常用参数搭配:
pwd 查看当前路径
pwd -P 查看软链接的实际路径
4.mkdir命令 (make new directory , 在当前所处的目录下,新建子文件夹)
格式:
mkdir [OPTION]... DIRECTORY...
常见参数搭配:
-m 对新建目录设置存取权限,也可以用chmod命令设置
-p 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录
示例:
5.rmdir命令 ( remove an empty directory,删除当前所处目录下的一个空的子文件夹)
格式:
rmdir [OPTION]... DIRECTORY...
常见参数搭配:
rmdir [directory_name] 删除一个空文件夹 rmdir -p [path] 递归删除一条空目录 rmdir -v ... 显示删除的信息(可搭配 -p 使用) [注意,对于rmdir命令,如果删除的目录中包括文件,则会报错] 另外,OPTION 中可以选择一个参数叫作 --ignore--fail-on-non-empty 就是在尝试删除非空目录的时候不会报错,但是依然不能删掉.
示例:
6.rm 命令 (remove file or directory,删除文件或文件夹 )
rm命令比rmdir命令更加强大(因此,这个命令也十分危险).它不仅可以删除目录,还可以删除文件.甚至,即使是非空目录也可以直接删除.
在使用rm时,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。
格式:
rm [OPTION]... [FILE]...
常见参数搭配:
-f, --force 忽略不存在的文件,从不给出提示。 -i, --interactive 进行交互式删除 -r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。 -v, --verbose 详细显示进行的步骤 --help 显示此帮助信息并退出 --version 输出版本信息并退出
7.touch 命令 (change file timestamps or make empty file,改变时间戳或创建空文件)
格式:
touch [OPTION]... FILE...
常见参数搭配:
-a (change only the access time)--time=atime或--time=access或--time=use 只更改存取时间。 -c 或--no-create 不建立任何文档。 -d 使用指定的日期时间,而非现在的时间。 -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。 -m 或--time=mtime或--time=modify 只更改变动时间。 -r (reference)把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。 -t 使用指定的日期时间,而非现在的时间。
8.file命令 (determine file type,确认文件类型)
格式:
file [OPTION]... FILE...
常见参数搭配:
-b:(brief,简明扼要)列出辨识结果时,不显示文件名称; -c:(complie,编译)详细显示指令执行过程,便于排错或分析程序执行的情形; -v:(version,版本)显示版本信息; -z:尝试去解读压缩文件的内容。
9.find (search for files in a directory hierarchy,在文件夹中查找文件)
file 的用法很复杂,同时功能也很强大.其中最为常用的功能为 find -name '文件(夹)名' / find -user '文件属主'
格式:
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [starting-point...] [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 -path 和 ipath [path]: 路径名称符合 path 的文件,ipath 会忽略大小写 -name 和-iname [name]: 文件名称符合 name 的文件。iname 会忽略大小写 -size [n] : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
-type [c] : 文件类型是 c 的文件
10.cat命令 (concatenate files and print on the standard output,连接文件并在标准输出上打印)
格式:
cat [OPTION] file
常见参数搭配:
cat /etc/fstab # 显示文件/etc/fsab的内容
cat texta textb # 分别显示文本文件texta和textb的内容
11.more、less 命令(分页显示文本文件的内容)
格式:
more [OPTION] file
常用参数搭配:
more demo.c #分页显示demo.c的内容
more和less略有区别,但不重要。
12.head、tail命令(显示文件前(后)若干行)
格式:
head(tail) [OPTION] file
常见参数搭配:
head -20 /etc/services #显示文件services的前20行
13.ln命令(link,建立硬链接或软连接)
格式:
ln [OPTION] file newfile
常见参数搭配:
ln sfile dfile #对sfile建立硬链接文件dfile
ln -s sfile dfile #对文件sfile建立软链接文件dfile
补充说明:硬链接即所谓'拷贝,副本',软链接即所谓'Windows下的快捷方式,MacOS下的替身'
* 用户和用户组管理 *
前言:
Linux是多用户操作系统,Linux可在系统中建立多个用户,有不同用户分享系统资源,每个用户具有不同的资源访问权限,不同用户间既有共享资源,又有独享资源。Linux通过用户组来管理相关用户。
Linux用户的分类:(1)super usr 超级用户 (2)virtual usr 虚拟用户 (3)genneral usr普通用户
再Linux系统中,所有用户都有一个唯一的表示UID,超级用户的UID = 0,虚拟用户UID为1~499间 , 普通用户UID为 500~60000之间。
值得一提的是虚拟用户是一种权限受限的用户,为了满足系统进程对文件资源访问控制而建立,虚拟用户不能用来登录,例如bin、daemon、adm和lp等都是虚拟用户
用户组的管理:用户组是由若干相关的用户构成的集合,属于该组的用户对某些文件具有相同的存取权限. 一个用户可以属于多个用户组,一个用户组可以包含多个用户.多个用户组中,必须有一个是主用户组,其余为附加用户组.创建文件的用户成为该文件的属主用户,该用户的主用户组称为该文件的属组.每一个文件的属主用户和属主是唯一的.
1.groupadd / groupdel(add a new usr group,创建新的用户组 / delete an usr group,删除一个用户组)
格式(这里以groupadd为例):
group group_name
常见参数搭配:
groupadd my_new_group # 创建一个用户组,组名为my_new_group
groupdel test_group #删除名为test_group的用户组
2.useradd(add a new user,创建一个新用户)
格式:
useradd [OPTION] name
常见参数搭配:
useradd usr1 #创建一个新用户,用户名为usr1 useradd -u 321 -g grp1 usr2 #创建用户usr2,指定其UID = 321,grp1为其用户组 useradd -g g1 -G g2,g3 usr1 #创建用户usr1,其主用户组为g1,附加用户组为g2和g3 groups usr1 #显示用户所属的用户组
3.passwd命令(为用户添加密码)
格式:
passwd username
刚刚新建的用户,可以直接设定密码.如果已经有密码,必须先输入原密码
用户属性的修改
1.usermod命令(修改用户属性)
格式:
usermod [OPTION] username
常见参数搭配:
usermod -g grp2 usr1 #将用户usr1的主用户组改为grp2
usermod -s /bin/bash usr1 #将用户usr1的登录Shell改为bash
2.chown命令(改变文件的所属用户和组)
格式:
chown [usr] : [usr group] file
常见参数搭配:
chown usr1 myfile #将文件myfile的属主用户改为usr1
chown :grp1 myfile #将文件myfile的所属用户组改为grp1
chown usr1:grp1 myfile #将文件myfile的属主用户改为usr1,所属用户组改为grp1
用户管理相关配置文件
在进行用户管理的过程中,所有用户、用户组和密码等信息都存储在/etc的相关文本文件中.
下面列出一些与用户管理有关的有关配置文件.
* 文件的权限管理 *
1.文件类型:
2.权限的种类:
Linux系统中定义了三种权限类型: 读(r) 、写(w) 、执行(x)
3.权限的作用:
4.权限的显示格式:
5.chmod命令(change mode,权限的修改)
进程相关命令
ps:
存储与备份
1.tar命令