[root@localhost ~]# #/root
[xinghan@localhost ~]$ #/home/xinghan
如上:[用户名@主机名 当前目录] #超级管理员权限 $普通权限
命令 选项 参数 (三者之间要有空格,区分大小写)
command [-options] [args]
[args]:参数(多个参数之间用空格分隔)
命令格式验证:
[root@localhost ~]# ls -a -l install.log
-rw-r--r--. 1 root root 41364 Oct 4 2015 install.log
[root@localhost ~]# ls -al install.log
-rw-r--r--. 1 root root 41364 Oct 4 2015 install.log
[root@localhost ~]# ls -al install.log install.log.syslog
-rw-r--r--. 1 root root 41364 Oct 4 2015 install.log
-rw-r--r--. 1 root root 9154 Oct 4 2015 install.log.syslog
[root@localhost ~]# ls -al install*
-rw-r--r--. 1 root root 41364 Oct 4 2015 install.log
-rw-r--r--. 1 root root 9154 Oct 4 2015 install.log.syslog
[root@localhost ~]# ls -al *.log
-rw-r--r--. 1 root root 41364 Feb 8 2017 install.log
[root@localhost ~]# ls -al *.log*
-rw-r--r--. 1 root root 41364 Feb 8 2017 install.log
-rw-r--r--. 1 root root 9154 Feb 8 2017 install.log.syslog
1、whatis 命令(如果不成功,则执行makewhatis)
2、使用help查看内建命令的帮助(enable查看内建命令)
3、man 命令:enter按行翻,空格按页翻;HOME/END键可以快速到首页/尾页(SecureCRT中无效);查找按 /要查找的内容,查找 下一个/上一个:按n/N;退出按q。
4、info 命令
5、命令--help
查看内建命令:enable
示例:
[root@localhost ~]# whatis ls
ls (1) - list directory contents
ls (1p) - list directory contents
[root@localhost ~]# whatis date
date (1) - print or set the system date and time
date (1p) - write the date and time
[root@localhost ~]# help cd
cd: cd [-L|-P] [dir]
Change the shell working directory.
[root@localhost ~]# help ls
-bash: help: no help topics match `ls'. Try `help help' or `man -k ls' or `info ls'.
创建目录:mkdir。
命令格式:mkdir 目录名 [目录1]
参数:-p:同时创建多层目录。
示例:
[root@localhost ~]# mkdir /home/demo/abc
mkdir: cannot create directory `/home/demo/abc': No such file or directory
[root@localhost ~]# mkdir /home/demo
[root@localhost ~]# cd /home/demo/
[root@localhost demo]# mkdir abc xyz
[root@localhost demo]# ls
abc xyz
[root@localhost ~]# mkdir -p /home/a/b/c #一次性将 a/b/c全部创建出来
删除目录或者文件:rm。
命令格式:rm -rf 目标
参数:-r递归删除、-f强制删除。
删除空目录:rmdir。
rmdir 目录
示例:
[root@localhost home]# ls
aaa demo ds xinghan zs
[root@localhost home]# rm aaa
rm: cannot remove `aaa': Is a directory
[root@localhost home]# rm -r aaa 删除目录需要带 -r
rm: descend into directory `aaa‘? 不带-f会提示是否删除 输入y回车才删除,不输入y不删
[root@localhost home]# ls
aaa demo ds xinghan zs
[root@localhost home]# rm -rf aaa -f表示强制删除
[root@localhost home]# ls
demo ds xinghan zs
touch:创建空文件或者修改文件的时间戳。
命令格式:touch 文件名称
文件已存在会更改文件的时间戳,文件不存在会创建文件。
示例:
[root@localhost home]# cd /home/demo/
[root@localhost demo]# ls
abc xyz
[root@localhost demo]# touch hello
[root@localhost demo]# ls
abc hello xyz
[root@localhost demo]# cd abc
[root@localhost abc]# ll install.log
-rw-r--r--. 1 root root 41364 Jan 1 23:45 install.log
[root@localhost abc]# date
Sun Jan 1 23:59:55 PST 2017
[root@localhost abc]# touch install.log
[root@localhost abc]# ll install.log
-rw-r--r--. 1 root root 41364 Jan 2 00:00 install.log
mv:用于移动一个目录,Linux中没有专门改名的命令,mv兼职改名。
命令格式:mv 源 目标
mv oldName newName
示例:
[root@localhost demo]# cd /home/demo/xyz/
[root@localhost xyz]# ls
abc
[root@localhost xyz]# mv abc /home/
[root@localhost xyz]# ls
[root@localhost xyz]# cd /home/
[root@localhost home]# ls
abc demo ds xinghan zs
[root@localhost home]# mv abc aaa 将abc改名为aaa
[root@localhost home]# ls
aaa demo ds xinghan zs
[root@localhost home]#
alias:查看命令别名。
pwd (print name of current/working directory):查看当前目录的全路径。
ls:显示目录或文件,执行ls指令可列出目录的内容,包括文件和子目录的名称。
命令格式:ls [options] [file_or_dirs]
选项和参数:
-a:或--all下所有文件和目录(包括隐藏的)。
-l:使用详细格式列表。
-R或--recursive:递归处理,将指定目录下的所有文件及子目录一并处理。
-ld:显示指定的目录或文件的详细信息。
ls使用演示:
[root@localhost ~]# ls -l install.log
-rw-r--r--. 1 root root 41364 Oct 4 2015 install.log 大小单位为B字节
[root@localhost ~]# ls -lh install.log
-rw-r--r--. 1 root root 41K Oct 4 2015 install.log 大小单位为KB
[root@localhost ~]# ls -l /home/
drwxr-xr-x. 4 root root 4096 Jan 1 23:30 demo
drwx------. 27 mengxb mengxb 4096 Oct 4 2015 ds
[root@localhost ~]# ls -ld /home/
drwxr-xr-x. 6 root root 4096 Jan 1 23:30 /home/
[root@localhost ~]# alias ll #ll不是一个存在的命令,而是一个别名
alias ll='ls –l --color=auto‘
[root@localhost ~]# ls -R /home/ 递归显示/home下的内容
cat:不打开文件查看文件内容。
命令格式:cat [-AbeEnstTuv] [--help] [--version] fileName
选项参数:
-n或--number:由1开始对所有输出的行数编号。
-b或--number-nonblank:和-n 相似,只不过对于空白行不编号。
-s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v或--show-nonprinting。
示例:
cat -n textfile1 > textfile2 #把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -b textfile1 textfile2 >> textfile3 #把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。
cd:切换目录命令。
命令格式:cd 目标目录
切换目录的时候可以使用绝对路径也可以使用相对路径。
绝对路径:以/开头的路径。
相对路径:相对当前位置的路。
“.”表示当前目录。“..”表示父目录。“-”表示前一个目录(类似电视遥控器上返回)。“~”表示当前用户home目录。
“~用户名”指定用户名对应的home目录/用户名(例如:~xinghan表示目录就是 /home/xinghan/)。
[root@localhost ~]# pwd
/root
[root@localhost ~]# cd /etc
[root@localhost etc]# cd
[root@localhost ~]# pwd
/root
[root@localhost ~]# su xinghan #可通过useradd xinghan添加用户xinghan
[xinghan@localhost root]$ pwd
/root
[xinghan@localhost root]$ cd
[xinghan@localhost ~]$ pwd
/home/xinghan
[xinghan@localhost ~]$ cd /etc
[xinghan@localhost etc]$ cd ~
[xinghan@localhost ~]$
cp:拷贝目录,可以同时拷贝多个文件,文件名之间用空格隔开。
命令格式:cp 文件… 目标目录 拷贝文件…到目标
参数:-r/R:递归拷贝
示例:
[root@localhost ~]# cp install.log install.log.syslog /home/demo/abc
[root@localhost ~]# ll /home/demo/abc/
-rw-r--r--. 1 root root 41364 Jan 1 23:45 install.log
-rw-r--r--. 1 root root 9154 Jan 1 23:45 install.log.syslog
[root@localhost ~]# cd /home/demo/abc/
[root@localhost abc]# cp /root/install.log /home/demo/abc #太麻烦
[root@localhost abc]# cp ~/install.log .
[root@localhost ~]# cd /home/demo/
[root@localhost demo]# ls
abc xyz
[root@localhost demo]# cp abc xyz #提示cp: omitting directory `abc'
[root@localhost demo]# cp -r abc xyz
[root@localhost demo]# ls xyz
abc
shutdown -h now:立马关机。
shutdown -h 20:25:系统会在今天20:25关机。
shutdown -h +10:十分钟后关机。
shutdown -r now:系统立马重启。
shutdown -r +10:系统十分钟后重启。
reboot:就是重启。
halt:关闭系统,等同于shutdown -h now 和 poweroff。
Linux一个有7个运行级别,分别如下:
0:关机。
1:单用户。
2:无网络的多用户。
3:命令行模式。
4:未用。
5:GUI(图形桌面模式)。
6:重启
运行级别的切换:init。
命令格式:init 运行级别
查看当前运行级别可以使用命令:who、runlevel。
who:显示当前运行级别以及系统当前时间。
命令格式:who -r
示例:
[root@localhost ~]# who -r
run-level 5 2017-12-31 15:24
runlevel:使用时,直接输入当前命令,没有参数和选项,默认显示两个运行级别。
第一个表示当前级别之前使用的运行级别,若无则显示”N”。第二个表示当前运行级别。
示例:
[root@localhost ~]# runlevel
N 5
用户账号的管理工作主要涉及到用户账号的添加、修改和删除。
添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。刚添加的账号是被锁定的,无法使用。
添加用户的命令:useradd。
命令格式:useradd [选项] 用户名
选项和参数:
-c:comment指定一段注释性描述。
-d:目录,指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g:用户组,指定用户所属的用户组,即用户的主组。
-G:用户组,指定用户所属的附加组。
-s:Shell文件,指定用户的登录Shell。
-u:用户号,指定用户的用户号,即UID。
增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如:/etc/shadow、/etc/group等。
示例:
创建用户:
#useradd tom
查看用户信息:
#id tom ->显示UID/GID以及tom还属于哪些组
[root@localhost ~]# useradd tom
[root@localhost ~]# id tom
uid=500(tom) gid=500(tom) groups=500(tom)
创建用户,指定其UID为800:
[root@localhost ~]# useradd -u 800 jerry
[root@localhost ~]# id jerry
uid=800(jerry) gid=800(jerry) groups=800(jerry)
id 查看单个用户的信息。
命令格式:id 用户名
新增用户中已有案例。
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。修改已有用户的信息使用usermod命令。
命令格式:usermod [选项] 用户名
选项和参数:
常用的选项包括-c、-d、-m、-g、-G、-s、-u等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
另外,-l这个选项指定一个新的账号,即将原来的用户名改为新的用户名。
用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。
指定和修改用户口令的Shell命令是:passwd。
超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。
命令格式:passwd [选项] 用户名
选项和参数:
-l:(lock)锁定口令,即禁用账号。
-u:(unlock)口令解锁。
-d:(HOME_DIR)使账号无口令(删除密码)。(此命令仅管理员有效)
示例:
修改密码。
#passwd
修改自己的密码,普通用户修改比较麻烦,需要使用高强度密码。
#passwd tom
修改tom的密码,管理员才可以修改其他人的密码,不需要使用高强度密码。
注:高强度密码不是够长就行!!密码中需要包含字母、数字、特殊符号、密码长度。
su切换用户。
命令格式:su 目标用户
管理员切用户不需要密码,用户切管理员需要输入管理员密码。
在CentOS中(其他版本的Linux未测试)普通用户切换root用户只需要输入su回车后输入root密码即可切换到root用户的身份。
删除用户使用命令:userdel。
命令格式:
userdel 用户名:用于删除指定的用户。
userdel -r 用户名:在删除指定用户的同时删除他的home目录(工作中不建议使用,一个用户离职后,用户可以删掉,但是他的工作文件很可能还有用)。
示例:
[root@localhost ~]# userdel alice
[root@localhost ~]# ls /home/
alice demo ds jerry xinghan tom zs
[root@localhost ~]# rm -rf /home/alice/
[root@localhost ~]# ls /home/
demo ds jerry xinghan tom zs
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改,实际上就是对/etc/group文件的更新。
新增加用户组的命令为:groupadd。
命令格式:groupadd [选项] 用户组
选线和参数:
-g GID:指定新用户组的组标识号(GID)。
-o:一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
示例:
新增用户组emp
#groupadd emp
新增用户组market,并指定标识号为8000
#groupadd –g 8000 market
将用户添加到附加组
#usermod –aG market tom (a:append G:附加组)
创建一个用户组与root用户组GID系统
# groupadd –g 0 –o testroot
删除用户组使用的命令为:groupdel。
命令格式:groupdel 组名
示例:
从系统中删除组group1
# groupdel group1
如果删除的用户组,已经被用户追加为附件组,对应的所有用户的该附件组会被撤销掉。
如果被删除的用户组,已经被用户指定为主组,则该用户组无法被删除。(可以理解为像Windows中文件被占用时不能被删除。)
查看用户所在用户组使用命令:groups。
命令格式:groups 用户名
如果不跟用户名,则查询的是当前用户所在的分组。
修改用户组使用的命令为:groupmod。
命令格式:groupmod [选项] 用户组
选项和参数:
-g GID:为用户组指定新的组标识号。
-o:与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n:新用户组,将用户组的名字改为新名字。
改名格式:groupmod -n newGroupName oldGroupName
示例:
1.将组group2的组标识号修改为102。
# groupmod -g 102 group2
2.将组group2的标识号改为10000,组名修改为group3。
# groupmod –g 10000 -n group3 group2
如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。例如:
$ newgrp root
这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组,此时直接输入id后可直接查看到用户的当前组已被切换(但注意这里成为组内成员并不代表拥有了root权限,想像一下你的情书是否愿意让组员查看。)
[xinghan@CentOS ~]$ id
uid=500(xinghan) gid=0(root) 组=500(xinghan),0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023