首页 > 代码库 > linux基本命令

linux基本命令

Linux基本命令。

Linux是严格区分大小写

命令的分类:

内部命令 Shell在内部代码中实现的命令

man type 查看bash Shell自带的命令

外部命令 Shell以外的命令

用type命令查看内部命令还是外部命令

type cd 提示cd is a shell builtin则说明是内部命令

type mount 提示mount is /bin/bash 告诉外部命令的位置

-------------------------------------------------------------

帮助命令

man 注重于应用,也是最常用的帮助方法

man 的帮助文档存放的位置

/usr/share/man

man 的帮助文档分类

1 普通用户命令

2 系统核心调用的函数工具

3 常用的一些函数与函数库

4 设备文件的说明

5 配置文件与一些其它格式的文件

6 游戏相关

7 网络协议相关

8 管理员可操作的命令

9 系统内核相关的文件

在 man 帮助里:

/c 搜索c关键字

n 下一个关键字

N 上一个关键字

q 退出

info 注重于介绍,不常用

帮助文档存放位置

/usr/share/info

进入帮助界面

? info命令帮助

空格键 向下翻一页

tab 在结点之间移动,有结点的地方通常会以*显示,将光标移动结点位置按回车可进入结点

b 移动光标到该文章的第一个结点处

e 移动光标到该文章的最后一个结点处

n 前往下一个info页

p 前往上一个info页

u 向上移动一层

s(/) 在info里搜索

h 显示帮助菜单

q 退出

-------------------------------------------------------------

目录命令

pwd 查看当前所在目录的路径

cd 切换当前所在目录

绝对路径

cd /root/Desktop 指从根目录开始的路径

相对路径

cd root/ 指以当前目录开始的路径

. 代表当前所在目录

.. 代表当前的父目录

- 代表上一次所在的目录

~ 代表当前登录用户的家目录

mkdir 创建一个目录

mkdir test 在当前目录下创建test目录

mkdir /tmp/test 在根目录下tmp目录里创建test目录

mkdir file{1..100} 在当前目录下创建file1到file100的目录,这里会创建100个目录

mkdir "file{1..100}" 在当前目录下创建file{1..100}目录,这里只创建一个目录

mkdir -p a/b/c 在当前目录下创建a/b/c目录树

rmdir 只能删除空目录

rmdir test 删除当前目录的test目录,test必须是空目录

rmdir /tmp/test 删除/tmp下的test目录

rmdir file{1..100} 删除file1到file100的目录

rmdir "file{1..100}" 删除file{1..100}目录

-------------------------------------------------------------

文件命令

ls 列出当前文件夹下的所有文件

ls -a 列出当前目录下所有文件,包含隐藏文件

ls -l 以详细列表形式列出当前目录下的所有文件

ls -R 列出当前目录所有文件,包含子目录内所有文件

drwxr-xr-x 1 root root 2062 2011-01-04 file1

文件类型和文件权限 文件的硬链接数 文件所属用户 文件所属用户组 文件大小 文件的最后修改日期 文件名

文件类型:

c 字符设备

b 块设备

l 符号链接

s socket文件

p 管道文件

d 文件夹

- 普通文件

常用搭配:

ls -al 显示所有文件包括隐藏文件列表

ls -lt 显示按日期时间排序后的文件列表

ls -lh 显示计算大小为KB为单位的文件列表

ls -dl 显示文件夹详细列表

touch 新建文件

touch file 创建file空文件,如果file存在则更新file的存取和修改时间

touch -c file 如果file不存在,则不创建文件

touch -r file1 file 更新file时间和file1相同

touch -a file 更新file的存取时间

touch -m file 更新file的修改时间

touch file{2,3,4} 同时创建file2,file3,file4三个空文件

touch "file{2,3,4}" 创建file{2,3,4}一个空文件

cp 复制文件

cp file dirs/ 把file文件复制到dirs目录下

cp -r dir1/ dir2/ 把dir1目录复制到dir2目录下

cp -a file dirs/ 把file文件复制到dirs目录下,保留文件的原来属性

cp -rf dir1/ dir2/ 强制复制文件夹,不提示

cp -rvf dir1/ dir2/ 把dir1目录复制到dir2目录下,并且显示复制过程

mv 移动和重命名文件

mv file dirs/ 把file文件移动到dirs目录下

mv file file2 把file文件重命名为file2

mv -u dir1/* dir2/ 把dir1目录下所有文件移动到dir2目录下,并且根据文件时间来决定要不要移动

rename 批量文件重命名

rename .conf .html *.conf 把所有后缀以.conf的文件名里出现.conf就改成.html

rm 删除文件

rm file* 删除所有file打头的文件

rm -i file* 提示是否确定删除

rm -f file* 不提示,强行删除

rm -r dir2 删除目录

-------------------------------------------------------------

文件阅读命令

cat 文件查看命令

cat /etc/passwd 查看/etc/passwd内容

cat -n /etc/passwd 查看/etc/passwd内容并且编号

cat -b /etc/passwd 查看/etc/passwd内容并且给非空行编号

more

more /etc/passwd 逐屏查看/etc/passwd文件内容

less

less /etc/passwd 查看/etc/passwd文件内容,和more不同的是可以上下滚动

head

head /etc/passwd 查看/etc/passwd前10行内容

head -n 30 /etc/passwd 查看/etc/passwd前30行内容

tail

tail /etc/passwd 查看/etc/passwd后10行内容

tail -n 30 /etc/passwd 查看/etc/passwd后30行内容

tail -f /etc/passwd 实时查看/etc/passwd文件内容

重定向

标准输入 代码 0 默认设备为键盘

标准输出 代码 1 默认设备为屏幕

错误输入 代码 2 默认设备为屏幕

ls /etc/passwd > output.txt 标准正确输出重定向到output.txt

ls /etc/shadow >> output.txt 标准正确输出追加重定向到output.txt

ls dddddd 2> error.txt 标准错误输出重定向到error.txt

ls dddddd 2> /dev/null 标准错误输出重定向到黑洞

ls ddddd /etc/passwd &> /dev/null 标准正确输出标准错误输出全都重定向到黑洞

管道

cat /etc/passwd | less |之前的命令执行的结果做|后命令的参数

==========================================

用户管理

用户分类

管理员 user id一定为0,务必唯一

系统用户 伪用户,user id 1-499,默认是不允许登录系统,用于给予某些服务运行时候所用的身份

普通用户 user id 500-60000, 通过手工或都命令建立起来的用户,默认可以进行登录系统

用户管理

用户相关配置文件

/etc/passwd

/etc/shadow

vim /etc/passwd

第一列:用户名

第二列:密码 x代表密码存放在/etc/shadow里,如果去掉x就代表此用户没有密码

第三列:uid 用户ID值操作系统是不认识用户名,只认uid

第三列:gid,用户组的ID

第五列:描述项

第六列:指定家目录

第七列:指定bash

vim /etc/shadow

第一列:用户名

第二列:真实的密码,经过加密的,以*或都!号开头的不能登录

第三列:上一次修改密码的时间,linux以1970年1月1日到现在的天数来算的

第四列:修改密码后几天内不允许再修改, 0代表不限制

第五列:多少天内必须修改密码,99999代表不限制

第六列:过期前几天给你一个警告信息

第七列:密码过期后的一个宽限时间

第八列:这里可以写一个实际的账号过期天数,也是以1970年1月1日到现在来算的,多用于收费系统

第九列:保留,留着以后功能扩展

用户命令相关配置文件,保存useradd命令创建用户使用的默认值

/etc/default/useradd

/etc/login.defs

用户相关命令

useradd/adduser

userdel/deluser

usermod

passwd

useradd a 创建一a用户

useradd -g kyo a 新建a用户并且把a用户添加进kyo用户组

userdel a 删除a用户

userdel -r a 删除a用户并且删除a的家目录和邮件目录

passwd a 修改a用户密码

passwd -l a 临时关闭用户,或修改/etc/shadow第二个字段加*

passwd -u a 释放临时关闭用户

usermod 修改用户信息

-u 修改UID

-g 修改GID

-d 指它家目录

-s 指用bash

usermod -G kyo a 把a用户添加进kyo用户组

用户信息相关的命令

chfn 修改一个用户相关的信息

finger 查看一个用户相关的信息

组管理

相关配置文件

/etc/group

/etc/gshadow

vim /etc/group

第一列:组名

第二列:密码,x代表密码在/etc/gshadow

第三列:gid

第四列:代表属于这个组的用户名

vim /etc/gshadow

第一列:组名

第二列:密码

第三列:组管理员

第四列:组成员

相关命令

groupadd 添加一新用户组

groupdel 删除一用户组

groupmod 修改用户组信息

gpasswd 修改用户组密码

gpasswd -a a root 把a用户放进root用户组

gpasswd -A a root 把a用户放进root用户组并当管理员

gpasswd -d a root 把a用户从root用户组里删除

newgrp root 把当前用户临时添加进root用户组,重新登录失效

id 显示用户的ID和组ID

用户身份切换

su - a 完全切换,不继承上一个用户的环境变量,即sbin目录下的命令用不了

su a 不完全切换,继承上一个用户的环境变量,可以用sbin目录下的命令

手工创建用户

第一步:在/etc/passwd添加一行信息

bean:x:534:603::/home/bean:/bin/bash

第二步:在/etc/shadow添加一行信息

grub-md5-crypt 创建md5密码,把密码替换下面两个!!位置

bean:!!:15035:0:99999:7:3::

第三步:在/etc/group添加组的信息

bean:x:603:

第四步:在/etc/gshadow添加组的密码信息

bean:!::

第五步:创建家目录

mkdir /home/bean

第六步:把用户的环境变量文件复制到家目录

cp /etc/skel/.bash* /home/bean

chown bean:bean /home/bean/ -R

chmod 700 /home/bean/ -R

第七步:创建用户的邮件文件

touch /var/mail/bean

chown bean:bean /var/mail/bean

chmod 660 /var/mail/bean

================================================================================

Linux权限

ls -l

- rw- r-- r-- 1 root root 4383 2011-03-01 01:37 readme.txt

所属用户权限u 所属用户组权限g 其它人权限o

r read 读权限

针对文件夹,具有r权限,就代表具有对这个文件夹进行列表的权限

针对文件,具有r权限,就代表具有读取这个文件的内容的权限

w write 写权限

针对文件夹,具有w权限,代表具有他能在此文件夹里创建修改等操作

针对文件,具有w权限,代表具有修改此文件内容的权限

x execute 执行权限

针对文件夹,具有x权限,代表可以切换到此文件夹

针对文件,具有x权限,代表可以运行它,文件必须是可执行或脚本等

二进制转八进制:

000 0 ---

001 1 --x

010 2 -w-

011 3 -wx

100 4 r--

101 5 r-x

110 6 rw-

111 7 rwx

rwx, r-x, r-x

7 5 5

-------------------------------------------------------------

chmod 修改权限的命令

chmod u+x,g+r,o-r file 修改file文件用户权限加上可执行权限,用户组也加上读权限,其它用户减去读权限

chmod u=rwx,g=rw,o=r file 修改file文件用户权限为可读可写可执行,用户组为可读可写权限,其它用户为读权限

chmod 755 file 修改file文件用户权限为可读可写可执行权限,用户组为可读可执行权限,其它用户也为可读可执行权限

chmod 755 dirs -R 修改dirs目录里所有文件的用户权限为可读可写可执行权限,用户组为可读写执行权限,其它用户也为可读可执行权限

-------------------------------------------------------------

chown 修改文件用户所属

chown tom file 修改file文件所属用户为tom

chown tom:jack file 修改file文件的所属用户为tom,所属用户组为jack

chmod jack.root dirs -R 修改dirs目录里所有文件所属用户为jack,所属用户组为root

-------------------------------------------------------------

umask 默认创建文件或文件夹权限掩码

管理员默认umask为022

普通用户默认umask为002

默认创建文件夹权限是777,而掩码设置为022,则要减去掩码,默认创建文件夹权限则变成755

默认创建文件权限是666,而掩码设置为022,则减去掩码,默认创建文件权限为644

-------------------------------------------------------------

特权位 针对命令文件,设定setuid、setgid

针对命令文件设定setuid、setgid

没加特权位之前,命令运行的时候所采用的身份是运行者的身份

添加了特权位之后,命令运行的时候采用的身份不再是运行者的身份,而是命令本身的所属者

例:passwd touch

针对目录设定setgid

设定了组的特权位后,在该文件夹下创建子文件或子目录,它们自动继承文件夹的所属组的身份,子目录会继承目录的特权位

chmod u+s/g+s file 给file设置特权位

chmod u-s/g-s file 给file取消特权位

-------------------------------------------------------------

粘贴位 防止其它用户删除文件,针对其它用户,管理员和本人可以删除,针对目录有效,文件没有用

chmod o+t dirs 给dirs目录设置粘贴位

-------------------------------------------------------------

文件特殊属性

lsattr 查看文件特殊属性

chattr 添加或修改文件特殊属性

chattr +i file 添加i属性,管理员也不得更改

chattr +a file 只能追加内容,不得修改内容,如果有i属性,先取消才能加a属性

chattr -i/-a file 取消文件特殊属性

-------------------------------------------------------------------------------

系统基本命令

file 查看文件类型

uname 查看系统基本信息

-r 内核版本

-s 什么内核

-o 什么操作系统

-n 什么发行版

-m 什么平台

-a 查看所有信息

cal 打印日历

cal 2005 打印2005年日历

bc 支持超大数的文本计算器

quit 退出

date 时间日期命令

+%Y 年

+%m 月

+%d 日

+%H 小时

+%M 分

+%S 秒

......

echo 打印字符串

-n 不换行

-e 支持\t\n等

shutdown -r 重启

suutdown -c 取消计划中的关机或重启

shutdown -p 直接关闭电源

shutdown -h 关机

shutdown -h 30 "30秒后就要关机" 计划关机并给所有终端提示

init 改变系统运行级别

0 关机

1 单用户模式,没有用户和密码验证

2 不带网络的文本模式

3 带网络的文本模式

4 保留

5 带图形界面的模式

6 重启电脑

runlevel 查看当前运行级别

sync 同步磁盘

cat /etc/issue 查看linux系统发行版本信息

w 更详细的显示在线情况

21:55:44 up 1:49, 5 users, load average: 0.38, 0.35, 0.23

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

root tty7 :0 20:06 1:49m 1:52 0.12s gnome-session

root pts/2 :0.0 20:24 33.00s 0.10s 0.10s bash

root pts/3 :0.0 21:37 11:18 0.02s 0.02s bash

用户名 登录终端 从哪里登录过来 登录时间

踢掉一个远程登录过来的用户

ps -aux | grep pts/5 pts/5是远程登录的终端,查看终端对应的PID

kill -9 3236 3236是上面查到的pts/5的PID

命令类别:

内部命令 集成于SHELL程序的命令

外部命令 独立可执行文件的命令

区别方法:

which 命令

如果有路径代表外部命令,找不到则代表内部命令

type 命令

如果结果显示is a shell builtin代表是内部命令,否则为外部命令

帮助命令:

man 外部命令

获取外部命令的帮助信息

q 退出 h 获取man手册帮助信息

man手册分1 ~ 8的章节

1 基本命令帮助信息

2 系统调用函数帮助信息

3 标准库函数帮助信息

5 配置文件帮助信息

8 系统管理员命令帮助信息

help 内部命令

获取内部命令的帮助信息

文件操作命令: rm mv cp touch vim gedit

目录相关命令: cd pwd mkdir rm ls

文件阅读命令: head tail cat more less

head 查看指定文件头部行数内容

head -n 5 file

列出文件前5行内容

tail 查看指定文件尾部行数内容

cat 查看文件所有内容

more 一行一行查看文件内容

q 结束查看

enter 查看下一行

less 可控性更强的查看文件命令

bash SHELL提供:

重定向

0 标准输入

1 标准输出

2 错误输出

输出重定向: > 1> 2> >> 1>> 2>>

输入重定向: < <<

管道 |

把|前面的命令的输出给后面命令进行解析

----------------------------------------------------

用户管理 (用户为了权限存在)

超级管理员 root 0

系统用户 1 - 499 / 999 用于系统服务的用户

普通用户 500 / 1000 以上

用户相关配置(超级管理员才可以修改):

/etc/passwd 用户信息

/etc/shadow 用户密码信息

/etc/group 用户组信息

/etc/gshadow 用户组密码信息

用户相关命令:

id 获取当前登录用户信息

su 切换用户

useradd/adduser 添加用户

userdel 删除用户

默认不删除用户家目录,-r会删除家目录

userdel -r 用户名

passwd 修改用户密码

权限:

查看文件详细信息

ls -l 文件

-rw-rw-r--. 1 kyo kyo 4633 2月 16 11:18 env.txt

-rw-rw-r-- 文件类型及权限

1 硬链接数

kyo 属用户

kyo 所属用户组

4633 文件大小(字节)

2月 16 11:18 最后修改时间

env.txt 文件名

-rw-rw-r-- 文件类型及权限

第一个字符代表文件类型

- 普通文件

d 目录

l 软链接

p 管道文件

s 套接字文件

c 字符设备文件

b 块设备文件

后九个字符代表权限(三个字符为一段)

rw- (u)所属用户对此文件的操作权限

rw- (g)所属用户组对此文件的操作权限

r-- (o)其它用户对此文件的操作权限

r 读

针对文件, 有r才能对此文件读取内容

针对目录, 有r才能列表目录里内容

w 写

针对文件,有w才能对此文件进行编辑

针对目录, 有w才能才能到此目录里创建或删除文件或子目录

x 可执行

针对文件,有x才能运行文件

针对目录,有x才能切换进去(cd切换不进去)

修改权限: chmod

chmod u=rwx,g=r--,o=--- file

chmod u+x,g-w,o+r file

权限的数字表示方式(八进制)

--- 000 0

--x 001 1

-w- 010 2

-wx 011 3

r-- 100 4

r-x 101 5

rw- 110 6

rwx 111 7

chmod 755 目录/ -R

将目录及目录里所有文件都修改权限为755

修改所属用户及组: chown

chown 用户名:用户组 file -R

粘贴位(只针对其它用户对文件夹设置权限 setVTX)

作用: 防止其它用户删除

chmod 777 目录/

chmod o+t 目录/

用户只能删除自己的东西

ls查看粘贴位: 目录如果有执行权限显示t, 否则显示T

特权位(setuid setgid)

只能给所属用户与所属用户组设置

默认可执行文件运行的权限为当前登录用户

有了特权位可执行文件运行的权限为文件的所属用户

用户特权:

chmod u+s 可执行文件

用户组特权:

chmod g+s 可执行文件

文件特殊属性:

lsattr 查看文件的特殊属性

chattr 修改文件的特殊属性

linux基本命令