每个程序员都应该知道的Linux基础知识!全文4900字,没有耐心的不建议看 ——( Linux文件系统 + 系统管理类命令 + bash基础特性)
文章目录
- - Linux的文件系统
- - LSB
- - FHS
- - 根文件系统
- - 对根文件系统下目录的概述:
- /boot
- /bin
- /sbin
- /lib
- /lib64
- /etc
- /home
- /root
- /media
- /mnt
- /dev
- /opt
- /srv
- /tmp
- /usr
- /var
- /proc
- /sys
- /lost+found
- /selinux
- - Linux上的应用程序的组成部分
- 二进制程序
- 库文件
- 配置文件
- 帮助文件
- - Linux下的文件类型
- - Linux下基本的系统管理类命令
- - 关机或重启命令
- - 用户信息查看命令
- Others
- - bash基础特性及基础命令
- - bash的基础特性
- 命令历史
- 命令补全
- - 练习
- - 扩展
- - 写在最后的话:
这里是一段防爬虫文本,请读者忽略。
本文原创首发于CSDN,作者IDYS
博客首页:https://blog.csdn.net/weixin_41633902/
本文链接:https://blog.csdn.net/weixin_41633902/article/details/105678252
- Linux的文件系统
首先我们来了解两个Linux的标准规范
- LSB
LSB: Linux Standard Base (Linux标准规范)是一个在Linux基金会结构下对Linux发行版的联合项目,其目标使Linux操作系统符合软件系统架构,或文件系统架构标准的规范及标准 —— 简单点说就是定义Linux文件系统架构规范的一个标准
- FHS
FHS:Filessystem Heirache Standard(文件系统层次结构标准)定义Linux操作系统中的主要目录及目录内容。
- 根文件系统
下面内容主要讲解linux根文件系统(linux root filesystem)下的目录结构
- linux根文件系统下的主要目录有
/etc,/usr,/var,/root,/home,/dev
# 查看linux根目录下内容的命令
ls /
- 查看结果如下:
[root@dayuanshuai ~]# ls /
bin dev home lib lost+found mnt proc sbin srv tmp usr
boot etc img lib64 media opt root selinux sys usb var
- 对根文件系统下目录的概述:
/boot
引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader,grub)都存放于此目录
/bin
供所有用户使用的基本命令:不能关联至独立分区,OS启动即会用到的程序
/sbin
管理类的基本命令:不能关联至独立分区,OS启动即会用到的程序
/lib
基本共享库文件,以及内核模块文件(lib/modules)
/lib64
专用于x86_64系统上的辅助共享库文件存放位置
/etc
配置文件目录(存放的配置文件都为纯文本文件)
/etc/opt
- 存放 /opt 目录下的配置文件
/etc/X11
- 存放 X Windows 系统的配置文件
/etc/passwd
- 存放系统用户信息文件
/etc/passwd
- 存放磁盘挂载信息文件
/home
普通用户的家目录,当使用useradd创建用户时,默认会在/home下创建一个与用户同名的文件夹,同时会复制 /etc/skel/ 下的文件到该目录下
在CentOS中,当创建新用户时,默认会将/etc/skel下的隐藏文件全部复制到该用户的家目录下。所以在你创建用户时,你会在该用户的家目录下发现一些隐藏文件。
# 查看隐藏文件的命令
ls -a
/root
管理员的家目录
- 普通用户实现root权限的方法
对/etc/sudoers文件,进行配置。实现对用户的授权
执行sudo命令,然后输入该用户自己的密码
/media
挂载便捷式移动设备的目录
当我们需要挂载一些移动设备时
比如需要挂载光驱设备时,我们可以创建/media/cdrom文件夹,然后将光驱设备挂载到该文件夹上。同样的,挂载usb设备时,创建 /media/usb文件夹,然后挂载
# 挂载光驱设备,请注意,使用该命令之前,请确定光驱已经插入mkdir /media/cdrommount /dev/cdrom /media/cdrom
/mnt
临时文件系统的挂载点
/dev
设备文件及特殊文件存放目录
b:block device 块设备(随机访问设备)
c:character device 字符设备(线性访问设备)
/opt
第三方应用程序的安装位置
/srv
系统上允许的服务用到的数据
/tmp
临时文件存放位置
/usr
usr并不是代表user的意思,它的全名是Unix System Resource 即Unix系统资源,它是系统帮助文档以及源码包安装的位置。universal shared,read-only data 全局共享只读数据:(一般来说安装完系统后占用磁盘空间最大目录)
/usr/bin
/usr/sbin
/usr/lib
/usr/include
- C程序的头文件(header files)
/usr/share:结构化的独立的数据
/usr/local:第三方应用程序的安装位置,在此目录下又有以下这些目录
- bin,sbin,lib,lib64,etc,share
/var
存放可变数据文件(variable data files),此目录下的子目录有
cache:应用程序缓存数据目录
lib:应用程序状态信息
local:专用于为/usr/local 下的应用程序存储可变数据
lock:锁文件
log:日志目录及文件
opt:专用于为/opt下的应用程序存储可变数据
run:运行中的进程相关的数据,通常用于存储进程PID文件
spool:应用程序数据池
tmp:保存系统两次重启之间产生的临时数据
mail:用户邮箱文件
/proc
用于输出内核与进程信息相关的虚拟文件系统
/sys
用于输出当前系统上硬件设备相关信息的虚拟文件系统
/lost+found
Linux上ext文件系统格式化后默认产生的路径
/selinux
security enhanced Linux,selinux相关的安全策略等信息的存储位置
- Linux上的应用程序的组成部分
二进制程序
/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin
库文件
/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64
配置文件
/etc,/etc/DIRECTORY,/usr/local/etc
帮助文件
/usr/share/man,/usr/share/doc,/usr/local/share/man,/usr/local/share/doc
- Linux下的文件类型
- (f):普通文件
d:目录文件
b:块设备文件
c:字符设备文件
l:符号链接文件(软连接)
p:管道文件:fist in,fist out
s:套接字文件:socket
- Linux下基本的系统管理类命令
- 关机或重启命令
halt,poweroff 关机
reboot 重启
- -f:强制,不调用shutdown
- -p:切断电源
shutdown:
- shutdown [OPTION] … TIME [MESSAGE]
- -r:reboot(重启)
- -h:halt(关机)
- -c:cancel(取消)
- TIME:
- now 立刻
- +m:相对时间表示法,从命令提交开始多久之后:例如 +3
- hh:mm:绝对时间表示,指明具体时间
#linux下shutdown命令演示
shutdown -r now # 立即重启
shutdown -h now # 立即关机
shutdown -h +5 "shutdown in 5 minutes" # 五分钟后关机,并向所有的登录用户发送"shutdown in 5 minutes"信息
- 用户信息查看命令
- whoami:显示当前登录有效用户
[root@dayuanshuai local]# whoami
root
- who:系统当前所有的登录会话
[root@dayuanshuai local]# who
root tty1 2020-03-27 22:28
root pts/2 2020-03-31 10:03 (192.168.200.1)
- w:系统当前所有的登录会话及所做的操作
[root@dayuanshuai local]# w12:49:59 up 2 days, 23:51, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - Fri22 22:51m 0.07s 0.07s -bash
root pts/2 192.168.200.1 10:03 0.00s 0.24s 0.10s w
Others
- Macos(unix)资源回收能力好,节省电源,几年不关机都没事。然而Microsoft的系统资源回收能力弱,用几天就必须重启。
- bash基础特性及基础命令
- bash的基础特性
命令历史
history
- 环境变量:
- HISTSIZE:命令历史记录
- HISTFILE:~/.bash_history
- HISTFILESIZE:命令历史文件记录历史的条数
- 环境变量:
history -d OFFSET 删除某天历史命令,OFFSET代表偏移位
[dayuanshuai@dayuanshuai ~]$ history
..... # 前面的命令历史就不一一例举了641 ls -al /etc642 ls -al /etc | wc -l643 find /etc/ | grep "^/etc/[^/]*$" | wc -l644 find /etc/ | grep "^/etc/[^/]*$"645 ls646 exit647 history
[dayuanshuai@dayuanshuai ~]$ history -d 645 #删除第645条命令历史,也就是ls命令
[dayuanshuai@dayuanshuai ~]$ history
....641 ls -al /etc642 ls -al /etc | wc -l643 find /etc/ | grep "^/etc/[^/]*$" | wc -l644 find /etc/ | grep "^/etc/[^/]*$"645 exit646 history 647 history -d 645648 history# 可以看到ls命令历史被删除了
- history -c 清空缓存中的历史命令
[xiao@dayuanshuai ~]$ history
.... #前面的历史省略19 rm a20 ls21 exit22 ls23 pwd24 exit25 ls26 whoami27 history
[xiao@dayuanshuai ~]$ history -c
[xiao@dayuanshuai ~]$ history #使用history -c 命令后再来查看,发现缓存中的历史命令均已经删除1 history
- history #:显示历史中最近的#条命令
[xiao@dayuanshuai ~]$ history1 history 2 whoami3 ps4 top5 wc -l /etc/passwd6 history
[xiao@dayuanshuai ~]$ history 3 #查看最近三条命令5 wc -l /etc/passwd6 history7 history 3
- -a:手动追加 —— 将缓存区中的历史命令手动追加到
~/.bash_history
中
[xiao@dayuanshuai ~]$ history1 history 2 whoami3 ps4 top5 wc -l /etc/passwd6 history7 history 38 ls -al9 history
[xiao@dayuanshuai ~]$ history -a
[xiao@dayuanshuai ~]$ cat ~/.bash_history #这个时候查看你就会发现命令已经被追加至~/.bash_history
- 调用历史中的命令:
!#重复执行第#条命令
!!:执行上一条命令
!string:最近一条以string开头的命令
[xiao@dayuanshuai ~]$ history
.... # 前面命令省略52 whoami53 exit54 cat ~/.bash_history 55 history -a56 cat ~/.bash_history 57 ps58 ls59 history60 history -a61 cat ~/.bash_history 62 history 63 history -a64 history
[xiao@dayuanshuai ~]$ !58 #可以看到已经执行第58条命令 ls
ls
- 调用上一条命令的最后一个参数
- !$
- ESC,.
- Alt + .
[xiao@dayuanshuai ~]$ touch call.txt
[xiao@dayuanshuai ~]$ echo "call " > !$ #通过 !# 调用 上一条命令的最后一个参数(call.txt)
echo "call " > call.txt
[xiao@dayuanshuai ~]$ cat call.txt #可以看到call已经被添加进去了
call
先按 ESC 然后再按 . 就会出现上一条命令的最后一个参数,比如:
先执行 touch ABC.TXT
后在键盘上进入 echo “call” > ESC .
就会显示 echo “call” > ABC.TXT的结果
控制命令历史的记录方式
设置环境变量:HISTCONTROL 来选择命令历史的记录方式,其参数分别有下列三种
- ignoredups:忽略重复的命令:连续且相同方为“重复”
- ignorespace:忽略所有以空白开头的命令
- ignoreboth:ignoredups,ignorespace 也就是前面两种方式的合
[xiao@dayuanshuai ~]$ echo $HISTCONTROL
ignoredups
[xiao@dayuanshuai ~]$ history90 whoami91 whoami 92 history93 whoami94 history
[xiao@dayuanshuai ~]$ ls
call.txt history_test.txt
[xiao@dayuanshuai ~]$ ls
call.txt history_test.txt
[xiao@dayuanshuai ~]$ ls
call.txt history_test.txt
[xiao@dayuanshuai ~]$ ls
call.txt history_test.txt
[xiao@dayuanshuai ~]$ history #可以看到连续输入了四次ls,但是缓存中的命令历史只记录一次ls命令91 whoami 92 history93 whoami94 history95 ls96 history
[xiao@dayuanshuai ~]$ HISTCONTROL=ignorespace
[xiao@dayuanshuai ~]$ echo $HISTCONTROL
ignorespace
[xiao@dayuanshuai ~]$ w15:10:31 up 3 days, 2:11, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - Fri22 25:12m 0.07s 0.07s -bash
root pts/0 192.168.200.1 13:07 0.00s 0.13s 0.00s w
[xiao@dayuanshuai ~]$ history #因为w前面加入了空格,所以并没有加入命令历史97 HISTCONTROL=ignorespace98 echo $HISTCONTROL99 ls100 whoami 101 history
修改环境变量的方式:export 变量名=“值”
- 变量赋值:把赋值符号后面的数据存储于变量名指向的内存空间
说明:export 方式修改变量的值只对当前的shell及其子shell起作用。换个终端开启另外一个shell之后就不起作用了。
命令补全
- bash执行命令:
- 内部命令:bash内置的命令有cd、set、umask等,查看一个命令的类型可以通过type查看
[xiao@dayuanshuai ~]$ type cd
cd is a shell builtin
- 外部命令:bash根据PATH环境变量定义的路径,自左向右在每个路径搜寻以给定命令名命名的文件,第一次找到的命令即为要执行的命令
直接补全:Tab,用户给定的字符串只有一条唯一对应的命令,如果以用户给定的字符串为开头的命令不唯一,则再次按Tab键会给出列表
- 路径补全:把用户给出的字符串当作路径开头,并在其指定的上级目录下搜索以指定的字符串开头的文件名
- 如果唯一:则直接补全- 如果不唯一:再次按Tab键,给出列表
[xiao@dayuanshuai ~]$ ls /etc/sys #路径补全的例子 sysconfig/ sysctl.d/ system-release-cpe sysctl.conf system-release
命令行展开
- ~:展开为用户的主目录
- ~USERNAME:展开为指定用户的主目录
- ~:展开为用户的主目录
- 路径补全:把用户给出的字符串当作路径开头,并在其指定的上级目录下搜索以指定的字符串开头的文件名
{}可承载一个以逗号分隔的列表,并将其展开为多个路径
[xiao@dayuanshuai ~]$ ls
[xiao@dayuanshuai ~]$ touch file{1..4}.txt
[xiao@dayuanshuai ~]$ ls
file1.txt file2.txt file3.txt file4.txt
命令的执行结果状态
成功
失败
bash使用特殊变量$?保存一条命令的执行状态结果:
0:成功
1-255:失败
[xiao@dayuanshuai ~]$ echo $?
0
[xiao@dayuanshuai ~]$ sdfsadf
-bash: sdfsadf: command not found
[xiao@dayuanshuai ~]$ echo $? #通过echo $? 即可查看上一条命令的执行是否成功
127
- 目录管理、操作类命令
- cd、pwd、ls
- mkdir,rmdir
- mkdir /etc/a/b/c/d;mkdir [OPTIONS] /path/to/somethere
- 对于mkdir 来说目录和文件是一类东西,是不可以重名的。所以在Linux的同一目录下目录名和文件名不能重名
- - p 创建目录,如果重名不会报错,同时可以递归创建目录
- -v 可以显示目录的创建详细过程
- - m MORE:创建目录时直接指定权限
[xiao@dayuanshuai ~]$ mkdir file
[xiao@dayuanshuai ~]$ touch file
[xiao@dayuanshuai ~]$ ls -l #可以看到,我们创建了一个名叫file的目录,之后又创建一个file的文件,最后显示目录下只有一个名为file的目录 —— 因为同一目录下目录名和文件名不能重名
总用量 4
drwxrwxr-x. 2 xiao xiao 4096 3月 31 15:39 file
[xiao@dayuanshuai ~]$ mkdir -m 644 dire #创建一个目录,其权限为644
[xiao@dayuanshuai ~]$ ls -ld dire #查看该目录权限,发现该目录权限即为644
drw-r--r--. 2 xiao xiao 4096 3月 31 15:46 dire
- rmdir 删除空目录
- rmdir [OPTION]… [DIRECTORY]
- -p 递归删除空目录
- tree 显示树状文件结构
- -d 仅显示目录
- -L 显示树状结构可达到的层级
[root@dayuanshuai ~]# tree -d -L 2 /home/ #查看/home目录下的目录,层级为2层
/home/
├── dayuanshuai
│ ├── day04
│ ├── day1
│ ├── day2
│ ├── day3
│ └── day4
└── xiao├── dire└── file9 directories
- 文件查看类命令
cat,tac,more,less,tail,head
- more [OPTION] FILE…
- -d:显示翻页及退出提示
- -num 一次显示的行数
- +num 从第num行开始显示
[root@dayuanshuai tmp]# ls -l /etc | grep --color "^-" | sort -n -t' ' -k 6 #将/etc/目录下的文件按大小进行分类
-rw-r-----. 1 root root 3181 6月 7 2017 sudo-ldap.conf
-r-xr-----. 1 root root 3756 3月 29 16:56 sudoers
-rw-r--r--. 1 root root 4113 11月 29 2017 DIR_COLORS.lightbgcolor
-rw-r--r--. 1 root root 4439 11月 29 2017 DIR_COLORS
-rw-r--r--. 1 root root 4940 3月 22 2017 man.config
-rw-r--r--. 1 root root 5139 11月 29 2017 DIR_COLORS.256color
-rw-r--r--. 1 root root 6455 1月 12 2010 protocols
-rw-r--r--. 1 root root 8120 8月 31 2019 kdump.conf
-rw-r--r--. 1 root root 12288 8月 31 2019 aliases.db
-rw-r--r--. 1 root root 26168 9月 16 2019 ld.so.cache
-rw-r--r--. 1 root root 641020 3月 22 2017 services
#现在我们知道该目录占用磁盘空间最大的文件是services文件
[root@dayuanshuai tmp]# more -5 /etc/services #一次显示五行
# 进入文件视图模式之后的基本操作
空格 翻页
enter 默认向下翻一行
3 enter 向下翻3行
b 向上翻1页
less
- less [OPTIONS…] FILE…
[root@dayuanshuai tmp]# less /etc/services
#进入文件视图界面下的基本操作 —— 不需要记住太多,记太多你记不住。同时页掌握不牢靠。够用就行。
空格 向下翻一页
b 向上翻一页
d 向屏幕下方移动半屏
u 向屏幕上方移动半屏
G 移动到最后一行
g 移动到第一行
q 退出
170g 移动到第170行
/STRING 在文本中向下查找字符串
?STRING 在文本中向上查找字符串
n 正向重复前一个搜索
N 反向重复前一个搜索
[root@dayuanshuai tmp]# less -N /etc/services #进入文件视图模式时,显示其行号
- head
- head [OPTION]… [FILE]…
- -c #:获取前#字节
- -n #:指定获取前#行
- head [OPTION]… [FILE]…
[root@dayuanshuai tmp]# head -10 /etc/services 显示该文件的前十行
- tail
- tail [OPTION]… [FILE]…
- -c #:指定获取后#字节
- -n #:指定获取后#行
- -#:指定获取后#行
- -f:跟踪显示文件新追加的内容
[root@dayuanshuai tmp]# tail -5 /etc/services #显示文件最后5行
blp5 48129/udp # Bloomberg locator
com-bardac-dw 48556/tcp # com-bardac-dw
com-bardac-dw 48556/udp # com-bardac-dw
iqobject 48619/tcp # iqobject
iqobject 48619/udp # iqobject
- 文件的时间戳管理工具
- touch
- 文件:metadata,data
- 查看文件状态:stat
- 三个时间戳:
- access time:访问时间,简写atime
- modify time:修改时间,mtime
- change time:改变时间,ctime
- touch命令
- touch [OPTION]… FILE…
- -a:only atime(修改了atime也修改了ctime)
- -m:only mtime(修改了mtime也修改了ctime)
- -t STAMP:
- [[CC]YY]MMDDhhmm[.ss]
- -c:如果文件不存在,则不予创建
- touch -r a b 将b的时间戳更新为和a一样的时间戳
- touch [OPTION]… FILE…
[xiao@dayuanshuai ~]$ stat a.txt #查看文件状态信息File: "a.txt"Size: 2 Blocks: 8 IO Block: 4096 普通文件
Device: 803h/2051d Inode: 261693 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 501/ xiao) Gid: ( 501/ xiao)
Access: 2020-03-31 17:27:29.602775058 +0800
Modify: 2020-03-31 17:27:29.602775058 +0800
Change: 2020-03-31 17:27:29.602775058 +0800
[xiao@dayuanshuai ~]$ touch -a -t 200011121223.30 a.txt #修改文件的访问信息
[xiao@dayuanshuai ~]$ stat a.txt #再次查看发现,文件访问时间已经变成我们设置的时间File: "a.txt"Size: 2 Blocks: 8 IO Block: 4096 普通文件
Device: 803h/2051d Inode: 261693 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 501/ xiao) Gid: ( 501/ xiao)
Access: 2000-11-12 12:23:30.000000000 +0800
Modify: 2020-03-31 17:27:29.602775058 +0800
Change: 2020-03-31 17:28:27.296778801 +0800
[xiao@dayuanshuai ~]$ touch -r a.txt b.txtt #将b.txt的时间戳更新为和a.txt一样
[xiao@dayuanshuai ~]$ stat b.txtt File: "b.txtt"Size: 0 Blocks: 0 IO Block: 4096 普通空文件
Device: 803h/2051d Inode: 261694 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 501/ xiao) Gid: ( 501/ xiao)
Access: 2000-11-12 12:23:30.000000000 +0800
Modify: 2020-03-31 17:34:33.034770458 +0800
Change: 2020-03-31 17:35:41.047772633 +0800
- 练习
- 创建/tmp/x/y1,/tmp/x/y2,/tmp/x/y1/a,/tmp/x/y1/b,/tmp/x/y2/a,/tmp/x/y2/b
[root@dayuanshuai ~]# mkdir -p /tmp/x/{y1,y2}/{a,b}
[root@dayuanshuai tmp]# tree -d -L 2 /tmp/x/
/tmp/x/
├── y1
│ ├── a
│ └── b
└── y2├── a└── b6 directories
- 如何创建x_m,y_m,x_n,y_n
[xiao@dayuanshuai ~]$ mkdir {x,y}_{m,n}
[xiao@dayuanshuai ~]$ ls
x_m x_n y_m y_n
- 如何创建/tmp/bin,/tmp/sbin,/tmp/usr,/tmp/usr/bin,/tmp/usr/sbin
[xiao@dayuanshuai tmp]$ mkdir -p /tmp/{bin,sbin,usr/{bin,sbin}}
[root@dayuanshuai tmp]# tree -d /tmp/ #可以看到创建成功
/tmp/
├── bin
├── sbin
└── usr├── bin└── sbin5 directories
- 扩展
执行history命令查看历史命令时,让其显示时间
- 方法一:临时生效
[xiao@dayuanshuai ~]$ HISTTIMEFORMAT='%F %T' #复制变量
[xiao@dayuanshuai ~]$ history #查看命令185 2020-03-31 17:35:41touch -r a.txt b.txtt 186 2020-03-31 17:35:46stat b.txtt 187 2020-03-31 17:36:58stat a.txt 188 2020-03-31 17:37:04touch c.txt189 2020-03-31 17:37:19stat c.txt 190 2020-03-31 17:37:32touch -r a.txt c.txt 191 2020-03-31 17:37:35stat c.txt 192 2020-03-31 17:37:39stat a.txt 193* 2020-03-31 17:42:34unset HISTT194 2020-03-31 17:42:39history195 2020-03-31 17:43:39unset HISTTIMEFORMAT 196 2020-03-31 17:43:43history197 2020-03-31 17:49:32HISTTIMEFORMAT='%F %T'198 2020-03-31 17:49:38history 199 2020-03-31 17:50:26history
# 现在可以看到命令前面的均有时间戳了
[xiao@dayuanshuai ~]$ unset HISTTIMEFORMAT #取消命令前的时间戳
- 方法二:永久生效
编辑 ~/.bashrc文件
在文件末尾加入 export HISTTIMEFORMAT=’%F %T’
执行 source ~/.bashrc ,即可永久生效
- 取消命令前显示时间戳的方法
- unset HISTTIMEFORMAT
- 编辑 ~/.bashrc文件
- 删除export HISTTIMEFORMAT=’%F %T’
- 写在最后的话:
- 无论每个知识点的难易程度如何,我都会尽力将它描绘得足够细致
- 欢迎关注我的CSDN博客,IDYS’BLOG
- 持续更新内容:运维 | 网工 | 软件技巧
- 对于我文章的不足之处,欢迎您能批评指正!谢谢!
- 如果你有什么疑问,或者是难题。欢迎评论或者私信我。你若留言,我必回复!
- 虽然我现在还很渺小,但我会做好每一篇内容。谢谢关注!
每个程序员都应该知道的Linux基础知识!全文4900字,没有耐心的不建议看 ——( Linux文件系统 + 系统管理类命令 + bash基础特性)相关推荐
- 每个程序员都应该知道的10件事!
如果你已经编程了一段时间,并且想学习编程,那么你可能在想什么才是一个好的程序员?计算机科学与技术专业毕业生能做些什么,来为软件开发职业生涯做准备? 在本文中,我将分享10件我认为每个程序员都应该知道的 ...
- 每个程序员都应该知道的GitHub Repos
GitHub是领先的Git存储库托管服务,其中包含许多代码存储库,库等的源代码. 在本文中,我将为每个开发人员介绍GitHub存储库从播客到免费书籍再到学习路线图 1.Awesome Resource ...
- 每个程序员都应该知道的8个Linux命令
为什么80%的码农都做不了架构师?>>> 摘要:Linux里有很丰富的各种命令,有些是很难用的.然而,学会了前面说的这8个命令,你已经能处理大量的log分析任务了,完全不需要用 ...
- 网优谷程序员都需要知道的8个冷知识
想要成为一名成功的程序员,我们除了了解不同编程语言的设计思路,也应当了解编程的发展历史,从而判断未来的编程技术将走向何方.接下就为大家普及下计算机发展历程中的8个冷门小知识! 01 第一台电脑为蒸汽驱 ...
- 程序员都需要知道的8个冷知识
" 想要成为一名成功的程序员,我们除了了解不同编程语言的设计思路,也应当了解编程的发展历史,从而判断未来的编程技术将走向何方.接下就为大家普及下计算机发展历程中的8个冷门小知识! " ...
- 每个程序员都必须知道的 8 种数据结构
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 快速介绍8种数据结构 数据结构是一种特殊的组织和存储数据的方式,可 ...
- 优秀的程序员都应当知道的11个警句
1. 技术只是解决问题的选择,而不是解决问题的根本 我们可以因为掌握了最新的 JavaScript 框架 ahem.Angular 的 IoC 容器技术或者某些编程语言甚至操作系统而欢欣雀跃,但是这些 ...
- 小黄鸭调试法,每个程序员都要知道的
花了一下午(或一天)在试图解决某个 Bug,后来才知道解决方案很简单,当时就是没有想到. 有个同事正好路过,看到你愁眉苦脸的,问你"怎么了呀?" "噢,是这样的.我遇到了 ...
- web开发程序员有几种_每个程序员都应该知道的10种流行的Web开发工具
web开发程序员有几种 Are you planning to get into web development? Take a tool with you, it's scary out there ...
最新文章
- Golang 解决no buildable Go source file in问题
- form 为什么上传文件enctype现场
- VMware虚拟机提示“以独占方式锁定此配置文件失败”解决方案
- FusionChart完全入门手册 -2
- 求解ax + by = c 这类方程
- 在列表前方插入一个数据_通俗易懂的Redis数据结构基础教程
- linux添加物理卷编辑文件夹,Red hat Linux下的逻辑卷管理器LVM-上
- java 获取域名_Java获取域名,Java从URL地址中获取域名,Java从Request 获取域名
- AllenNLP常用命令记录
- 隐藏input的三种方法
- xiaoxin juju needs help - 组合公式
- SMT具体指的是什么
- windows nginx出现 was not signaled for 5s
- 老年人微信教程手绘版|微信入门教程1
- linux内核版本信息说明
- Access根据出生日期计算年龄_不好意思,Power Query里根据出生日期计算年龄有点儿繁琐!...
- “帽子戏法”从何而来?
- Caj转pdf有哪些不收费的转换方法?
- 2013年6月2日星期日
- Kali常见攻击手段
热门文章
- 读安晓辉之《Qt Quick 核心编程》
- windows 中 vpn连接提示, 虚拟专用网络 由于RAS/虚拟专用网络,服务器上配置的某个策略,服务器用于验证用户名和密码的身份验证方法可能与连接配置文件中的身份证验证方法不匹配
- HTML 教程:基础标签
- mysql htap 开源_基于开源应用快速构建HTAP系统
- MySQL字符集(表情包)
- Exemplar Fine-Tuning for 3D Human Model Fitting Towards In-the-Wild 3D Human Pose Estimation 2020阅读理
- 爬虫中常见的反爬手段和解决方法
- DDN4.9实践 - Source版的安装
- GOOGEL翻译软件测试,测试一把google的在线翻译工具
- 企业为什么要建立独立电商网站?