basename:
mkdir -p test1/test2/test3 递归创建
只能删除空目录
命令模式:按esc键可回到命令模式
插入模式:
末行模式:
touch test.py 创建空文件,如果文件存在,则修改文件创建时间
cat 文件名 查看文件内容内容
cat -n 文件名 查看文件内容,并列出行号
head 文件名 显示文件头几行(默认显示10行)
head -n 20 文件名 显示文件前20行
head -n -20 文件名 显示文件最后20行
ctrl + c 强制终止查看模式
ctrl + l 清屏
cp 源文件 目标位置/目标名称 (复制并改名)
cp -r 复制目录
cp -p 连带文件属性一起复制
cp -d 若源文件是链接文件,则复制链接属性
cp -a 相当于 cp -pdr
mv 源文件 目标位置
mv /root/test /tmp/ 将/root/下的test文件移动到/tmp/目录下
mv /root/test /root/newtest 将/root/下的test文件改名为newtest
注:…表示父目录;.表示当前目录
drwxr-xr-x. 3 1001 1001 18 4月 25 2011 help
- 普通文件f d 目录文件directory l 符号链接文件link;软链接(快捷方式) b 块文件block(存放文件的格式)随机读,随机存的设备 c 字符设备character(顺序存取) s 套接字文件socket (ip+port) p 管道文件pipe
rwxr-xr-x.
前三个:该文件拥有者对文件的权限;
再三个:该文件所属组对文件的权限;
后三个:其他人对该文件的权限
对文件来讲:
对目录文件来讲:
.
chmod:chmod - change file mode bits
默认普通文件没有执行权限:666
umask
setfacl - set file access control lists
-m, --modify=acl modify the current ACL(s) of file(s)
-x, --remove=acl remove entries from the ACL(s) of file(s)
-b, --remove-all remove all extended ACL entries
[root@localhost mydata]# setfacl -m u:zhangsan:r secret
[root@localhost mydata]# setfacl -m g:zhangsan:r secret
[root@localhost mydata]# setfacl -m u:zhangsan:r secret [root@localhost mydata]# ll total 4 -rw-r-----+ 1 root root 18 Apr 30 06:54 secret [root@localhost mydata]# su zhangsan cat[zhangsan@localhost mydata]$ cat secret zhanghaomima haha [zhangsan@localhost mydata]$ exit exit [root@localhost mydata]# su lisi [lisi@localhost mydata]$ cat secret cat: secret: Permission denied [lisi@localhost mydata]$ exit exit [root@localhost mydata]# setfacl -m g:zhangsan:r secret [root@localhost mydata]# su lisi [lisi@localhost mydata]$ cat secret zhanghaomima haha
setfacl -x g:zhangsan secret
删除允许命令suid:u+s:可执行文件所属用户的强制位,作用让进程文件的所属用户不再属于发起者的身份,而是程序文件自身的所属用户。
sgid: g+s:可执行文件所属组的强制位,作用让进程文件的所属组不再属于发起者的身份,而是程序文件自身的所属组 。
o+t --仅对目录设置(在一个公共目录,删除自己的文件,但不能删除别人的文件)
[root@localhost mydata]# getfacl secret # file: secret # owner: root # group: root user::rw- user:zhangsan:r-- group::--- group:zhangsan:r-- mask::r-- other::---
chattr - change file attributes on a Linux file system
lsattr - list file attributes on a Linux second extended file system
查看隐藏属性
硬链接次数
跨分区
属主属组:
第一个表示的是属于哪个拥有者;第二个表示属于哪个组
数据和原数据
目录文件本身文件的大小,不是文件内容的大小。
man帮助中找到:stat就是显示文件的状态信息
stat - display file or file system status
Flie:显示文件名 Size:显示文件大小 Blocks:文件使用的数据块总数 IO block:IO块的大小 regular flie:文件类型 Device:设备编号 INode:INode号 links:硬链接次数 Access:文件权限 Uid:文件所有者的id Gid:文件所有组的Id
Access Time:atime,文件访问时间,当文件内容被访问后,更新此时间。
Modify Time:mtime,文件内容修改时间,当文件内容修改后,此时间发生改变。
Change Time:ctime,文件状态时间,当文件状态被改变后,更新此时间。例:文件的链接数、大小、权限、Blocks数。
改变Access Time:
改变Modify Time:
改变Change Time:
将三个时间同步:
查看系统时间
注:一般不会更改系统时间,只需要查看
查看硬件时间
查看日历
用法:
cal [选项] [[[日] 月] 年]
选项:
查看文件
用法:cat [选项]… [文件]…
将[文件]或标准输入组合输出到标准输出。
FHS 文件系统层级结构 非标件 馒头
查看文件类型
变量是命名的内存空间。
变量赋值:
定义当前用户工作环境属性的变量:PATH
添加指定命令别名:alias 目标命令名称=‘需要执行的命令串本身’
~/.bashrc
unalias 删除指定的命令别名
实现缓存管理
缓存,命中率相当高,在hash表中保存了执行过的所有的路径,当缓存很大时,一定比PATH查找速度快吗?
命令:
hash既然缓存命令,那我直接修改hash表中的值,变更原来命令;结果是不可行的。
思考:命令是先通过alias进行查找,找到ls后,然后再去查询hash表。
useradd USERNAME or adduser USERNAME
-u UID 指定UID
-g GID 指定基本组
-G GID1,GID2,… 指定附加组
-c “注释信息” 指定用户注释信息 chfn
-d /path/to/dir 指定某个目录为用户家目录
-s /shell 指定用户使用的shell chsh -s
选项同useradd
-u 修改UID
-g 修改基本组,基本组必须事先存在
-G 这个选项会覆盖之前的附加组,和-a选项配合使用
usermod -a -G 追加附加组
-c 修改用户注释信息
-s 修改用户shell
-l 修改登陆名
userdel USERNAME
-r 删除用户时删除用户家目录和用户的邮箱
-u 显示UID
-G 显示附加GID
-g 显示GID
-n
-g GID
-r 添加系统组
-g GID
-n GRPNAME 修改组名
chown 用户名 文件名 改变文件属主
chown user1 aa user1必须存在
chown user1:user1 aa 改变属主同时改变属组
yum:dnf: DNF is the next upcoming major version of YUM
配置yum仓库:
dnf install 安装
yum install
dnf remove 卸载
yum install
linux上常见的压缩命令就是gzip与bzip2
压缩文件gzip: gzip 文件名(原文件不存在)
gzip -c 文件名1 >文件名1.gz (保留原文件)
解压文件: gzip -d 文件名.gz(不保留)
gunzip 文件名.gz
gzip -cd 文件名2.gz >文件名2(保留原文件)
查看压缩过的文本文件内容:zcat 文件名.gz
压缩文件bzip2(用法同gzip):bzip2 文件名
bzip2 -c 文件名1 >文件名1.bz2(保留原文件)
解压文件: bzip2 -d 文件名.bz2(不保留原文件)
bunzip2 文件名.bz2
bzip2 -cd 文件名2.bz2 > 文件名2(保留原文件)
查看压缩过的文件内容:bzcat 文件名.bz2
文件的归档即打包文件:tar [主选项+辅选项] 文件或目录 tar
主选项:只能出现一个主选项
c— create 创建一个新归档文件 (打包文件)
x— 从归档文件中提取文件出来
t— 列出归档文件的内容,查看已经打包了哪些文件,重点在查看文件名
辅选项
z—通过gzip的支持进行压缩/解压缩,一般格式为*.tar.gz
j— 通过bzip2的支持进行压缩/解压缩,一般格式为*.tar.bz2
J—通过xz的支持进行压缩/解压缩,一般格式为*.tar.xz
v— 归档或解包过程中显示被打包的文件
C—这个参数用在解压缩时,若要在特定目录解压缩,可以使用这个参数
f— 输出结果到文件,必须写该选项
–exclude=FILE在打包的过程中,不要将 FILE 打包! --排除某个文件打包
常见的两种压缩方式:jcvf zcvf
打包、压缩文件1和2并重命名:tar zcvf 新文件名 文件名1 文件名2 文件名3 文件名4
解压:tar xvf 文件名 该命令会自动判断归档文件的压缩格式,自动调用相关程序进行解压缩
解压到指定路径:tar xvf 文件名 -C 目标路径
tar -xjv -f filename.tar.bz2 -C 欲解压缩的目录
查看已压缩文件:tar tf 文件名
创建 xz 格式文件
方法一:
也是用到两步命令,首先利用 tar 命令将 linux-3.12 文件夹打包成 linux-3.12.tar,其次用 xz-utils 的 xz 命令将 linux-3.12.tar 压缩成 linux-3.12.tar.xz。
tar -cf linux-3.12.tar linux-3.12/
xz -z linux-3.12.tar
方法二(推荐)
tar -Jcf linux-3.12.tar.xz linux-3.12/
1. 解压 xz 格式文件
方法一:
需要用到两步命令,首先利用 xz-utils 的 xz 命令将 linux-3.12.tar.xz 解压为 linux-3.12.tar,其次用 tar 命令将 linux-3.12.tar 完全解压。
xz -d linux-3.12.tar.xz
tar -xf linux-3.12.tar
方法二(推荐)
tar -Jxf linux-3.12.tar.xz
安装MySQL包
dnf install @mysql:8.0
启动mysqld服务
systemctl enable --now mysql
初始化数据库
mysql_secure_installation
录入初始权限
[root@localhost ~]# mysql_secure_installation Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No: y There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0 Please set the password for root here. New password: Re-enter new password: Estimated strength of the password: 25 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y ... Failed! Error: Your password does not satisfy the current policy requirements New password: Re-enter new password: Estimated strength of the password: 50 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? (Press y|Y for Yes, any other key for No) : y Success. Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : no ... skipping. By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : no ... skipping. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y Success. All done! [root@localhost ~]# [root@localhost ~]# [root@localhost ~]# [root@localhost ~]# mysql -uroot -pqwer1234 mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 11 Server version: 8.0.13 Source distribution Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> mysql> mysql> mysql> mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.01 sec)
例:创建数据库,创建数据表,插入数据,查看数据
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.01 sec) mysql> create database temp; Query OK, 1 row affected (0.07 sec) mysql> use temp Database changed mysql> create table test1( uname varchar(10) not null default ' ', age smallint not null default 0 )engine myisam charset utf8; Query OK, 0 rows affected, 1 warning (0.07 sec) mysql> insert into test1 values ('卢布',23),('曹尼玛',99),('李四',10); Query OK, 3 rows affected (0.02 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> select * from test1; +-----------+-----+ | uname | age | +-----------+-----+ | 卢布 | 23 | | 曹尼玛 | 99 | | 李四 | 10 | +-----------+-----+ 3 rows in set (0.00 sec) mysql> quit Bye