Linux常用命令介绍一:用户管理命令,文件管理命令,文档传输,文档编辑,系统管理

目录

1 用户管理命令

1.1 添加用户:adduser/useradd

1.2 设置用户密码:passwd

1.3 添加用户组:groupadd

1.4 修改用户账户信息:usermod

1.5 修改用户组:groupmod

1.6 删除用户:userdel

1.7 删除用户组:groupdel

1.8 用户信息文件:/etc/passwd

1.9 以其他身份执行命令:sudo

1.10 普通用户授予特权:/etc/sudoers

1.11 用户切换:su

2 文件管理命令

2.1 用户和文件

2.2 文件/目录许可权限

2.3 修改文件/目录许可权限:chmod

2.4 修改文件/目录所有者:chown

2.5 目录和文件通配符

2.6 切换目录:cd

2.7 创建文件或目录链接:ln

2.8 查看文件内容:cat

2.9 列出文件或目录:ls

2.10 创建目录 mkdir

2.11 复制文件或目录:cp

2.12 移动或更名现有文件或目录:mv

2.13 删除目录或文件:rm

2.14 比较文件差异:diff

2.15 搜索文件和目录:find

3 文档传输

3.1 ftp(file transfer protocol)

3.2 tftp(trivial file transfer protocol)

4 Linux文档编辑

4.1  文件编辑器:vi/vim

4.2 表达式运算:expr

4.3 管道命令:|

4.4 匹配:grep

4.5 流编辑:sed

4.6 排序:sort

4.7 重复:uniq

5 系统管理

5.1 系统时间与日期:date

5.2 查询进程状态:ps (process status)

5.3 结束执行进程:kill/killall

5.4 重启计算机:reboot

5.5 关闭计算机:shutdown

5.6 多重视窗程序:screen

5.7 休眠:sleep

5.8 Linux CPU信息:/prop/cpuinfo

5.9 任务管理器:top

5.10 查询cpu: mpstat

5.11 查询内存:free

5.12 系统信息:uname


【写在前面】

后文链接:Linux常用命令介绍二:系统设置,网络与通讯,磁盘管理,备份和压缩

1 用户管理命令

1.1 添加用户:adduser/useradd

(1)命令: adduser username 

(2)常用参数:

-d:指定用户的目录,默认为/home/username。

(-d的用户上级目录必须是一个已存在的目录。)

-g:指定用户组

-G:指定用户附加组

-s:指定用户的默认shell

(3)举例:#adduser Sheryl -d /opt/www/Sheryl -g user -s /bin/bash

(4)补充:

新添加的用户必须先设置密码才能使用。

设置ID值时,0-499预留给特殊用途(bin,mail等账户),所以给用户设置ID要大于500。

Linux常用命令介绍一:用户管理命令,文件管理命令,文档传输,文档编辑,系统管理_第1张图片

1.2 设置用户密码:passwd

(1)命令: passwd username

(2)常用参数:输入上述命令后,会提示输入密码。

(3)补充:修改其他人用户密码时,必须有对应的权限。

Linux常用命令介绍一:用户管理命令,文件管理命令,文档传输,文档编辑,系统管理_第2张图片

1.3 添加用户组:groupadd

(1)命令: groupadd groupname

(2)常用参数:无

(3)举例:

1.4 修改用户账户信息:usermod

(1)命令: usermod [参数]

(2)常用参数:

-c<备注>:修改用户账号的备注文字

-d<登入目录>:修改用户登入时的目录

-e<有效期限>:修改账号的有效期限

-g<群组>:修改用户所属的群组

-G<群组>:修改用户所属的附加群组

-l<账号名称>:修改用户账号名称

-L:索引用户密码,使密码无效

-s:修改用户登入后所使用的shell

-u:修改用户ID

-U:解除密码锁定

(3)举例:#usermod -l newname oldname

(4)补充:

usermod 可用来修改用户账号的各项设定。

usermod不允许改变正在线上的使用者账号名称。

当usermod改变用户ID时,必须确认该user没在电脑上执行任何程序。

Linux常用命令介绍一:用户管理命令,文件管理命令,文档传输,文档编辑,系统管理_第3张图片

1.5 修改用户组:groupmod

(1)命令: groupmod -n 新群组名 旧群组名

(2)常用参数:-n <新群组名>:带新群组名

(3)举例:#groupmod -n newgroupname oldgroupname

Linux常用命令介绍一:用户管理命令,文件管理命令,文档传输,文档编辑,系统管理_第4张图片

1.6 删除用户:userdel

(1)命令: userdel [参数] 用户账号

(2)常用参数:

-r:删除用户以及其所有的文件/删除用户登入目录以及目录中的所有文件

-f:强制删除用户,即使用户正在登录

(3)举例:#userdel -r Sheryl

(4)补充:删除命令的遗留问题,比如目录和用户在别的地方新建的文件等

Linux常用命令介绍一:用户管理命令,文件管理命令,文档传输,文档编辑,系统管理_第5张图片

1.7 删除用户组:groupdel

(1)命令: groupdel 用户组账号

(2)常用参数:无

(3)举例:#groupdel user

(4)补充:删除用户组之前,必须确保该组不是任何用户的主组,否则删除失败。

Linux常用命令介绍一:用户管理命令,文件管理命令,文档传输,文档编辑,系统管理_第6张图片

Linux常用命令介绍一:用户管理命令,文件管理命令,文档传输,文档编辑,系统管理_第7张图片

1.8 用户信息文件:/etc/passwd

 (1)文件内容格式:用户名:密码:用户ID:组ID:全名:用户主目录:shell 

(2)常用参数:无

(3)补充:

shell的模式定义了该用户能否登陆。

如果用户的bash为/sbin/nologin,则表示该用户不可以登陆

用户ID0表示超级管理员用户,uid 0-500是系统保留的ID。

Linux常用命令介绍一:用户管理命令,文件管理命令,文档传输,文档编辑,系统管理_第8张图片

1.9 以其他身份执行命令:sudo

(1)命令: sudo [参数]

(2)常用参数:

-b:在后台运行指令

-H:将HOME环境变量设为新身份的HOME环境变量

-k:结束密码的有效期限,即下次再执行sudo时需要密码

-l:列出目前用户可执行与无法执行的指令

-p:改变询问密码的提示符

-s:执行指定的shell

(3)举例:#sudo ls -l root   //表示用户通过sudo的方式切换到root并执行命令 ls -l root

(4)补充:

确认系统安装了sudo:rpm -qa | grep sudo

在/etc/sudoers中,指明该用户有执行这个命令的权限。

Linux常用命令介绍一:用户管理命令,文件管理命令,文档传输,文档编辑,系统管理_第9张图片

Linux常用命令介绍一:用户管理命令,文件管理命令,文档传输,文档编辑,系统管理_第10张图片

Linux常用命令介绍一:用户管理命令,文件管理命令,文档传输,文档编辑,系统管理_第11张图片  

1.10 普通用户授予特权:/etc/sudoers

(1)文件说明:

文件指明哪些用户能做什么操作,可以通过man 5 /etc/sudoers 查看。

只有root用户可以修改该文件,保存时要按 ! 强制保存。比如 :wq!

Linux常用命令介绍一:用户管理命令,文件管理命令,文档传输,文档编辑,系统管理_第12张图片

(2)常用配置:

允许Sheryl执行任何命令(root有这个权限): Sheryl ALL=(ALL)ALL (可见1.9中的截图)

允许用户执行命令且不需要密码 :Sheryl ALL=(ALL)NOPASSWD:ALL

用户机器=命令

允许sys组的成员执行NETWORKING SOFTWARE命令: %sys ALL=NETWORKING, SOFTWARE

(3)举例:无

1.11 用户切换:su

(1)命令: su [-] username

(2)实例:

su oracle, 不载入/home/oracle/.profile下的环境变量,切换后继续使用当前用户环境变量。

su -oracle, 载入/home/oracle/.profile 下的环境变量。

su - Sheryl; echo$PATH; pwd 

su Sheryl; echo$PATH; pwd

(3)补充:

1) 限定用户组切换root用户

前提:默认情况下,任何用户都可以通过su获取root权限,对系统进行任何操作。

解决方案:为了加强系统安全,Linux提供一个管理员组wheel,属于这个组的用户才能使用su命令获得root权限。

如何操作:

先将用户添加到wheel组:usermod -G wheel username

然后修改 /etc/pam.d/su,添加auth required pam_wheel.so user_uid

2) 用户/系统环境变量文件

/etc/profile:全局配置,不管是哪个用户,登录时都会读取该文件

/etc/bashrc:全局配置, bash执行时,不管是何种方式,都会读取该文件

~/.bashrc:局部配置文件

~/.bash_profile:局部配置文件

注意:

登录时~/.bashrc和~/.bash_profile都会被加载。同一个变量分别在上述2个文件定义时,系统以读取~/.bash_profile为准。~/.bashrc再去给下面的环境变量赋值。


 

2 文件管理命令

2.1 用户和文件

Linux中,除了root之外,其他用户想要访问不是自己本用户的文件,需要先经过授权。

2.2 文件/目录许可权限

Linux常用命令介绍一:用户管理命令,文件管理命令,文档传输,文档编辑,系统管理_第13张图片

说明:

(1)d表示目录,r是读取权限4,w是修改权限2,x是执行权限1

 (2)第1位:标识文件或目录。-表示文件,d表示目录,l表示链接

(3)第2-4位:该文件或目录的权限

(4)第5-7位:用户组的权限

(5)第8-10位:其他用户的权限

(6)文件第三域:文件或目录所属的用户

(7)文件第四域:文件或目录所属的用户组

(8)文件的第九域:文件或目录名称

 

2.3 修改文件/目录许可权限:chmod

#chomd 777 -R /var/abc        //递归修改目录中文件的属性为777

#chmod user.Sheryl -R /var/abc        //递归修改目录中文件的所属用户和用户组

#chmod u+x file        //给file的属主增加执行权限

#chmod 751 file等同于#chmod u=rwx,g=rx,o=x file

#chmod 444 file 等同于 #chmod a-wx,a+r file

#chmod -R u+r directory        //递归分配读权限

补充:

chmod是守则权限

setfacl是设置目录属性访问控制 !!! 深入学习一下

2.4 修改文件/目录所有者:chown

示例:chown -R user.Sheryl /var/abc        //递归修改/var/abc的所有者信息

参考:#chmod user.Sheryl -R /var/abc        //递归修改目录中文件的所属用户和用户组

2.5 目录和文件通配符

Linux常用命令介绍一:用户管理命令,文件管理命令,文档传输,文档编辑,系统管理_第14张图片 

示例:

co*h:表示以co开头的文件

he*o*t.txt:以he开头,包含一个o,并且以t.txt结尾的文件

doc[0-9].html:名为doc0到doc9的.html文件

2.6 切换目录:cd

作用:让用户在不同的目录间切换,但是该用户必须拥有足够的权限。

示例:

cd ~:直接返回用户主目录

cd -:返回上一次用户所在目录

cd /root/:使用绝对路径

cd ../../root/:使用相对路径

2.7 创建文件或目录链接:ln

参数:-s 软链接

补充:硬链接和软链接的知识点

2.8 查看文件内容:cat

作用:cat file  //查看文件内容

2.9 列出文件或目录:ls

示例:

ls -l /etc:以详细列表的方式显示/etc/目录下的所有文件和目录。

ls -lt /etc:以详细列表的方式,按照日期排序显示/etc目录下所有文件和目录。

2.10 创建目录 mkdir

示例:

mkdir newdir

mkdir -p /home/Sheryl/abc        //新建目录abc,如果上一层目录不存在,则一并创建

mkdir -m 777 /home/Sheryl/abc        //新建目录abc,设置目录权限为777

2.11 复制文件或目录:cp

示例:

cp /home/Sheryl/abc.txt /home/test        //将abc.txt文件复制到 /home/test目录下

cp -r /home/Sheryl/abc /home/test       //将abc目录递归复制到 /home/test目录下

2.12 移动或更名现有文件或目录:mv

示例:

mv -f /home/Sheryl/abc /home/test       //将abc目录移到test目录下

mv -f /home/Sheryl/abc /home/test/abcd       //将abc目录移到/test目录下并更名abcd

mv /home/Sheryl/abc.txt /home/test     //将abc.txt文件移到/test目录下

2.13 删除目录或文件:rm

示例:

rm /home/Sheryl/abc.txt        //删除文件

rm /home/Sheryl/abc        //删除目录

当误删除某些文件,可以尝试用 extundelete 恢复。但也存在一定的不完整性。

2.14 比较文件差异:diff

(1)作用:

以逐行的方式,比较文本文件的异同处。

如果要指定目录,则diff会比较目录中相同文件名的文件,但不会比较其中的子目录。

(2)说明:

比较结果中,会说明两个文件中不同的地方,即需要修改它们的哪些行。

如果用-表示文件名,则表示标准输入。

如果是目录名,那么将对该目录中的同名文件进行比较。

(3)命令: vim diff -0 file1 file 2        //会同时打开两个文件在水平显示

2.15 搜索文件和目录:find

(1)命令格式:find [路径] [-type fdl] [-name 字符串] [-atime +/- 天数]

(2)参数说明:

路径:要搜索的路径

-type:确定搜索的范围。f是文件,d是目录,l是链接

-name:文件或目录名表达式

-atime:多少天内修改过

(3)实例:

find / -name "sheryl"        //从根目录开始查找名字为sheryl的文件或目录

find / -type f -name "sheryl"        //从根目录开始查找名字为sheryl的文件

find / -type f -name "*sheryl*"        //从根目录开始查找名字里包含sheryl的文件

(4)补充知识点:

#find ... -exec ls {} \;

#find ... | xargs ls -rf

这两个命令都可以把find的查询结果打印出来。区别是前者把结果一次性传给exec选项,后者xargs命令会分批次的处理。

xargs的优点:因为是批处理的,所以执行效率比较高,因为用了缓冲。

xargs的缺点:可能参数数量过多,导致后面的命令执行失败。(如果是#find ... | xargs rm{} \;的话,无此问题,因为rm是逐个处理的)。

-exec 后面必须用分号;结尾。因为shell会处理分号;,所以用\;转义,防止被处理掉。

{}写成‘{}’,也是为了避免被处理掉。

(5)提升练习

1)在/tmp中查找所有*.h,并在这些文件中查找SYSCALL_VECTOR这个内容,最后打印出所有包含SYSCALL_VECTOR的文件名

find /tmp -name *.h | xargs -n 50 grep SYSCALL_VECTOR

grep SYSCALL_VECTOR /tmp/*.h | cut -d ":" -f1|uniq>filename

find /tmp -name *.h -exec SYSCALL_VECTOR '{}' \; -print

2)删除在/下所有名为filename的文件

find / -name filename -exec rm -rf '{}' \;

3)查找磁盘中大于3M的文件

find ./ -size +3000k -exec ls -ld '{}' \;

4)将find出来的内容拷贝到另一个地方

find /home -name sheryl -exec cp -rf '{}' /tmp \;

5)查找 2020-01-01 00:30:00时更改过的文件

find /home -name *.rpm | xargs ls -l | grep  "2020-01-01 00:30:00"

3 文档传输

3.1 ftp(file transfer protocol)

(1)为什么要用ftp?

Linux很多软件实现FTP服务。常用的有vsftpd,Wu-ftpd,Proftp等。

CentOS中默认安装的是vsftpd

访问FTP服务器时需要先验证,只有经过验证,用户才能访问和传输文件。

FTP是ARPANet的标准文件传输协议,该网络就是Internet的前身。

(2)命令格式:ftp [-dignv] [主机名或IP地址]

(3)参数说明:

-d:详细显示指令执行过程,偏于排错或分析程序执行的情形

-i:关闭互动模式,不询问任何问题

-g:关闭本地主机文件名称,支持特殊字符的扩充特性

-n:不使用自动登录

-v:显示指令执行过程

(4)实例:ftp 10.32.0.111

(5)延伸:

问题:有时候登录ftp服务会提示500 OOPS。这时需要考虑SELinux的安全问题。

解决方案: setsebool ftp_home_dir=1,然后重启vsftp服务即可解决问题。

3.2 tftp(trivial file transfer protocol)

(1)命令格式:tftp [主机名或IP地址]

(2)补充说明:

FTP让用户得以下载存放于远端主机的文件,也能将文件上传到远端主机放置。

TFTP是简单的文字模式FTP程序,所使用的指令和FTP类似。

(3)TFTP服务器/客户端的安装:

yum install tftp         //安装tftp client

yum install tftp-server        //安装 tftp server

yum install xinetd        //安装tftp的超级服务守护进程

Linux常用命令介绍一:用户管理命令,文件管理命令,文档传输,文档编辑,系统管理_第15张图片

Linux常用命令介绍一:用户管理命令,文件管理命令,文档传输,文档编辑,系统管理_第16张图片

Linux常用命令介绍一:用户管理命令,文件管理命令,文档传输,文档编辑,系统管理_第17张图片  


4 Linux文档编辑

4.1  文件编辑器:vi/vim

(1)vi/vim是常用的编辑器。 vim是vi的增强版,多了代码加亮的效果。

(2)常用模式: 命令模式,insert模式, 底部模式

(3)常用操作:略 (之后再补)

4.2 表达式运算:expr

(1)功能:expr命令是一个手工命令行计数器,用于在Linux下求表达式变量的值。

(2)使用格式:expr Expression

表示命令读入Expression参数,计算它的值,然后将结果写入到标准输出。

(3)参数规则:

用空格隔开每一项。

用\放在shell特定的字符前面。

对包含空格和其他特殊字符的字符串要用引号括起来。

(4)实例:

Linux常用命令介绍一:用户管理命令,文件管理命令,文档传输,文档编辑,系统管理_第18张图片

4.3 管道命令:|

(1)管道命令,仅能处理经由前面一个指令传出的正确输出信息,然后传递给下一个命令,作为标准输入standard input。能处理standard output的信息,不能处理standard error的信息。

(2)命令格式: command1 | command2 | command3

(3)注意:每个管道右边命令,必须能够接受标准输入流命令才行

4.4 匹配:grep

(1)命令格式: grep [-ivnE] 字符串文件

(2)参数:

-n:显示行号

-A:显示后几行

-B:显示前几行

-v:排除

-i:不区分大小写

-R:递归查找目录

-E:扩展查找

(3)实例:

#grep "Sheryl" /etc/passwd        //查找passwd中包含Sheryl的行

#grep -n "Sheryl" /etc/passwd        //查找passwd中包含Sheryl的行,显示行号

#grep -v "Sheryl" /etc/passwd        //查找passwd中不包含Sheryl的行

#grep -R -E "Sheryl" /etc/passwd        //递归查找passwd中包含Sheryl这个词的行

4.5 流编辑:sed

(1)作用:sed是一种在线编辑器,它一次处理一行内容

处理时,把当前处理的行存储在临时缓冲器,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,不断重复直至文件末尾。

文件内容并没有改变,除非使用重定向存储输出。

Sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,填写转换程序等。

(2)语法命令:sed [-hnV] [-e

你可能感兴趣的:(十一.,测开之Linux(自用),Linux系统)