history命令
“history”命令就是历史记录。它显示了在终端中所执行过的所有命令的历史。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
root@tecmint:~
# history
1
sudo
add-apt-repository ppa:tualatrix
/ppa
2
sudo
apt-get update
3
sudo
apt-get
install
ubuntu-tweak
4
sudo
add-apt-repository ppa:diesch
/testing
5
sudo
apt-get update
6
sudo
apt-get
install
indicator-privacy
7
sudo
add-apt-repository ppa:atareao
/atareao
8
sudo
apt-get update
9
sudo
apt-get
install
my-weather-indicator
10
pwd
11
cd
&&
sudo
cp
-r unity
/6
/usr/share/unity/
12
cd
/usr/share/unity/icons/
13
cd
/usr/share/unity
|
注意:按住“CTRL + R”就可以搜索已经执行过的命令,它可以在你写命令时自动补全。
1
|
(reverse-i-search)`
if
':
ifconfig
|
mkdir命令
“mkdir”(Make directory)命令在命名路径下创建新的目录。然而如果目录已经存在了,那么它就会返回一个错误信息"不能创建文件夹,文件夹已经存在了"("cannot create folder, folder already exists")
1
|
root@tecmint:~
# mkdir tecmint
|
注意:目录只能在用户拥有写权限的目录下才能创建。mkdir:不能创建目录`tecmint`,因为文件已经存在了。(上面的输出中不要被文件迷惑了,你应该记住我开头所说的-在linux中,文件,文件夹,驱动,命令,脚本都视为文件)
touch 命令
“touch”命令代表了将文件的访问和修改时间更新为当前时间。touch命令只会在文件不存在的时候才会创建它。如果文件已经存在了,它会更新时间戳,但是并不会改变文件的内容。
1
|
root@tecmint:~
# touch tecmintfile
|
注意:touch 可以用来在用户拥有写权限的目录下创建不存在的文件。
chmod 命令
“chmod”命令就是改变文件的模式位。chmod会根据要求的模式来改变每个所给的文件,文件夹,脚本等等的文件模式(权限)。
在文件(文件夹或者其它,为了简单起见,我们就使用文件)中存在3中类型的权限
1
2
3
|
Read (r)=4
Write(w)=2
Execute(x)=1
|
所以如果你想给文件只读权限,就设置为'4';只写权限,设置权限为'2';只执行权限,设置为1; 读写权限,就是4+2 = 6, 以此类推。
现在需要设置3种用户和用户组权限。第一个是拥有者,然后是用户所在的组,最后是其它用户。
1
|
rwxr-x--x abc.sh
|
这里root的权限是 rwx(读写和执行权限),
所属用户组权限是 r-x (只有读和执行权限, 没有写权限),
对于其它用户权限是 -x(只有只执行权限)
为了改变它的权限,为拥有者,用户所在组和其它用户提供读,写,执行权限。
1
|
root@tecmint:~
# chmod 777 abc.sh
|
三种都只有读写权限
1
|
root@tecmint:~
# chmod 666 abc.sh
|
拥有者用户有读写和执行权限,用户所在的组和其它用户只有可执行权限
1
|
root@tecmint:~
# chmod 711 abc.sh
|
注意:对于系统管理员和用户来说,这个命令是最有用的命令之一了。在多用户环境或者服务器上,对于某个用户,如果设置了文件不可访问,那么这个命令就可以解决,如果设置了错误的权限,那么也就提供了为授权的访问。
cal 命令“cal”(Calender),它用来显示当前月份或者未来或者过去任何年份中的月份。
显示已经过去的月份,1835年2月
显示未来的月份,2145年7月。
注意: 你不需要往回调整日历50年,既不用复杂的数据计算你出生那天,也不用计算你的生日在哪天到来,[因为它的最小单位是月,而不是日]。 |
date命令“date”命令使用标准的输出打印当前的日期和时间,也可以深入设置。
注意:这个命令在脚本中十分有用,以及基于时间和日期的脚本更完美。而且在终端中改变日期和时间,让你更专业!!!(当然你需要root权限才能操作这个,因为它是系统整体改变) cat命令“cat”代表了连结(Concatenation),连接两个或者更多文本文件或者以标准输出形式打印文件的内容。
注意:“>>”和“>”调用了追加符号。它们用来追加到文件里,而不是显示在标准输出上。“>”符号会删除已存在的文件,然后创建一个新的文件。所以因为安全的原因,建议使用“>>”,它会写入到文件中,而不是覆盖或者删除。 cp 命令“copy”就是复制。它会从一个地方复制一个文件到另外一个地方。
注意: cp,在shell脚本中是最常用的一个命令,而且它可以使用通配符(在前面一块中有所描述),来定制所需的文件的复制。 mv 命令“mv”命令将一个地方的文件移动到另外一个地方去。
注意:mv 命令可以使用通配符。mv需谨慎使用,因为移动系统的或者未授权的文件不但会导致安全性问题,而且可能系统崩溃。 pwd 命令“pwd”(print working directory),在终端中显示当前工作目录的全路径。
注意: 这个命令并不会在脚本中经常使用,但是对于新手,当从连接到nux很久后在终端中迷失了路径,这绝对是救命稻草。
linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。 1.命令格式: mkdir [选项] 目录... 2.命令功能: 通过 mkdir 命令可以实现在指定位置创建以 DirName(指定的文件名)命名的文件夹或目录。要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限。并且,所创建的文件夹(目录)不能与其父目录(即父文件夹)中的文件名重名,即同一个目录下不能有同名的(区分大小写)。 3.命令参数: -m, --mode=模式,设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录; -v, --verbose 每次创建新目录都显示信息 --help 显示此帮助信息并退出 --version 输出版本信息并退出 4.命令实例:
实例1:创建一个空目录 命令: mkdir test1 输出: [root@localhost soft]# cd test [root@localhost test]# mkdir test1 [root@localhost test]# ll 总计 4drwxr-xr-x 2 root root 4096 10-25 17:42 test1 [root@localhost test]#
实例2:递归创建多个目录 命令: mkdir -p test2/test22 输出: [root@localhost test]# mkdir -p test2/test22 [root@localhost test]# ll 总计 8drwxr-xr-x 2 root root 4096 10-25 17:42 test1 drwxr-xr-x 3 root root 4096 10-25 17:44 test2 [root@localhost test]# cd test2/ [root@localhost test2]# ll 总计 4drwxr-xr-x 2 root root 4096 10-25 17:44 test22 [root@localhost test2]#
实例3:创建权限为777的目录 命令: mkdir -m 777 test3 输出: [root@localhost test]# mkdir -m 777 test3 [root@localhost test]# ll 总计 12drwxr-xr-x 2 root root 4096 10-25 17:42 test1 drwxr-xr-x 3 root root 4096 10-25 17:44 test2 drwxrwxrwx 2 root root 4096 10-25 17:46 test3 [root@localhost test]# 说明: test3 的权限为rwxrwxrwx
实例4:创建新目录都显示信息 命令: mkdir -v test4 输出: [root@localhost test]# mkdir -v test4 mkdir: 已创建目录 “test4” [root@localhost test]# mkdir -vp test5/test5-1 mkdir: 已创建目录 “test5” mkdir: 已创建目录 “test5/test5-1” [root@localhost test]#
实例五:一个命令创建项目的目录结构 参考:http://www.ibm.com/developerworks/cn/aix/library/au-badunixhabits.html 命令: mkdir -vp scf/{lib/,bin/,doc/{info,product},logs/{info,product},service/deploy/{info,product}} 输出: [root@localhost test]# mkdir -vp scf/{lib/,bin/,doc/{info,product},logs/{info,product},service/deploy/{info,product}} mkdir: 已创建目录 “scf” mkdir: 已创建目录 “scf/lib” mkdir: 已创建目录 “scf/bin” mkdir: 已创建目录 “scf/doc” mkdir: 已创建目录 “scf/doc/info” mkdir: 已创建目录 “scf/doc/product” mkdir: 已创建目录 “scf/logs” mkdir: 已创建目录 “scf/logs/info” mkdir: 已创建目录 “scf/logs/product” mkdir: 已创建目录 “scf/service” mkdir: 已创建目录 “scf/service/deploy” mkdir: 已创建目录 “scf/service/deploy/info” mkdir: 已创建目录 “scf/service/deploy/product” [root@localhost test]# tree scf/ scf/ |-- bin |-- doc | |-- info | `-- product |-- lib |-- logs | |-- info | `-- product `-- service `-- deploy |-- info `-- product
12 directories, 0 files [root@localhost test]# |