本篇文章具体讲述Linux下的一些基本命令以及文件类型,学习Linux最开始都是要掌握这些基础,这些基础让你在以后的运维道路上如鱼得水。废话不多说,开始进入正题了。
第1点、基本命令
基本命令包括:cd whatis type pwd file shutdown reboot init runlevel ls touch
stat mkdir rmdir cp mv rm alias unalias history
RHEL5终端的切换:
ctrl + alt + f1-f6 切换字符终端
ctrl + alt + f7 切换到图形终端
alt + f2 相当于打开“运行”窗口 (gnome-terminal)
------------------------------------------------------
RHEL6终端的切换:
ctrl + alt + f2-f6 切换字符终端
alt + f1 切换到图形终端
alt + f7 备份图形终端
alt + f2 相当于打开“运行”窗口 (gnome-terminal)
路径:
绝对路径
以正斜线“/”开头
描述道文件位置的完整说明
任何时候你想指定文件名的时候都可以使用
cd /tmp/aa
相对路径
不以正斜线开头
制定相对于你的当前工作目录而言的位置
可以使用做制定文件名的快捷方式
相对路径:cd ../tmp
pwd查看当前所在的工作目录
如何界定:type 命令 :type cd 或者 type ls
命令分为内部命令和外部命令,内部命令移动不影响命令的使用,但是外部命令,移动了就会失效。
whatis --查看命令的完整名称
关机/重启
# halt -p或poweroff --马上关机
# init 0--马上关机
# shutdown -h now --马上关机
# reboot (halt) --马上重启
# shutdown -r +10 (now) --10分钟后(马上)重启
# init 6 --马上重启
# ctrl+alt+del
init <--改变系统的运行级别 ,下面的定义在/etc/inittab文件设定
0 --- 关机
1 --- 默认没有用户和密码验证,单用户模式,忘记管理员密码用来修改密码,或者一些简单的排错
2 --- 不带网络的文本模式,不带网络的多用户模式
3 --- 带网络的文本模式,带网络的多用户模式
4 --- 保留,没用
5 --- 带图形的模式
6 --- 重启电脑
# runlevel
N 5
N代表没有,也就是说直接进入带图形的模式
S代表从但用户模式进入5模式
init 6 重启
init 0 关机
原来一登录系统的时候,就是运行级别3,要想运行图像界面:
1、 startx
2、 init 5
要使用init对系统进行重启或者关机,建议大家使用之前,运行以下命令:
sync
关机:
shutdown -r 重启电脑
shutdown -P 直接关闭电源
shutdown -h 15:00 <---设定电脑15:00就关机
shutdown -h 14:35 "Hurry up. The system is shutting down " & (与符号,后台运行)
shutdown -c 取消计划中的关机或者重启
cd(change the working directory):
cd --直接回到当前用户的家目录
cd ~ --直接回到家目录
cd .. --返回上级目录
cd . --回到当前目录
cd - --在两个目录之间切换
cd <path> --
ls(list directory contents):
ls --查看当前目录包含哪里些内容
ls ./ --查看当前目录包含哪里些内容
ls ../ --查看上层目录包含哪里些内容
ls -a --查看当前目录中所有的文件,包括以点开头的隐藏文件
ls -l --详细方式列出目录中的内容
ls -al / --以长格式列出目录中所有的内容,包括隐藏文件
ls -ltr --以长格式和时间及以时间反向顺序来显示目录中的内容
ls -R --递归列出目录中的内容
tree /a/ --查看a目录的目录树结构
ls -lh h以k单位显示
ll -d 列出目录
touch:如果文件存在,则更新文件的时间戳/如果目标不存在,会创建一个空文件,可以改变三个时间
touch /a 更新时间戳,因/a这个文件存在
touch /aa 创建空文件
Access: 2013-05-27 15:28:01.082561140 +0800 --访问
Modify: 2013-05-27 15:28:01.082561140 +0800 --修改文件时间
Change: 2013-05-27 15:28:01.082561140 +0800 --属性修改时间
touch {1,2,3}aa{4,5,6}bb{7,8,9} --创建27个空文件
touch “{1,2,3}aa{4,5,6}bb{7,8,9}“ --创建1个空文件
touch 2 3 --创建一个2,同时又创建一个3
touch '2 3' --创建一个 2空格3 的文件
touch {4..10} --创建4到10
touch {a..z} 中间的 .. 代表循环体.比如1..100,就是1到100
touch {A..Z}
sequence 序列
seq 100 产生1到100的序列
# seq 1 2 100 |xargs touch --创建出1到100内的奇数文件 mkdir `seq 1 2 100`
# seq 0 2 100
eg:
# touch `seq 1 2 100`
]# ls
1 15 21 27 31 37 43 49 53 59 65 7 75 81 87 91 97
11 17 23 29 33 39 45 5 55 61 67 71 77 83 89 93 99
13 19 25 3 35 41 47 51 57 63 69 73 79 85 9 95
stat:显示文件时间戳
#stat install.log
访问时间 (access time):文件被访问的时间,文本访问类命令会修改此时间
修改时间 (modify time):文件内容被修改的时间,使用 echo 命令会修改此时间
元数据改变时间(chage time):文件属性的变化(名称、大小、权限、链接等),mv、echo 命令会修改此时间
vim 可以是改变访问时间和修改时间,echo > 直接重定向可以改变修改时间。
touch -m | a -t 201108311630.15 2011年8月31日16点30分15秒
修改时间的时候 a 对应 Access ;m 对应 Modify ;Change没有对应的修改参数,不可修改
touch :建立文件
touch file1 file2 :创建多个文件
touch -d 20110808 修改文件日期
touch -d 1215 修改文件时间
mkdir(他建目录)
mkdir /a/ --新建一级目录
mkdir -p /c/d --新建多级不存在目录
rmdir:删除空目录
#rmdir dir1
#rmdir -p a/b/c
cp copy files and directories
cp /dir1/file1 /dir2/
cp /dir1/file1 /dir2/file2
cp -a /dir1/file1 /dir2 --从dir1目录拷贝文件至2,过程中文件中所有的属性不变
cp -r /dir1/ /dir2 --递归拷贝
注意:\cp /dir1/file1 /dir2/file1 如果有重名的不讯问是否覆盖,直接覆盖 (\ 为转移符)
unalias -a | cp -r
eg:
# sudo -ukiki touch kiki
# ll kiki
-rw-r--r--. 1 kiki kiki 0 12月 28 20:40 kiki
[root@chen tmp]# cp -a kiki ./test/
[root@chen tmp]# ll ./test/kiki
-rw-r--r--. 1 kiki kiki 0 12月 28 20:40 ./test/kiki
mv move (rename) file
mv /dir1/file1 /dir2
mv /dir1/file1 /dir2/file2 --移动并改名
mv /dir1/file1 /dir1/file2 --改名字
rm - remove files or directories
rm /a.txt
rm /a/
rm -rf /a/ /a.txt
删除方法小结:不管是删除文件还是删除目录,统一用rm -rf 进行删除,就不用记那么多的参数了。
alias --定义别名
alias xxx='yyy'
#alias kk='ls --color'
# unalias kk
unalias xxx 取消别名
永久定义别名
# vim /etc/bashrc
alias grep='grep --color=tty'
history - Manipulate the history list
[root@instructor ~]# env |grep HIS
history --查看命令历史
history -c --清空命令历史
history -w --把命令历史写入默认文件中(/root/.bash_history)
只有在退出去之后,才能把历史记录保存在当前用户家目录的 .bash_history下
!
!number
ctrl+r :通过输入关键字查找输入历史中的命令
文件名:大小写敏感,不可超过255字符,不可以使用/,建议不要~ \ < > ( ) $ * ? " '
>> <<
文件颜色:
黑色:普通文本文件
绿色:可执行文件
目录:蓝色
链接:浅蓝色
设备:黄色
特殊权限文件(s)/管道文件(p):粉红色
快捷键:
crtl + c : 中断
ctrl + d : 中止输入
ctrl + l : 清屏 或者可以使用 #clear
ctrl + z : 把当前任务调至后台
jobs:查看后台任务
fg 将后台中的命令调至前台继续运行
fg 任务编号
bg 将一个在后台暂停的命令,变成在后台继续执行
bg 任务编号
ctrl + k :删除当前光标到后面的所有内容
ctrl + u :删除当前光标到前面的所有内容
++++
[root@i ~]# jobs
[1] Running sleep 1000 &
[2] Running sleep 10010 &
[4]- Running sleep 10012 &
[5]+ Running sleep 10013 &
[root@i ~]# fg 4
sleep 10012
^Z
[4]+ Stopped sleep 10012
[root@i ~]# jobs
[1] Running sleep 1000 &
[2] Running sleep 10010 &
[4]+ Stopped sleep 10012
[5]- Running sleep 10013 &
# bg 4
[4]+ sleep 10012 &
[root@i ~]# jobs
[1] Running sleep 1000 &
[2] Running sleep 10010 &
[4]- Running sleep 10012 &
[5]+ Running sleep 10013 &
第2点、命令帮助
厦门linux培训命令帮助步骤:
1、辨别是可执行的二进制命令还是文件,命令是file;
2、如果辨别出来是一个可执行的二进制命令;
3、使用type查询该命令是内部命令还是外部命令;
4、使用whatis查询该命令的全称
5、如果是外部命令,则使用命令+(--help)的形式查询简约的帮助文档,如果是内部命令则
可以直接使用help +命令的形式查看简约帮助文档;
6、查询man文档(1. 5. 8) 例如:man 5 命令
man -k 命令 man -f 命令
7、使用info查看doc帮助文档,一般形式 info /usr/share/doc/要找的命令的关键字
help --简单帮助
command(out) --help 外部命令
help command(build_in) 内部命令
[root@desktop22 桌面]# type ls
ls is aliased to `ls --color=auto' 此为外部命令
[root@desktop22 桌面]# type echo
echo is a shell builtin 此为内部命令
内部:help “内部命令” || help pwd
外部:外部命令 --help || ls --help
man --帮助手册
man man
man [123456789] command (man man 可以找出以下的东西)
1 用户命令
2 内核系统调用(从用户空间到进入点内核的)
3 库函数
4 特殊文件和设备
5 文件格式和规范
6 游戏
7 规范、标准和其他页面
8 管理员用的命令帮助手册
9 linux、内核API(内核调用)
man -k passwd 执行关键字搜索
man -f useradd useradd的man page 文件是哪个?
1.whatis
2. type查看 类型
3. --help
4. man 一下
5. rpm -ql dhcp | grep doc 查看doc 文档
第3点、时间
一定要会查帮助文档,先看参数,再往下看参数对应的格式是什么是分部分看的。
date
如此多的参数可以通过
date --help的方式来了解参数的用法,不用死记硬背。
使用网络时间同步方法修正当前自己机器时间
#ntpdate 192.168.0.254 远程同步服务器时间
#hwclock --systohc 让时间同步到硬件时钟(BIOS)
# clock -w 这个命令强制把系统时间写入CMOS
date --查看当前时间
# date +%F
2011-08-01
# date +%F --date="30 day ago"
2011-07-02
# date "+%Y-%m-%d %H:%M:%S"
2012-10-21 15:18:17
#echo $(($(date +%s)/86400)) <---计算距离1970-01-01到现在的天数
14538
\转意符 的使用方法很重要。
反撇号`` 优先解析
示例:mkdir ` date +%F --date="30 day ago"`
会建立一个名字为2013-10-27的目录
尝试利用帮助把当前时间修改为 2000-10-03 09:04
date
date -s 2012-10-03\ 09:05
date -s "2012-10-03 09:05"
date 100309052012
cal
格式 cal month year
cal 2 2012 显示2012年2月份的日历
cal 2012 显示2012年全年的日历
第4点、Linux文件类型
查看文件类型:
ls -l
file +文件 --界定一个文件类型
b 块文件也叫设备文件也叫特殊文件
c 字符文件
d 目录文件
p 管道文件
f(-) 普通文件/文本文件
l 链接文件
s(socket) unix/类unix套接字
第5点、判断是什么文件类型或者命令
file (判断文件类型)
# file kk 判断是什么文件类型
kk: empty 空文件
--> 如果不是文件
type (判断二进制命令【内部|外部】)
type kk
kk is /bin/kk --外部命令
或者
# type kk
kk is a shell builtin
假如它是一个外部命令
whatis
# whatis kk 一个命令的完整名称
which
# which kk 查询命令的路径
/bin/kk
help
# kk --help 查询简约帮助信息
man
# man -f kk 该命令包含有几个man page 文档
kk (1) - .. 参数
kk (8) - ..
man 8 kk
info
/usr/share/doc/
后续
本文章已经将基本的Linux命令介绍完,有兴趣的可以自己装个centos的虚拟机玩玩,敲敲命令,还是挺有意思的。先培养Linux兴趣,其他复杂的东西不要想太多。
来自:运维人生
来源:http://www.ywadmin.com/?id=94