首页 文章 精选 留言 我的

精选列表

搜索[linux内核],共10000篇文章
优秀的个人博客,低调大师

Linux重要命令初步认识

命令汇总 目录管理:ls、cd、pwd、mkdir、rmdir、tree 上述命令用法 备注:如果想要查找详细信息,可以参考http://man.linuxde.net/ ls - list directory contents.ls [OPTION]... [FILE]... -l:长格式 文件类型: -:普通文件 (f) d: 目录文件 b: 块设备文件 (block) c: 字符设备文件 (character) l: 符号链接文件(symbolic link file) p: 命令管道文件(pipe) s: 套接字文件(socket) 文件权限:9位,每3位一组,每一组:rwx(读,写,执行), r-- 文件硬链接的次数 文件的属主(owner) 文件的属组(group) 文件大小(size),单位是字节 时间戳(timestamp):最近一次被修改的时间 访问:access 修改:modify,文件内容发生了改变 改变:change,metadata,元数据 -a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出); -A:显示除影藏文件“.”和“..”以外的所有文件列表; -C:多列显示输出结果。这是默认选项; -l:与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列; -F:在每个输出项后追加文件的类型标识符,具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符; -b:将文件中的不可输出的字符以反斜线“”加字符编码的方式输出; -c:与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的ctime字段。与“-l”选项连用时,则排序的一句是文件的状态改变时间; -d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表; -f:此参数的效果和同时指定“aU”参数相同,并关闭“lst”参数的效果; -i:显示文件索引节点号(inode)。一个索引节点代表一个文件; --file-type:与“-F”选项的功能相同,但是不显示“*”; -k:以KB(千字节)为单位显示文件大小; -l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等; -m:用“,”号区隔每个文件和目录的名称; -n:以用户识别码和群组识别码替代其名称; -r:以文件名反序排列并输出目录内容列表; -s:显示文件和目录的大小,以区块为单位; -t:用文件和目录的更改时间排序; -L:如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目录; -R:递归处理,将指定目录下的所有文件及子目录一并处理; --full-time:列出完整的日期与时间; --color[=WHEN]:使用不同的颜色高亮显示不同类型的。 cd -Change the shell working directory.cd [-L|-P] [dir] cd命令用来切换工作目录至dirname。 其中dirName表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的home directory(也就是刚login时所在的目录)。另外,~也表示为home directory的意思,.则是表示目前所在的目录,..则表示目前目录位置的上一层目录。 -p 如果要切换到的目标目录是一个符号连接,直接切换到符号连接指向的目标目录 -L 如果要切换的目标目录是一个符号的连接,直接切换到字符连接名代表的目录,而非符号连接所指向的目标目录。 - 当仅实用"-"一个选项时,当前工作目录将被切换到环境变量"OLDPWD"所表示的目录。 pwd - print name of current/working directory.pwd [OPTION]... pwd命令以绝对路径的方式显示用户当前工作目录。命令将当前目录的全路径名称(从根目录)写入标准输出。全部目录使用/分隔。第一个/表示根目录,最后一个目录是当前目录。执行pwd命令可立刻得知您目前所在的工作目录的绝对路径名称。 --help:显示帮助信息; --version:显示版本信息。 mkdir - make directories.mkdir [OPTION]... DIRECTORY... mkdir命令用来创建目录。该命令创建由dirname命名的目录。如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录;如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录。在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。 -Z:设置安全上下文,当使用SELinux时有效; -m<目标属性>或--mode<目标属性>建立目录的同时设置目录的权限; -p或--parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录; --version 显示版本信息。 rmdir - remove empty directories rmdir命令用来删除空目录。当目录不再被使用时,或者磁盘空间已到达使用限定值,就需要删除失去使用价值的目录。利用rmdir命令可以从一个目录中删除一个或多个空的子目录。该命令从一个目录中删除一个或多个子目录,其中dirname佬表示目录名。如果dirname中没有指定路径,则删除当前目录下由dirname指定的目录;如dirname中包含路径,则删除指定位置的目录。删除目录时,必须具有对其父目录的写权限。 -p或--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除; --ignore-fail-on-non-empty:此选项使rmdir命令忽略由于删除非空目录时导致的错误信息; -v或-verboes:显示命令的详细执行过程; --help:显示命令的帮助信息; --version:显示命令的版本信息。 tree -树状图列出目录的内容。tree(选项)(参数) -a:显示所有文件和目录; -A:使用ASNI绘图字符显示树状图而非以ASCII字符组合; -C:在文件和目录清单加上色彩,便于区分各种类型; -d:先是目录名称而非内容; -D:列出文件或目录的更改时间; -f:在每个文件或目录之前,显示完整的相对路径名称; -F:在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","@","|"号; -g:列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码; -i:不以阶梯状列出文件和目录名称; -l:<范本样式> 不显示符号范本样式的文件或目录名称; -l:如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录; -n:不在文件和目录清单加上色彩; -N:直接列出文件和目录名称,包括控制字符; -p:列出权限标示; -P:<范本样式> 只显示符合范本样式的文件和目录名称; -q:用“?”号取代控制字符,列出文件和目录名称; -s:列出文件和目录大小; -t:用文件和目录的更改时间排序; -u:列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码; -x:将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该目录予以排除在寻找范围外。

优秀的个人博客,低调大师

linux上的交换分区管理

swap,交换分区,内存紧张的时候拿出这部分分区暂时存储内存中的内容(为了给别的程序让出内存) swapon 分区名或文件名,将指定分区或文件作为swap使用,也可以-a开启全部swap swapoff 分区名或文件名,同上,有开就有关。 swapon -s 查看目前使用的swap mysql服务器通常选择关闭swap,原因是mysql本身读写已经很费io了,交换分区再频繁的把mem里的东西挪来挪去的io就炸了... swap通常配置如下(看你实际业务需求调整): 4G以内的物理内存,SWAP 设置为内存的2倍。 4-8G的物理内存,SWAP 等于内存大小。 8-64G 的物理内存,SWAP 设置为8G。 64-256G物理内存,SWAP 设置为16G。 给swap扩容: 文件的方式:mkdir -p /data/.swap,单独建一个目录,然后cd进去 dd if=/dev/zero of=swapfile bs=1024 count=1000000,准备好交换分区文件,每个块1kb,合计大约1G的大小。 mkswap -f swapfile,将文件创建为交换分区文件,不加-f会提示你“warning: don't erase bootbits sectors on whole disk” 分区的方式:mkswap 分区名,类似mkfs那样。 怎么开启就按最上边讲的swapon,swapoff用法 查看当前交换分区大小:free命令,可以看到我这个只给了500兆mem的小可怜有了快2g的swap了(装机时默认的1G) 当然你想下次开启不用再重复操作一遍,就做永久修改 vim /etc/fstab 路径 swap swap defaults 0 0(mkswap时会生成一个uuid,当然写路径更直观)

优秀的个人博客,低调大师

Linux中使用yum安装jdk

1.查看yum中管理的java的版本 输入以下命令,以查看可用的JDK软件包列表: yum search java | grep -i --color JDK 2.安装jdk 以java-1.8.0-openjdk-devel.x86_64为例: yum install java-1.8.0-openjdk-devel.x86_64 3.配置全局使用(可选) 让系统上的所有用户使用java(openjdk) ,则要进行下面的操作: vi /etc/profile 将下面的三行粘贴到 /etc/profile 中: export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-2.b15.el7_2.x86_64 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin 保存关闭后,执行,让设置立即生效: source /etc/profile 4.校验 输入以下命令,来确认这三个变量是否设成了我们想要的: echo $JAVA_HOME echo $CLASSPATH echo $PATH

优秀的个人博客,低调大师

linux中文件输出管理

1.输入输出的定义 1.输入 就是我们的键盘,鼠标和我们用这些硬件在系统中录入的字符 2.输入 就是系统接收到我们想要实现的功能字符后,经过进程的处理产生字符 输入会有两种出现 编号1为正确输出 编号2为错误输出 默认这两种输出都会被系统定向到字符设备中 2.如何管理输出 1.非交互式多行录入 vim C_pass.sh passwd sh C_pass.sh 是不能自动运行的 passwd <<END lee lee END sh C_pass.sh 可以自动运行避免交互 可以看到密码直接修改成功 2.如何管理输出 1.重定向 > 重定向正确输出 2> 重定向错误输出 &> 重定向所有输出 2>&1 把错误输出的编号由2转换为1 下面我用student用户做以下实验 find /etc/ -name passwd > file.out shell里面出现错误输出,正确输出被放到file.outlimian find /etc/ -name passwd 2> file.out 通过cat可以看到:文件的错误输出被放入file.out,shell上显示正确输出 find /etc/ -name passwd &> file.all 通过cat可以看到:文件的所有输出被放入file.out,shell上不显示输出 "注意:从定向是会覆盖原文件内容的!!!" vim westos hello westos find /etc/ -name passwd > westos cat westos 原文件内容不见了 2.追加 保持原文件内容不变的情况下把输出追加到文件之后 >> 追加正确输出 2>> 追加错误输出 &>> 追加所有输出 find /etc/ -name passwd >> westos find /etc -name passwd 2>> westos find /etc -name passwd &>> westo 在这里我们以追加错误输出为例: 在错误的输出定义到westos中后,依然保留了正确输出 3.管道 把输出变成下一个程序的输入 管道是用来组合多条命令的使用的 ls /bin | wc -l ls /bin表示列出 / bin ,通过管道让第一条指令的输出变成第二条指令的输入,最终统计出/bin的行数 "注意:通过管道后输出会变成输入,那么是无法保存在文件中的" tee 复制输出到指定位置 ls /bin | tee file | wc -l cat file file中已经保存了输出

优秀的个人博客,低调大师

linux一些基本指令

pwd -p:显示出正确的路径 而不是连接档 mkdir: 建立目录的话 如果你想建立mkdir /home/test1/test2 可以直接加参数mkdir -p jiu 不需要一层一层创建了 rmdir:原本的话目录是需要一层一层来删除的,被删除的目录中不能有其他的目录或者文档 如果你想要直接删除的可以用rm -r test 这样 另外 如果你想删除上层的目录的话 加上-p ls:环境变量的作用 本来ls命令在/bin/ls下的 但是为什么我在任何地方都能执行ls呢,因为环境变量! echo $PATH 显示path环境变量 问:如果你mv /bin/ls /root 移动到了root下 即时你现在在root下面,那么你也不能直接执行ls命令,因为这时候你想执行的话: 1 直接用绝对路径指向 /root/ls 2 ./ls 这样 如果想在任何目录都可以执行/root下的ls 吧root假如PATH PATH=“$PATH”:/root 问:如果我有2个ls 在不同的目录中 比如/usr/local/bin/ls 和 /bin/ls 哪个ls会被执行。 答:PATH中哪个目录先被查询 哪个先执行 档案与目录管理 ls 带的 -a :全部的档案,连同隐藏的 -A: -d:仅仅列出目录本身 -l:长串出,包括属性和权限 –full-time 以完整时间显示 当然可以组合用 ls -al ls -alF 很常用的 ls -l 等价于 ll cp指令: -a:相当于-pdr的意思 -i:如果目标文件已经存在的话 在覆盖时候回先问的。 -p:连同档案的属性一起复制过去,而非使用默认的属性(通常用于备份) -r:递归持续复制,用于目录的复制行文 -d:如果来源文件为连接文件的属性(link fle)那么复制文件属性而非档案本身 rm -r 很危险 rm -f rm -i 删除之前会有互动 还可以用通配符帮忙: rm -i bas* 删除以bas开头的档 如果删除东西的时候一直在问你要不要删除 你狠烦的话 可以 \rm -r /tmp/etc 在rm前面加上\ mv移动 -f:强制移动 如果目标存在 直接覆盖 -i:询问下 -u:如果目标存在 且source比较新 才更新 basename 取得最后的文档名 dirname 取得目录名 dirname+basename=完整的 显示文档的内容: cat more less tac:倒过来 cat:从第一行显示 more 一页一页显示 tail:只看尾巴 head:只看头 less和more差不多 cat的参数: cat -n 就会在显示的时候加上行号 使用more的时候因为是一页一页的显示 那么 显示之后如果你 按空格键 那么翻下一页 enter:下一行 /搜索 :f 显示出文件名 和目前的行数 q:离开 head 默认显示10行 如果显示20行的话 那么 head -n 20 xxxx tail 也是一样 touch 修改日期的 -d:接受欲修订的日期而不用目前的日期 -t: +YYMMDDhhmm 0709150202 SUID的概念: S在档案拥有者时候称作SUID 当s在群组的时候成为SGID SBIT 只针对目录有效 对于档案没有效果 whereis xxxx 文件 -b:只找binary格式的文档 -m:在说明文件manual路径下的文档 -s:只找source来源文档 -u:搜索不在上面的文档 locate 【-i/r】xxxx -i:忽略大小写 -r:接正规表达式 find 很重要 find 【path】【option】【action】 mtime:修改时间 atime:access time 查看时间 status time:ctime find / -mtime 0 :从现在开始到24小时前 更动过的文件 0换成3的话就是3天前 find /etc -newer /etc/passwd 找到etc下比etc/passwd新的 +4代表大于等于5天前 find / -mtime +4 -4小于等于5 4 4-5那一天 find还有很多用法 找文档啊 找SGID SUID属性的数据啊 find /etc -size +1500k -0 -size 0

优秀的个人博客,低调大师

Debian Linux下LNMP环境配置

昨天刚给公司服务器装了LNMP服务器环境,在这里简单记录一下过程备忘。这里我在安装的时候是用的Dotdeb源,仅供参考。 1. 导入Dotdeb源,据说Dotdeb源里的软件版本比较新。 在向源中导入Dotdeb前,我们需要先获取GnuPG key并导入: wget http://www.dotdeb.org/dotdeb.gpg cat dotdeb.gpg | apt-key add - 提示OK,表明导入成功。然后我们开始导入Dotdeb 源,源列表的位置在“/etc/apt/sources.list”,我们通过vi工具或nano工具打开sources.list,添加如下两行: deb http://packages.dotdeb.org wheezy all deb-src http://packages.dotdeb.org wheezy all 完成之后更新源: apt-get update 接下来就可以开始安装nginx、mysql、php了。 2.MySQL 使用apt工具安装: apt-get install -y mysql-server mysql-client 安装过程中会询问root密码,输入你想设定的密码就可以。安装完成后执行如下配置命令: mysql_secure_installation 按提示往下走就行,过程中会询问是否更改root密码、是否移除匿名用户、是否禁止root远程登录等,自己按需配置即可。 注:我在使用mysql的过程中发现远程客户端无法连接到数据库,后来发现问题是“/etc/mysql/my.cnf”文件中“bind-address = 127.0.0.1”这句话在作祟。把地址绑定到了127.0.0.1上,因此远程无法访问到数据库,这里我们把它注释掉就可以了,或者你的服务器是指定ip的话就配置成你服务器的ip地址就可以了。 当然也有可能是你的mysql没有开启远程访问账户的权限,如果是这个原因,只需在mysql的user表里添加一条记录即可: grant all PRIVILEGES on thedb.* to user1@'%'identified by 'complex-password'; FLUSH PRIVILEGES; 然后重启一下mysql的服务: service mysql restart 3.安装PHP 使用apt工具安装: apt-get install php5-fpm php5-gd php5-mysql php5-memcache php5-curl 如上命令安装了php5-memcache的扩展,因此继续安装Memcached: apt-get install memcached 安装完成之后,可以使用“php5-fpm -v”查看PHP的版本。 4.安装Nginx 我在安装的时候直接安装了Nginx的全部扩展功能(nginx-full),后边可能会有功能性的增强,所以在安装的时候直接全部安装了: apt-get install -y nginx-full 然后启动Nginx: service nginx start 放问地址http://ip,如果看到如下所示,就说明你的Nginx安装正常。 接下来配置Nginx,Nginx的配置文件在“/etc/nginx/sites-available/default” …… location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # # # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } …… 保存之后,重启Nginx: service nginx restart 然后我们创建一个php的页面测试一下: nano /usr/share/nginx/html/phpinfo.php 输入: <?php phpinfo(); ?> 保存之后直接访问:http://ip/phpinfo.php,如果出现phpinfo页面,那么我们的工作就完成了! 原文发布时间:2016-11-18 本文来自云栖社区合作伙伴“ Debian社区”,了解相关信息可以关注“ Debian社区”。

优秀的个人博客,低调大师

linux下安装python3.6

一、安装python3.6 1. 安装依赖环境 #yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel 2.下载Python3 https://www.python.org/downloads/ 1 # wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz 3.安装python3 我个人习惯安装在/usr/local/python3(具体安装位置看个人喜好) 创建目录: 1 # mkdir -p /usr/local/python3 解压下载好的Python-3.x.x.tgz包(具体包名因你下载的Python具体版本不不同⽽而不不同,如:我下载的是Python3.6.1.那我这里就是Python-3.6.1.tgz) 1 # tar -zxvf Python-3.6.1.tgz 4.进入解压后的目录,编译安装。 1 2 # cd Python-3.6.1 # ./configure --prefix=/usr/local/python3 make 1 # make make install 1 make install 或者 make && make install 5.建立python3的软链 1 # ln -s /usr/local/python3/bin/python3 /usr/bin/python3 6.并将/usr/local/python3/bin加入PATH 1 2 3 4 5 6 7 8 9 # vim ~/.bash_profile # .bash_profile # Get the aliases and functions if [ - f ~ / .bashrc ]; then . ~ / .bashrc fi # User specific environment and startup programs PATH = $PATH:$HOME / bin : / usr / local / python3 / bin export PATH 按ESC,输入:wq回车退出。 修改完记得执行行下面的命令,让上一步的修改生效: 1 # source ~/.bash_profile 检查Python3及pip3是否正常可用: 1 2 3 4 # python3 -V Python 3.6 . 1 # pip3 -V pip 9.0 . 1 from / usr / local / python3 / lib / python3. 6 / site - packages (python 3.6 )

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册