2020-03-18
一、echo
1、原文输出,双引号可加可不加
echo "hello world"
echo hello world
2、输出变量的值
echo $变量名
echo $PATH --输出环境变量PATH的值
注意:linux环境变量的配置文件是:/etc/profile ,只有root才有权限写入
二、head:
读取文件头部的信息,默认读取头10行
head 文件 ---读文件的头10行
head -5 文件 ---读文件的头5行
三、tail:
读取文件尾部的信息,默认读取10行
tail 文件
tail -5 文件
tail -f 文件 ---实时跟踪文件尾部的最新内容,如果不想跟踪,按ctrl+c退出即可
四、重定向:
1、输入重定向:< 了解: 命令 < 文件名 ---将文件的内容输入给命令 wc < hadoop.list
2、输出重定向:还有一个新的功能---创建新文件
(1): 标准输出重定向
标准输出:指的是命令正确运行的输出结果
> : 命令 > 文件名 --- 会前面命令的输出结果写入到文件中,如果文件不存在,会创建该文件后写入命令的输出内容,如果文件存在,会将文件中原来的信息清除掉之后将命令的输出写入
>>:命令>> 文件名 ----与上面的命令一样,只是当文件存在时,会在文件原来内容的后面追加写入命令的输出
(2):标准错误输出重定向
标准错误输出: 指的是命令没有正确运行的报错输出
2>: 与>一样,会清除原内容再写入
2>>: 追加写入
(3)标准输出和标准错误输出重定向
&>:会清除原内容再写入
&>>:追加写入
五、ln:
创建链接, 是link的缩写
语法:ln -s 【源文件或目录的绝对路径】 【链接路径/链接名】
-s:代表创建的链接是符号链接 ,也叫软链接 在ls -l 查看详细列表时,文件类型会显示为l
如果不加-s,创建的链接叫硬链接,只能对文件创建,必须在同一分区 ,文件类型显示为-
注意:源文件和目录一定要写绝对 路径,否则容易找不到。
六、history:
查看当前用户使用的所有历史命令。
历史命令有个数限制的,是环境变量HISTSIZE的值来决定的。
每个用户的历史命令保存在当前用户家目录下的.bash_history中。
七、useradd:
添加用户
用户管理的一般是由root来进行操作的。
1、用户帐号文件:/etc/passwd
root:x:0:0:root:/root:/bin/bash
hadoop:x:1001:1001::/home/hadoop:/bin/bash
该文件中的每一行都代表Linux上的一个用户的信息,有7个字段组成,字段与字段之间以冒号分隔
第1个字段:登录的用户名
第2个字段: 密码占位符
第3个字段:用户的uid,相当于用户在linux系统上的唯一身份id
第4个字段:用户的基本组id
第5个字段:用户的全名
第6个字段:用户的家目录 、宿主目录
第7个字段:用户的登录shell 默认的shell为/bin/bash
语法:useradd [选项] 用户名
useradd 用户名 -- 用户的所有属性都使用的是默认值
ls -l 查看目录的详细格式说明:
-rw-------. 1 root root 1600 3月 9 21:37 anaconda-ks.cfg
第1个字段:
-rw-------:第1个字符代表是文件类型:-:普通文件 d:目录文件 l:链接文件 b:块设备文件 c:字符设备文件
第2,3,4个字符代表文件属主的权限 r:读 w:写 x:执行
第5,6,7个字符代表文件属组的权限
第8,9,10个字符代表文件其它用户的权限
第2个字段:文件或目录的深度
第3个字段:文件或目录的属主
第4个字段:文件或目录的属组
第5个字段:文件的大小
第6个字段:最后一修改时间
第7个字段:文件或目录名
2020-03-25
一、useradd:
用户帐号文件:/etc/passwd
用户密码文件:/etc/shadow
1、创建用户:
语法:useradd [选项] 用户名
---创建用户test1
useradd test1
//用户test1的属性都为默认值:
家目录:/home/用户名
登录shell: /bin/bash
UID:系统指定
添加一个与用户名相同的组:test1 查看组信息:/etc/group
在用户的家目录复制了一批文件:从/etc/skel目录中复制来的。
~/.bash_profile: 用户每次登录时执行的文件,通常用来进行用户环境变量的定义,注意:系统环境变量/etc/profile
~/.bashrc: 每次进入新的bash环境时执行
~/.bash_logout: 用户每次退出登录时执行
2、如果用户指定属性信息:
-u: 指定UID
-d:指宿主目录或家目录, 缺省的家目录为/home/用户名
-g:指定用户的基本组名
-G:指定用户的附加组名
-s:指定用户的登录shell
---创建用户test2, 指定用户UID为888,基本组为root组,登录shell为/bin/csh,指定家目录为/opt/aaa
useradd -u 888 -g root -s /bin/csh -d /opt/aaa test2
二、passwd:
1、如果是重置自己的密码:
passwd
2、如果是设置指定用户的密码(root操作):
passwd 用户名
3、锁定/解锁帐号密码:当用户密码被锁,该用户就不能登录到系统上
-l: 锁定密码
-u: 解锁密码
-S:查看用户的帐号的状态
三、id:查看用户的身份标识
---查看指定用户的身份标识
id 用户名
---查看当前登录用户的身份标识
id
四、su:切换用户
su 用户名 //切换用户身份,但是不更改当前工作目录
su - 用户名 //切换用户身份,并且当前工作目录会更改为新用户的家目录
---当前登录用户是root, 切换到其它用户下,不需要输入密码
su - 用户名
---当有登录用户是普通用户,切换到其它用户下,都需要输入密码
su 用户名
注意:如果是想切换到root身份下,也可以直接输入su, 回车输入密码即可。
五、userdel:删除用户
userdel [-r] 用户名
-r: 删除用户时将用户的家目录一并删除
六、who查看连接Linux服务器的用户信息
who
w
七、usermod:修改用户的基本属性:
-u: 修改用户的uid
-d:修改用户的家目录
-s: 修改用户的登录shell
-g:修改用户的基本组
usermod [选项] 用户名
----修改test3用户的登录shell为/bin/csh, 用户基本组为root
usermod -s /bin/csh -g root test3
八、用户组管理
1、组管理文件:
/etc/group: 文件中存放在所有组的信息
---每一行都代表一个组的信息
test3:x:1002:
字段1:组名p
字段2:密码占位符
字段3:组ID
字段4:加入该组的用户列表
/etc/gshadow: 保存组帐号的密码信息 ,一般情况下,是不对组设置密码的。
2、groupadd:
语法:groupadd [-g gid] 组名
---创建一个组neu, 组id为666
groupadd -g 666 neu
3、gpasswd: 添加/删除组成员
语法:
gpasswd [选项] 组名
选项:
-a: 向组内添加一个用户
-d: 从组内删除一个用户
-M:定义组成员列表,以逗号分隔
4、groupdel:删除组
groupdel 组名
5、groupmod:修改组
groupmod [选项] 组名
选项:
-n: 修改组名
-g: 修改组id
groupmod -n 新组名 旧组名
groupmod -g 新组id 组名
九、修改权限
格式一:
chmod [ugoa][+-=][rwx] [-R] 文件名或目录
-R: 递归修改,会将目录以及目录下的所有文件和目录的权限一并修改
u: 属主
g: 属组
o:其它用户
a:所有用户
+:增加权限
-: 减去权限
=:重置权限
r: 读
w; 写
x: 执行
---修改当前目录下文件ana.cfg的权限为属主读写执行,属组读写,其它用户为读
chmod u+x,g=rw,o=r ana.cfg
--修改当前目录下文件ana.cfg的权限所有用户都为读写
chmod a=rw ana.cfg
---递归修改当前目录下aaa目录以及子目录子文件的权限都为所有用户读写执行
chmod -R a=rwx aaa
格式二:
chmod nnn [-R] 文件名或目录名
第一个n: 属主的权限值
第二个n:属组的权限值
第三个n:其它用户的权限值
读: 4
写: 2
执行: 1
读写执行:4+2+1=7
读写: 4+2=6
---递归修改当前目录下aaa目录以及子目录子文件的权限都为所有用户读写执行
chmod -R 777 aaa
---修改当前目录下文件ana.cfg的权限为属主读写执行,属组读写,其它用户为读
chmod 764 ana.cfg
十、修改属主和属组
格式:
chown 属主 [-R] 文件或目录
chown :属组 [-R] 文件或目录
chown 属主:属组 [-R] 文件或目录
---修改当前目录ana.cfg 属主为test2, 属组为neusoft
chown test2:neusoft ana.cfg
-修改当前目录下的aaa目录以及子目录子文件的属主为test2, 属组为neusoft
chown test2:neusoft -R aaa
2020-04-01
一、find:查找文件或目录的位置
有一个相似的命令:which ---查找命令程序的位置,查找范围是$PATH环境变量中所列出的路径。
语法:find [查找范围] [查找条件选项]
查找范围:
/: 在整个linux系统中进行查找
/etc: 查找配置文件时指定的路径
查找条件:
-name: 指定文件或目录名 文件名可以模糊查找,*:代表任意字符
-user:按文件或目录属主
-size: 按文件的大小 +:大于 -:小于 省略:等于
-type: 按文件类型 f: 普通文件 d: 目录文件 l: 链接文件 b: 块设备文件 c: 字符设备文件
二、|:管道符
前一个命令的输出是后一个命令的输入。
ls -R / | more ---将查找根目录以及子目录的列表分页显示
三、grep:
语法1:
grep [选项] 查找的字符串 文件名
选项:-n ---会显示对应的行号
查找的字符串: 用双引号引起来 , “^str”---以str开头的 ,"str$" ----以str结尾的, “str”---包含str的
比如:
grep -n "a$" anaconda-ks.cfg
grep -n "^a" anaconda-ks.cfg
语法2:
命令 | grep [选项] "查找字符串"
比如: ls -a | grep ".bash"
cat anaconda-ks.cfg | grep "install" | grep "Use" | grep "CDROM"
四、which: 查找外部命令程序文件的位置
查找范围是$PATH环境变量所设置的路径
五、gzip/gunzip:压缩和解压.gz包
特点注意:一个压缩包只能压缩一个文件
只能压缩文件不能压缩目录
压缩后原文件不保留
解压后压缩文件不保留
gzip ana.cfg
gunzip ana.cfg.gz
所以:因为这些限制,该命令一般不单独使用。
六、zip/unzip: 压缩和解压.zip包
zip [-r] 压缩包名.zip 要压缩的目录或文件的列表
unzip [-d 目标解压目录] 压缩包名.zip
zip -r rootlist.zip aaa ana.cfg anaconda-ks.cfg initial-setup-ks.cfg 文档
unzip -d ./new rootlist.zip
七、tar: 压缩和解压.tar 和.tar.gz包
压缩.tar
tar -cvf 压缩包名.tar 压缩的文件或目录列表
压缩.tar.gz
tar -zcvf 压缩包名.tar.gz 压缩的文件或目录列表
解压.tar:
tar -xvf 压缩包名.tar [-C 目标解压目录]
解压.tar.gz:
tar -zxvf 压缩包名.tar.gz [-C 目标解压目录]
tar -cvf rootlist1.tar aaa *.cfg
tar -zcvf rootlist2.tar.gz aaa *.cfg new
tar -xvf rootlist1.tar -C test
tar -zxvf rootlist2.tar.gz -C targz
八、df:查看硬盘的使用情况
df -h: 以易读方式显示硬盘各分区的空间占用情况
-t: 查看指定文件系统的空间占用情况
-T:在结果中显示文件系统类型。
df -t xfs -hT
九、free:查看linux内存的使用情况
free -h:以易读方式显示内存的空间占用情况
十、mount/umount:挂载和卸载
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom ---将虚拟机的光驱设备挂载到/mnt/cdrom目录中
ls /mnt/cdrom ---查看光盘中的内容
umount /mnt/cdrom ---卸载挂载点
十一、ps:
ps -aux : 查看CPU和内存的使用率
ps -ef: 查看 父子进程的关系
十二:kill:杀掉进程
kill -9 进程号;