Linux命令
1.1、命令行语法
Command [options] [arguments]
注意:
1.命令一定使用空格进行分割
2.命令一定严格区分大小写。
3.单行命令一般不超过256个字符
2.1、用户相关命令
查看当前用户:
who am i
添加用户:
$ adduser 用户名(使用命令时不需要打$符号)
#查看用户信息
$ cat /etc/passwd
添加组
$ addgroup 用户名
#查看组信息
$ cat /etc/group
在指定组内创建用户
$ adduser --gid 组序号 用户名()
#查看用户信息
$ cat /etc/passwd
#查看组信息
$ cat /etc/group
更改用户到某个组
#usermod 修改用户信息
$ usermod -g 组序号 用户名
$ usermod --gid 组序号 用户名
#创建了user3用户,属于user3组。
$ adduser user3
#修改user3用户属于user1组(1000)
$ usermod --gid 1000 user3
删除无内容的组
$ groupdel user1
#在/etc/group查看
$ cat /etc/group
#删除组,如果某个账号使用该群组,则不能删除。
更改密码
#root用户更改其他用户的密码
$ passwd user1
#更改自己的密码
$ passwd
#root更改密码没有规则限制,并且不用输入旧密码。
#普通用户修改自己的密码,先输入旧密码,再输入新密码,在确认密码,新密码有规则限制。
切换用户
Linux su(英文全拼:switch user)命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。
- 切换到超级管理员身份
$ su
- 切换到用户
$ su 用户名
从root切换到其他用户不用输入密码,从其他用户切换到root用户或其他用户需要输入密码;只切换用户,不切换shell环境。读取的变量配置方式为 non-login shell 的方式,这种方式很多原本的变量不会被改变, 尤其PATH 这个变量。
$ su - 用户名
切换用户,切换shell环境。完整的切换到新使用者的环境,连同 PATH/USER/MAIL 等变量都转成新用户的环境,彻底切换,切换家目录,切换环境变量,直接切换到用户的家目录。
删除用户
$ userdel -r 用户名
-r:删除所有的信息,删除用户的相关数据,而用户的数据有:
用户账号/口令相关参数:/etc/passwd, /etc/shadow
使用者群组相关参数:/etc/group, /etc/gshadow
用户个人文件数据: /home/username, /var/spool/mail/username.
用户相关信息
$ id
id 这个命令则可以查询某人或自己的相关 UID/GID 等等的信息
2.2、基础命令
pwd
查看当前所在路径
$ pwd
cd
切换到指定目录中
$ cd
$ cd ~
$ cd /
$ cd ../
$ cd dir1
$ cd .. 返回上一级目录
ls
查看当前目录下的文件或目录。
#-a 查看所有文件和隐藏文件
$ ls -a
#-A 查看所有文件和隐藏文件,除了.和..
$ ls -A
#-l 长格式列出所有的文件和目录
$ ls -l
cat
预览文件内容,一次性展示整个文件的内容。
$ cat /etc/passwd
more
预览文件内容,会以一页一页的显示,逐页阅读,空格翻页,回车换行,q退出。
$ more /etc/passwd
touch
可以创建文件或者更改最近访问时间,如果文件不存在,创建文件,如果文件存在,修改最后一次访问的时间。
$ touch 文件名
$ touch test1
#查看文件修改时间
$ stat test1
man
查看指定命令手册
$ man ls
#输入回车向下翻一行
#输入空格向下翻一页
#输入q退出手册
clear
清除屏幕内容
$ clear
history
列出历史命令
$ history
2.3、文件操作
创建目录/文件夹
- 在当前目录创建一个目录
$ mkdir 目录名/文件名
- 在当前目录创建多个目录 - mkdir 目录名 目录名
$ mkdir 目录名 目录名
$ mkdir ~/目录名 ~/b目录名
- 在指定目录创建一个目录 - mkdir /目录名1/目录名2
$ mkdir /home/c
- 级联创建层次目录 - mkdir -p 目录1/目录2
$ mkdir -p e/f
$ mkdir -p ~/b/c
移动文件
- mv 要移动的目录或文件,移动到的路径,将一个目录或文件移动到另一个地方
# 将a目录移动到b目录里
$ mv /a /b
- 如果是移动文件,并且还是将文件到同一个目录,相当于给重命名
$ mv test1 test2
复制/拷贝
- 复制文件
# 创建文件
$ touch copy.txt
# 把源文件不改名复制到 b 目录下
$ cp copy.txt b
- 如果需要改名复制,命令如下:
#改名复制
$ cp copy.txt b/copy123.txt
- 如果复制的目标位置已经存在同名的文件,则会提示是否覆盖,例如:
$ cp -i copy.txt b
# 目标位置有同名文件,所以会提示是否覆盖
cp: overwrite 'b/copy.txt'? y
- 复制目录,复制目录只需使用“-r”选项即可,例如:
#建立测试目录
$ mkdir movie
#目录原名复制
$ cp -r /home/movie b
$ cp -r ./movie b
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。 相当于 -d、-p、-r 选项的集合。
-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。
删除
- rmdir 目录
# 删除一个空目录
$ rmdir 目录名
# 强制删除级联目录
$ rm -rf 目录名
- rm 文件
# 删除文件
$ rm 文件名
- rm -R 目录
# 创建级联目录
$ mkdir -p test1/test2
# 递归删除非空目录中的内容
$ rm -R test1
查找
# 在根目录下查找.txt文件
$ find / -name '*.txt'
# 在根目录中搜索文件test, 并显示此文件所在目录的路径名
$ find / -name test
归档(压缩)
# 将指定文件夹压缩到当前目录下,压缩包名称为xxx.tar.gz
$ tar –zcvf xxx.tar.gz ./c
# tar: Removing leading `/' from member names 使用绝对路径报错
$ tar -zcvPf b.tar.gz /home/c
解档
$ tar -zxvPf xxx.tar.gz