【干货】Linux基本命令+文件类型详解

发布时间:2019-10-08    浏览量:

本篇文章具体讲述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

微思网络总部
福建省厦门市思明区金山大厦
查看路线
微思网络集美分部
福建省厦门市集美区集美区浒...
查看路线
定位
点击左侧的按钮进行定位