重新使用linux的一些事情
workstatin版基本上已经有了常用的那些功能了, 代码开发完全足够了, 不需要再去加什么东东了
httpd已经有了, 结构:
- /usr/lib: 库,放置的是 (操作)系统的静态库, 大多数是直接放置的, 还有一部分按目录分类放置的
- /usr/lib/systemd 是: system daemon[dim2n]: ae: i, 是放置的一些 系统的守护进程
- /usr/lib/systemd/system 是放置的 系统的 内置服务进程(即系统自带/预先就给你安装好了的服务), 就包括 httpd.service, httpd.service.d , socket.service socket.service.d 这些服务和目录
系统安装的服务是放在: /usr/lib/systemd/system中的, 比如/httpd.service, 而要开机启动 systemctl enable httpd.service
则要将他们放到 etc(的相应目录)下去, enable就是去创建这个symbol链接:
/etc/systemd/system/multi-user.target.wants/httpd.service -> /usr/lib/systemd/system/httpd.service
**而 要检测 httpd这些服务 是否是 开机启动, 需要用命令: ` sytemctl is-enable serviceName.service **
**在用root 身份修改的/var/www/html目录的权限为 -rwxrwxrwx 后, 以普通用户创建的文件, 其所有权 还是属于 该 普通用户, 而不是属于root的, 模式也是默认的 664 **
感觉这次安装后, ff特别容易卡, 假死, 所以考虑禁用一些服务和进程, 使用到两个命令: 一个是 ps -aux 和 netstat, 查看, 杀死和禁用进程/服务: kill -9... 和 systemctl disable...
一般情况下可以关闭的服务:
chkconfig --level 2345 autofs off
chkconfig --level 2345 acpid off
#chkconfig --level 2345 sendmail off
chkconfig --level 2345 cups-config-daemon off
chkconfig --level 2345 cups off
chkconfig --level 2345 xfs off
chkconfig --level 2345 lm_sensors off
chkconfig gpm off
chkconfig openibd off
chkconfig iiim off
chkconfig pcmcia off
chkconfig cpuspeed off
chkconfig nfslock off
chkconfig ip6tables off
chkconfig rpcidmapd off
chkconfig apmd off
chkconfig arptables_jf off
chkconifg microcode_ctl off
chkconfig rpcgssd off
chkconfig NetworkManager off
===============================================
关于 systemd和target: 参考: https://www.cnblogs.com/lxjshuju/p/7183689.html
pem是: privacy enhanced mail: 隐私增强的邮件
是一种协议, 是opensll和nss使用的一种加密协议, 里面包括证书+秘钥 (可以在java中读取.pem格式文件中的 PrivateKey)
OpenSSL 使用 PEM 文件格式存储证书和密钥。PEM 实质上是 Base64 编码的二进制内容,再加上开始和结束行,如证书文件的----BEGIN CERTIFICATE-----和-----END CERTIFICATE-----
在这些标记外面可以有额外的信息,如编码内容的文字表示。文件是 ASCII 的,可以用任何文本编辑程序打开它们。
=======================================
安装的mariadb数据库,除了名字和服务名称是mariadb之外,其他操作基本上还是使用的 mysql
使用MySQL -uroot -p登录出现找不到 /var/lib/mysql/mysql.sock问题。
- 当然首先是要 看 mysqld或 mariadb这个服务是否起来了
- 原因是: 用rpm安装的,默认的socket是安装在 /tmp/mysql.sock, 但是mysql启动的时候, 是要到/var/lib/mysql目录下去找 mysql.sock这个套接字的。
所以:可以用如下命令登录:mysql -p --socket=/tmp/mysql.sock
或者为mysql.sock增加软连接 ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
kill killall pkill 的区别?
用kill来杀死某一个进程, kill,加选项-9,加PID,表示杀死进程编号为PID的这个进程
用 killall 杀死一类进程,即某个服务的所有进程
killall,加选项-9,加服务名, 表示杀死该服务的所有进程 (相当于杀死进程树) [root@localhost ~]# killall -9 httpd
用pkill踢出某个终端:
pkill,加选项-9,加终端号,表示踢出该终端 [root@localhost ~]# pkill -9 pts/0
**实际上,现在的登录终端,都是虚拟终端了:即pt: pts/0: pseudo terminals /0: (其中,pts是复数形式的) **
mysql和mysqld的区别?
mysql -- mysql is a command-line client for executing SQL statements interactively or in batch mode.
mysqld -- mysqld is the MySQL server.
daemon: ae===ea i:
==================
关于软硬链接?
= 硬链接是对同一个 inode的文件在不同的地方创建链接. 文件名可以不同, 但是文件内容是一样的, 因为kernel是通过 inode 来读取文件内容的, 而不是通过文件名来读取的. 硬链接是使用的 "链接计数" 来管理的, 删除一个硬链接, 只是使链接计数减1, 只有当文件的链接计数等于0, 才会真的删除该文件
= 硬链接不能针对目录, 不能跨 分区(不能跨文件系统) 比如: ln /home/foo /opt/foo-hardlnk
由于/home是/dev/sda2分区中的, 而 /opt?foo-hardlnk是 /dev/sda4分区中的, 跨分区不能创建硬链接, 所以会提示: invalid cross-device link.
= 不管是硬链接还是 软链接 , 都 不会另外创建一份 文件的 副本, 不会复制. 当copy 复制的时候 那个不叫链接, 那是两个完全不相关的文件.
fedora高版本都只提供了 64位的系统,虽然ff57后只提供了 quantum, 只允许 webextensions的架构扩展, 以前的扩展很多不能使用了, 但是可以保持使用低版本的ff比如ff 50.0的版本
还好的是, 使用低版本的fedora, 其对应低版本的、原始的软件仓库还是保持可用的,在everything中,还能保持一些软件、组件的更新
一般在函数中使用 下划线, 如get_attr(), 而以下划线开头的函数 一般是 系统内部的函数,如 __construct等等, 而应用程序中使用 的函数则在中间用下划线, 命令中一般使用横线
命令的选项使用横线的是 Sys V 风格 而不使用横线的是BSD 的风格
单个横线后面的选项用 字符, 而两个横线后面的选项用 单词,比如:
不能安装 vim? 是因为conflict? 是vi的版本过低造成的,解决方法是更新vi:
Downloading Packages:
[SKIPPED] vim-enhanced-7.4.1868-1.fc23.i686.rpm: Already downloaded
[SKIPPED] gpm-libs-1.20.7-7.fc23.i686.rpm: Already downloaded
[SKIPPED] vim-common-7.4.1868-1.fc23.i686.rpm: Already downloaded
[SKIPPED] vim-filesystem-7.4.1868-1.fc23.i686.rpm: Already downloaded
[SKIPPED] perl-libs-5.22.2-355.fc23.i686.rpm: Already downloaded
[SKIPPED] perl-5.22.2-355.fc23.i686.rpm: Already downloaded
先前dnf安装软件出错的时候, 下载下来的包packages 并不会被删除, 而是保持在dnf的 cache(缓存中), 所以, dnf clean cache(清除缓存, 就是 删除dnf先前下载来的 安装包)
所以再次安装的时候, 这些已经下载的包就会被 skipped. 因为已经被下载: already downloaded.
但是要注意, 一旦 进行了其他dnf的操作, 而且成功了的话, 原来的缓存(的packages) 将被 删除, 或者说被覆盖, 从而换成了新的缓存, 而要安装之前的包的话, 又得重新下载.
2:7.4.1868-1.fc23
Running transaction
Upgrading : vim-minimal-2:7.4.1868-1.fc23.i686 1/2
Cleanup : vim-minimal-2:7.4.827-1.fc23.i686 2/2
Verifying : vim-minimal-2:7.4.1868-1.fc23.i686
/etc/vimrc其中的bs 是: backspace "退格删除键"的缩写: https://blog.csdn.net/u013595419/article/details/50443530
参考: bashrc和 profile的区别 ?
https://blog.csdn.net/linuxnews/article/details/52579186
目录的硬链接是 包含的子目录数+2, 这个2是指(.和..) 因为 .点号是指这个目录本身, 而.. 是指它包含的子目录 的父目录将指向它, 所以即使目录为空, 他的硬链接数也是2, 但是包含的普通文件 数目不会 加在 这个 硬链接数目上.
- 创建硬链接的目的, 是 为了 给 重要文件备份, 防止重要文件丢失.
- 一般系统的配置 放在 /etc下, 而用户级 的配置 放在 ~ 目录下, 而且 以点文件命名, 比如 .vim, .virc, .vimrc, .bashrc, .bash_profile等
#### vim第一配置和第二配置好像要放在一起才能生效? 如果将vimrc的常规配置 和 第二配置的 vundle配置 分开写, 好像 vundle配置的插件就不能使用了?
`[lee@localhost .vim]$ mv ~/.vim/vimrc ~/.vim/vimrc-这里的配置好像要跟家目录中的.vimrc合并才有效`
=================
什么是 s类型的文件? 要注意和 setuid特权相区别, s文件类型的s符号是在 第一个符号, 特权的s是在 r, w的后面,是在 原来的x位置上.
ll /var/lib/mysql/mysql.sock 看到的属性是:
srwxrwxrwx 1 mysql mysql 0 11-21 14:39 /var/lib/mysql/mysql.sock
档案类型标志是s, 这个是资料接口档, 是套接字文件(sockets),这种文件一般用在网络上的资料套接,mysqld守护进程生成了这个文件,其他与mysql相关的程序想使用mysql服务器,估计就是通过这个文件了。 这种特殊文件即使是最高权限的root用户,也是不能查看不能编辑的,有点像档案标志是p的管道文件。
lpk.dll是什么文件?
本身是在 c:\windows\system32\下的dll文件, 很多应用程序都需要应用它, 所以是一种常见的病毒文件, 主要是感染 包含有 exe可执行文件的目录, 在这个目录下生成这个目录的快捷方式
- 在windows下的病毒, 通常不能在linux下运行, 因为这些病毒需要 windows下的函数/头文件/接口/动态库等等运行环境, 而linux下是没有这些接口interface和动态库的,所以是不能运行的,不能对linux造成损害.相反, 在linux下可以查看/删除这些win下的病毒.
三种时间atime, mtime, ctime如何区别?
查看 ls --help的帮助文档, 可以很清楚 : ls 默认显示的时间 是 modifying time 修改时间.
--time=atime/access/use(或者直接使用 -u参数)表示 显示 文件的 访问时间.
--time=ctime/status(或直接使用-c)表示的是 显示文件的 改变时间(主要是状态/属性的改变) : 比如用 chmod, chown等命令 就会 改变 ctime.
-time=atime是指最后 "访问"的时间, 是指 确实 读取 了文件内容的. 包括: cat命令, 但是像: vi , head, tail, stat 但是 用 vi 如果没有修改文件, 则atime和ctime 和mtim等都不会变化, 但是 如果用vi修改了文件的内容, 则 atime, ctim, mtime等 都将发生改变.
ls 可以排序, 用 --sort=none, time, size, extension, version (或者用简写), 要注意 ls的排序都是 倒序: 即 largest first, newest first./...
[lee@localhost ~]$ ls --sort=atime
ls: invalid argument ‘atime’ for ‘--sort’
Valid arguments are:
- ‘none’
- ‘time’
- ‘size’
- ‘extension’
- ‘version’
用 stat命令, 可以 非常清楚的 看到 文件的 三个 时间 和 各种 状态!
============================
it was quite a lucrative sideline:
sideline: 兼职, 业余, lucrative: 收益大的, 有钱赚的
sign: [sain] resign: [ri'sain'] 辞职, resignation [rezig'neis2n] 是名词, resignation letter 是 辞职信.
he was under pressure to resign and was about to be sidelined
it now seems only a matter of time before they resign.
bad password : 并不是 错误密码, 他是指 密码的 "质量不高", 但是在命令行 还是 可以设置和接受的.
authentication & authorization的区别?
- authentication是认证的意思, 表示 "某人确实是某人"的意思, 比如登机的 张三的 passport护照, 证明你确实是张三;
又比如: 在 su -c '....' 执行某个命令的时候, 需要root 权限, 就要证明你确实是 root 用户, 输入密码, 那么这个也是 authentication. - authorize是授权, 是指某个用户 具有那些权力, 比如登机时你的机票 就让你 有 登机的 authorize了
修改密码成功后, 会提示: all **authentication tokens ** updated successfully. 认证令牌/认证牌牌.
- 用户的真实权限其实是由 uid来决定的: uid=0就是 root权限; uid=1~499 就是 伪用户(是bin/halt, daemon, apache, mail等用户, 这些是用来 管理启动系统和进程/服务等的伪用户, 伪用户是不能/不需要登陆系统的, 是没有宿主目录的)
systmctl list-units的内容有哪些?
- 映射点 *.mount, 包括 -.mount 这个是 挂载 根目录/, home.mount 是挂载 /home目录的.
- 服务service, 目标target, 设备device等等.
- 这个命令,就相当于 win 的 服务控制台: services.msc
给命令文件增加 set_uid属性?
- setuid是一种unix函数, set_uid是一种属性, 就是 将命令的 "所有者执行位x"权限, 变成 "s"权限.
- 所以 set_uid属性的设置就是 使用
chmod u+s /usr/bin/some_command
当 文件的属性被 设置成 set_uid后, 文件名 就变成 "红底白字" - 三个id: 命令文件的所有者的uid, 启动这个命令的用户的id, 这个叫 真实的用户id : ruid , 这个命令运行时的有效用户id: euid
- 而linux内核 决定某个进程的权限时, 是以这个进程的 有效用户id 来决定的, 所以, 如果具有 set_uid属性的命令以普通用户运行时, 它将具有 这个命令的所有者 具有的权限(就是 以命令的所有者的身份 来运行的)
- 但是要注意, set_uid的权限 只是 影响 创建文件的所有者, 并不影响 被创建文件的 所属组.
如何禁用 linux上的不必要的服务
bluetooth服务?
[lee@localhost ~]$ su -c 'systemctl disable bluetooth.service'
Password:
Removed symlink /etc/systemd/system/bluetooth.target.wants/bluetooth.service.
Removed symlink /etc/systemd/system/dbus-org.bluez.service.
[lee@localhost ~]$
crond: 是linux的 调用计划任务 的daemon, 它通过 crontab 来实现. 系统会自动安装 crond服务, 而且 会 "每隔 1分钟" 就会去检查 是否有任务计划要执行, 这个 真的很伤资源的, 所以必须禁用这个服务!
[root@localhost lee]# systemctl disable crond
Removed symlink /etc/systemd/system/multi-user.target.wants/crond.service.
[root@localhost lee]#
cups服务是 打印服务
[lee@localhost ~]$ systemctl disable cups.service
Removed symlink /etc/systemd/system/printer.target.wants/cups.service.
Removed symlink /etc/systemd/system/sockets.target.wants/cups.socket.
Removed symlink /etc/systemd/system/multi-user.target.wants/cups.path.
[lee@localhost ~]$
atd服务是 定时任务的服务
[root@localhost lee]# systemctl disable atd
Removed symlink /etc/systemd/system/multi-user.target.wants/atd.service.
[root@localhost lee]#
libvirtd.service loaded active running Virtualization daemon 这个是 提供 虚拟化技术的daemon
[root@localhost lee]# systemctl disable libvirtd
Removed symlink /etc/systemd/system/multi-user.target.wants/libvirtd.service.
[root@localhost lee]#
ModemManager.service loaded active running Modem Manager modem调制解调器的daemon
[root@localhost lee]# systemctl disable ModemManager
Removed symlink /etc/systemd/system/dbus-org.freedesktop.ModemManager1.service.
Removed symlink /etc/systemd/system/multi-user.target.wants/ModemManager.service.
[root@localhost lee]#
nfs-config.service loaded active exited Preprocess NFS configuration
[root@localhost lee]# systemctl disable nfs-config.service
[root@localhost lee]#
=========================================
df和du : df: disk free(查看磁盘剩余空间), du(disk usage[ju:sid3]) 是查看文件//目录的占用空间.
df是查看磁盘空间使用情况, 看所有 已挂载/mount的 文件系统 还有多少空间可以使用? df -h主要是用来查看 大文件的; df -i是以inode(index node索引结点)的角度来看的(主要是看 过多的 小文件) . 这两者 都 不能 使用 过多. 都不能 占用百分比过大
du disk usage
: df 可以看到 被删除的文件但是还没有被释放的空间, 所以 有时候df和du的结果有出入
: inode 的总数, 是 在 分割磁盘扇区的时候, 就分配了的大量的 inode. 这些inode就等着今后分配给文件/目录供挂载使用. 使用 同样的磁盘空间, 如果小文件越多, 就需要越多的 inode 来挂载.
top 也是用来 查看进程的, test of process进程查看/进程检查. 相当于 win的进程管理器
同时也可以看到 linux的命令 都是 简单的单词, 或者单词缩写, 可以 跟 win下的相关对应命令相比较.
注意表单中 使用 col-sm-...跟纯粹 使用栅格系统中使用 col-sm-xxx的区别?
栅格系统中使用 col-sm 要 用 div.container > div.row > 才能 使用 col--
而 表单中 使用 col-sm-xx 则不需要这样 完整的 结构了:
可以认为:
- form 就是 .container
- 而 其中的 .control-group 就相当于 .row
- 所以 form表单中使用 的时候, 就不再需要.container 和 .row 了. 按照表单中的 结构 写就好了
==================================
对一些有强大生态系统的现代语言. 比如php, python等, 里面的很多软件都不再是孤立的了, 而是做成库, 做成dll/so/链接库等, 进行相互借鉴/引用, 而不重复开发相同单元.
为了便于管理这些单元 , 解决各个软件/单元之间的相互包含/引用/依赖关系, 都开发了各种"包管理工具", 比如: linux的yum/dnf, php的包管理工具composer, python的包管理工具: pip 只需要在项目中, 写上你需要的包/库名称, 其他 依赖单元的 查找, 下载, 安装/卸载等工作, 就全部由 包管理工具去负责.
- 安装好包管理工具后, 再安装其他相关的包/库, 就直接用包管理工具来 安装了, 比如;
pip install foo-pakg, pip search foo-pkg , composer install bar-pkg
等等.
重新使用linux的一些事情的更多相关文章
- bootparam - 介绍Linux核心的启动参数
描叙 Linux 核心在启动的时候可以接受指定的"命令行参数"或"启动参数".在通常情况下,由于核心有可能无法识别某些硬件,或可能将某些硬件识别为不正确的配置, ...
- linux基础之磁盘管理与文件系统
上面一篇文章(https://www.cnblogs.com/ckh2014/p/7224851.html)介绍了硬盘的基本结构,那么一块磁盘如何应用取存储数据呢? 它的步骤是这样的: 识别硬盘 -- ...
- (转)完全用GNU/Linux工作 by 王珢
完全用GNU/Linux工作 王珢 (看完这篇博文,非常喜欢王珢的这篇博客,也我坚定了学gnu/linux的决心,并努力去按照国外的计算机思维模式去学习编程提高自己.看完这篇文章令我热血沸腾 ...
- 强势回归,Linux blk用实力证明自己并不弱!
Flash的出现把存储的世界搅翻了天,仿佛一夜之间发现了新大陆,所有旧世界的东西都变得笨拙.NVMe驱动义无反顾地抛弃了Linux blk,开发自己的队列管理. 当第一次看到NVMe重新使用Linux ...
- 清华申请退学博士作品:完全用Linux工作
http://www.cnblogs.com/cbscan/articles/3252872.html 下文地址 http://blog.oldboyedu.com/use-linux/ 按: 尽管我 ...
- 为什么要学习和掌握Linux?
总结:从“为什么要学习和掌握Linux”开始,James阐述原因和理由:规划自己的目标: 为什么要学习和掌握Linux?——在读书时,如果看到别人使用命令行操作计算机实现自己想要的功能,便会冒出一个念 ...
- Linux驱动学习步骤(转载)
1. 学会写简单的makefile 2. 编一应用程序,可以用makefile跑起来 3. 学会写驱动的makefile 4. 写一简单char驱动,makefile编译通过,可以insmod, ls ...
- Linux初学者指南
1.为啥我们要学习Linux? 我们干嘛要学习Linux? Linux能给我们带来什么价值呢? Linux给我的感觉就是稳定,免费,性能好. 稳定,体现在哪里?我们使用PC机,安装的操作系统一般是wi ...
- Linux 新手非常有用的命令
http://www.cnblogs.com/felix-/p/4341773.html Linux 新手非常有用的命令 你打算从Windows换到Linux上来,还是你刚好换到Linux上来?哎哟! ...
随机推荐
- 爬虫-----selenium模块自动爬取网页资源
selenium介绍与使用 1 selenium介绍 什么是selenium?selenium是Python的一个第三方库,对外提供的接口可以操作浏览器,然后让浏览器完成自动化的操作. sel ...
- 自学传说中的php接口编写
一个前端学php,感觉不可思议,但实际上面试中都会问你后台会不会.这时候php就派上用场了. 下面的是我自己百度研究的一个些心得分享一下: html代码 <!DOCTYPE html> & ...
- Eclipse集成Hadoop插件
一.Eclipse集成Hadoop插件 1.在这之前我们需要配置真机上的hadoop环境变量 注:在解压tar包的时候普通解压会出现缺文件的现象,所以在这里我们需要用管理员的方式启动我们的解压软件(我 ...
- 20190423 PowerDesigner 数据库模型快速建立
后面我在做一个视频的讲解记录吧! 那种讲解记录,只是为了演示按钮功能在什么地方,这个功能的作用是什么 这个软件相对比较简单的使用步骤,主要有三步 第一. 选择好你针对的数据库版本和类型创建数据库名称基 ...
- python基础之 序列化,os,sys,random,hashlib
1.序列化 定义: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然 ...
- 微信小程序 加载图片时,先拉长,再恢复正常
今天在写小程序,发现小程序的图片image如过mode设置为widthFix的话, 加载图片会被先拉伸,后恢复正常 我的处理方法是,给他一个初始的height值,或者就直接 height:auto
- Maven -- 在进行war打包时排除不需要的文件
https://blog.csdn.net/zsg88/article/details/78128603 <excludes> <!-- 排除文件,不包含子目录,对WEB-INF目录 ...
- Linux下Netty实现高性能UDP服务(SO_REUSEPORT)
参考: https://www.jianshu.com/p/61df929aa98b SO_REUSEPORT学习笔记:http://www.blogjava.net/yongboy/archive/ ...
- Vmworkstation启用错误
无法打开内核设备"\\.\Global\vmx86":系统找不到指定的文件. 是否在安装 VMwareWorksation 后重新引到 ? 问题解决 无法连接 MKS:套接字连 ...
- OpenGL——外部读档+异常报错
从外部读取shader文件: 先添加Shader类: 再创建vertexSource.txt和fragmentSource.txt两个文件: 如图填入shader: 在shader.h宣告: 在sha ...