一、用户与系统操作
1)用户切换
Linux中有两类用户:超级用户也称根用户,用户名恒为root,该用户对系统具有完全的操作权限,用于管理员使用;普通用户,具有部分操作权限,用于日常操作使用。用户之间的切换或登入,常用su、sudo、login等命令完成。
su:语法 su [参数] [用户名];切换当前用户或者切换到超级用户,如果用户名省略则切换到超级用户,切换用户可能需要提供目标用户的密码。
参数说明:-l 重新加载登录时的启动脚本;-m 保留当前环境变量,不重新加载脚本
举例:当前用户切换到 oracle用户;su - oracle
sudo:语法 sudo [参数] 命令;以其他用户的身份运行命令,仅单条命令有效,运行后即返回当前用户,默认情况下是超级用户身份运行命令,运行前可能需要输入目标用户密码。
参数说明:-b 后台运行命令,运行后立即返回提示符,而不是等待其运行结束后返回提示符;-H 使用目标用户的主目录;-u {用户名|用户ID} 指定目标用户,默认为超级用户。
举例:当前用户为oracle,使用smart用户删除 a.c文件;sudo -u smart rm a.c。注意:当前用户oracle必须有权限执行sudo,配置可以在/etc/sudoers文件中查看是否有权限,表现为root ALL = (ALL) 下面是否有 oracle ALL = (ALL)。
login:语法 [-p] {[用户名][ENC=VAR] ...| [-h 主机名] [-f 用户名]};启动一个用户会话,该命令只有超级用户才能运行。
参数说明:-p 保留当前的环境变量设置;-h 设定登入主机;-f 设定登入用户。
举例:与用户smart 身份登入;login -f smart。注意:当在/etc目录下存在 nologin文件时,只允许登入root用户。
2)用户信息修改
Linux中对passwd命令对用户密码进行管理。
passwd:语法 passwd[参数][用户名];该命令可以完成对用户的管理、密码修改等操作。
参数说明:-a 查看所有用户的密码状态;-d 删除指定用户的密码;-l 锁定指定的用户;-u 解除对指定用户的锁定;-wn 设定密码过期警告的天数为n天。
举例:设置oracle用户密码过期警告的天数为3天;passwd -w3 oracle。
3)关闭系统
常见的关闭系统有下列几种命令:exit 退出当前终端会话,关闭终端控制台;reboot 退出当前终端会话,系统进入关机程序,关闭系统,然后重新启动系统;init()与reboot一致;shutdown 退出当前终端会话,系统进入关机程序,关闭系统,关闭计算机电源;halt与shutdown一致;poweroff 强行关闭系统,关闭计算机电源。
二、获得帮助
1)获得简要帮助,通常有以下几种命令-h、-?、--help。
举例:查看passwd命令的简要帮助;passwd --help。
2)获得详细帮助,通常通过以下方式获取:man [命令]或 info [命令],在详细页面中可以通过上下键进行翻页和上下滚动文档,退出详细帮助通常用Q建。
举例:查看passwd命令的详细信息;man passwd。
三、变量、流、管道操作
变量、流、管道是Linux操作的一些元素,这些元素可以实现一些特殊的功能,它们可以对命令进行组合以获取更加强大的功能。
变量:是一种临时记录字符串的方式,它仅在一次会话有效,可以通过变量记录一些特殊含义的字符串。
流:是文件打开的一种形式,是文件在内存中组织的一种抽象,可以通过流的重定位等操作实现文件得复杂读写操作。
管道:是一种进程间通信的方式,用来在命令之间传递信息。
1)变量赋值
变量赋值常用命令为export。
export语法:export name=[值]...;变量赋值时,注意"="的两边不能有空格,如果值中包含空格,则需要使用双引号"""将值扩起来。
举例:给变量myname设置值为AAA A;export myname="AAA A"。
2)变量的使用
使用变量时可以通过变量名进行获取变量值。
举例:获取变量myname变量的值;${myname}。
3)流的输出
常用的流输出命令有cat、echo、sort、uniq、head、tail、wc。
cat语法:cat[参数]...[文件]...;将文件和标准输入设备的输入使用标准输出流输出,通常用来显示文件的内容。
参数说明:-b 对所有的非空行进行编号输出;-n 对所有的行进行编号输出;-T 将所有的Tab显示成"^|;-s 对连续出现的多个空行,仅输出一个空行;-E 在每行的结束位置输出$。
echo语法:echo [参数]...[字符串]...;将单行文本输出到标准输出设备。
参数说明:-n 在输出的最后不输出换行;-e使用转义符,通常有(\0NNN 输出ASCII码为八进制的字符,\\返斜线,\n 换行,\t Tab键);
sort语法:sort [参数]...[文件]...;将文件得所有内容进行排序输出。
参数说明:-b 排序时,忽略行首空白符;-g 按照通常的数字顺序排序;-M 按照英文大写月份排序;-n 按照字符串数值排序;-R 按照随机哈希值排序;-r 倒序排序;-m 合并已经排序的文件,并且不排序;-o文件 将排序的结果输出到"文件",而非标准输出流;-u 对于重复的行仅输出一次;-z 输出结束后,输出"\0"字符而不换行。
uniq语法:uniq [参数]...[文件]...;将文件和标准输入输出到标准输出,但相邻的重复行仅输出一次。
参数说明:-c 在输出的行首加入行号;-d 仅输出重复行;-u 仅输出非重复行;-wN 仅查看每行的前N个字符,即当前N个字符重复就认为是重复行;-z 输出结束后,输出"\0"字符而不换行。
head语法:head [参数]...[文件]...;将文件或标准输入的前几行输出到标准输出。
参数说明:-c N 指定输出的字节个数;-n N 指输出的行数。
举例:显示文件 aa.txt 的前5行;head -n 5 aa.txt。
tail语法:tail [参数]...[文件]...;将文件或标准输入的后几行输出到标准输出。
参数说明:-c N 指定输出的字节个数;-n N 指输出的行数。
举例:显示文件 aa.txt 的后5行;tail -n 5 aa.txt。
wc语法:wc [参数]...[文件]...;对文件或标准输入中的数据进行统计。
参数说明:-c 统计字节个数;-m 统计字符个数(ASCII字符集中字符与字节存储空间相同,在Unicode中1字符等于2字节,在ISO中1字符等于4字节);-l 统计行数;-w 统计单词个数;-L输出最长行的长度。
举例:计算文件aa.txt的行数;wc -l aa.txt
4)流的重定向
命令 > 文件或命令 >> 文件;其中>将文件的原始内容删除,并将输出内容输出到文件中;>>保持文件的原始内容,并将输出的内容添加到文件的尾部。
5)管道
使用格式为 命令1|命令2|...|命令n
举例:将文件aa.txt中的hello字符的所有行的最后3行取出重定向到a.txt文件中;grep "hello" aa.txt| tail -n 3 >a.txt。